public void CreateAccount(RequestPacket request, DBCollection coll, User user) {
		try {
			if(!(paramValidator.validate(request.getUser_name(), "username") && 
					paramValidator.validate(request.getEmail(), "email"))) {
				user.sendMessage(msgTransformer.writeMessage(new ResponsePacket().setResponse("response").setMessage("Invalid username or email")));
				return;
			}
			// Check if username or email is already taken
			if(!coll.find(new BasicDBObject("user_name", request.getUser_name())).hasNext()) {
				if(!coll.find(new BasicDBObject("email", request.getEmail())).hasNext()) {
				// Save user to db
				BasicDBObject doc = new BasicDBObject()
					.append("user_name", request.getUser_name())
		        	.append("email", request.getEmail())
		        	.append("hash_password", request.getHash_password())
					.append("salt", salt);
				coll.insert(doc);
				
				user.sendMessage(msgTransformer.writeMessage(new ResponsePacket().setResponse("create_success").setMessage("account created")));
				sendUUID(user);
				String user_name = request.getUser_name();
				user.setUser_name(user_name);
				UserManager.getInstance().addAuthenticatedUser(user);
				System.out.println("User " + user_name + " created account & authenticated");
				GameManager.getInstance().sendLobbyInfo();
				} else {
					user.sendMessage(msgTransformer.writeMessage(new ResponsePacket().setResponse("response").setMessage("email already taken")));
				}
			} else {
				user.sendMessage(msgTransformer.writeMessage(new ResponsePacket().setResponse("response").setMessage("username already taken")));
			}
			
		}catch(Exception e) {
			user.sendMessage(msgTransformer.writeMessage(new ResponsePacket().setResponse("response").setMessage("Invalid username or email")));
		}
	}