diff --git a/src/user.js b/src/user.js
index a34ff41fc6..2f7bdec5f4 100644
--- a/src/user.js
+++ b/src/user.js
@@ -11,6 +11,102 @@ var utils = require('./../public/src/utils.js'),
 
 (function(User) {
 	
+	User.create = function(username, password, email, callback) {
+		username = username.trim(), email = email.trim();
+
+		// @todo return a proper error? use node-validator?
+		if(!utils.isEmailValid(email) || !utils.isUserNameValid(username) || !utils.isPasswordValid(password)) {
+			console.log('Invalid email/username/password!');
+			callback(null, 0);
+			return;
+		}
+
+		var userslug = utils.slugify(username);
+
+		User.exists(userslug, function(exists) {
+			if(exists) {
+				callback(null, 0);
+				return;
+			}
+
+			RDB.incr('global:next_user_id', function(err, uid) {
+				RDB.handle(err);
+
+				var gravatar = User.createGravatarURLFromEmail(email);
+
+				RDB.hmset('user:'+uid, {
+					'uid': uid,
+					'username' : username,
+					'userslug' : userslug,
+					'fullname': '',
+					'location':'',
+					'birthday':'',
+					'website':'',
+					'email' : email,
+					'signature':'',
+					'joindate' : Date.now(),
+					'picture': gravatar,
+					'gravatarpicture' : gravatar,
+					'uploadedpicture': '',
+					'reputation': 0,
+					'postcount': 0,
+					'lastposttime': 0,
+					'administrator': (uid == 1) ? 1 : 0
+				});
+				
+				RDB.set('username:' + username + ':uid', uid);
+				RDB.set('email:' + email +':uid', uid);
+				RDB.set('userslug:'+ userslug +':uid', uid);
+
+				if(email) {
+					User.sendConfirmationEmail(email);
+				}
+
+				RDB.incr('usercount', function(err, count) {
+					RDB.handle(err);
+
+					io.sockets.emit('user.count', {count: count});
+				});
+
+				RDB.lpush('userlist', uid);
+				
+				io.sockets.emit('user.latest', {userslug: userslug, username: username});
+
+				if (password) {
+					User.hashPassword(password, function(hash) {
+						User.setUserField(uid, 'password', hash);
+					});
+				}
+
+				callback(null, uid);
+			});
+		});
+	};
+	
+	User.delete = function(uid, callback) {
+		RDB.exists('user:'+uid, function(err, exists) {
+			if(exists === 1) {
+				console.log('deleting uid ' + uid);
+
+				User.getUserData(uid, function(data) {
+					RDB.del('username:' + data['username'] + ':uid');
+					RDB.del('email:' + data['email'] +':uid');
+					RDB.del('userslug:'+ data['userslug'] +':uid');
+
+					RDB.del('user:' + uid);
+					RDB.del('followers:' + uid);
+					RDB.del('following:' + uid);
+
+					RDB.lrem('userlist', 1, uid);
+
+					callback(true);
+				});
+			} else {
+				callback(false);
+			}
+		});
+	}
+	
 	User.getUserField = function(uid, field, callback) {
 		RDB.hget('user:' + uid, field, function(err, data) {
 			if(err === null) {
@@ -138,101 +234,6 @@ var utils = require('./../public/src/utils.js'),
 		});
 	}
 
-	User.delete = function(uid, callback) {
-		RDB.exists('user:'+uid, function(err, exists) {
-			if(exists === 1) {
-				console.log('deleting uid ' + uid);
-
-				User.getUserData(uid, function(data) {
-					RDB.del('username:' + data['username'] + ':uid');
-					RDB.del('email:' + data['email'] +':uid');
-					RDB.del('userslug:'+ data['userslug'] +':uid');
-
-					RDB.del('user:' + uid);
-					RDB.del('followers:' + uid);
-					RDB.del('following:' + uid);
-
-					RDB.lrem('userlist', 1, uid);
-
-					callback(true);
-				});
-			} else {
-				callback(false);
-			}
-		});
-	}
-
-	User.create = function(username, password, email, callback) {
-		username = username.trim(), email = email.trim();
-
-		// @todo return a proper error? use node-validator?
-		if(!utils.isEmailValid(email) || !utils.isUserNameValid(username) || !utils.isPasswordValid(password)) {
-			console.log('Invalid email/username/password!');
-			callback(null, 0);
-			return;
-		}
-
-		var userslug = utils.slugify(username);
-
-		User.exists(userslug, function(exists) {
-			if(exists) {
-				callback(null, 0);
-				return;
-			}
-
-			RDB.incr('global:next_user_id', function(err, uid) {
-				RDB.handle(err);
-
-				var gravatar = User.createGravatarURLFromEmail(email);
-
-				RDB.hmset('user:'+uid, {
-					'uid': uid,
-					'username' : username,
-					'userslug' : userslug,
-					'fullname': '',
-					'location':'',
-					'birthday':'',
-					'website':'',
-					'email' : email,
-					'signature':'',
-					'joindate' : Date.now(),
-					'picture': gravatar,
-					'gravatarpicture' : gravatar,
-					'uploadedpicture': '',
-					'reputation': 0,
-					'postcount': 0,
-					'lastposttime': 0,
-					'administrator': (uid == 1) ? 1 : 0
-				});
-				
-				RDB.set('username:' + username + ':uid', uid);
-				RDB.set('email:' + email +':uid', uid);
-				RDB.set('userslug:'+ userslug +':uid', uid);
-
-				if(email) {
-					User.sendConfirmationEmail(email);
-				}
-
-				RDB.incr('usercount', function(err, count) {
-					RDB.handle(err);
-
-					io.sockets.emit('user.count', {count: count});
-				});
-
-				RDB.lpush('userlist', uid);
-				
-				io.sockets.emit('user.latest', {userslug: userslug, username: username});
-
-				if (password) {
-					User.hashPassword(password, function(hash) {
-						User.setUserField(uid, 'password', hash);
-					});
-				}
-
-				callback(null, uid);
-			});
-		});
-	};
 
 	User.createGravatarURLFromEmail = function(email) {
 		var forceDefault = ''
@@ -792,7 +793,7 @@ var utils = require('./../public/src/utils.js'),
 
 	User.get_online_users = function(socket, uids) {
 		RDB.sismembers('users:online', uids, function(err, data) {
-			// @todo handle err
+			RDB.handle(err);
 			socket.emit('api:user.get_online_users', data);
 		});
 	};
@@ -837,7 +838,7 @@ var utils = require('./../public/src/utils.js'),
 			RDB.keys('active:*', function(err, active) {
 				RDB.handle(err);
 
-				var	returnObj = {
+				var returnObj = {
 						users: 0,
 						anon: 0,
 						uids: []