private void handle_account_login(final String arg, final Client client) {
		System.out.println("handle_account_login");

		final Player player = getPlayer(client);

		final LoginData data = loginData.get(client);

		// state indicator: is the server responding to our input or spitting
		// data about what to input next
		// what is our input affecting at the moment
		// we need store transitory data: state, username, password

		if (data != null) {
			// TODO figure out if this test is necessary and why
			if (data != loginData.get(client)) {
				send("Object in map is not the same as the stored retrieved result???", client);
			}
			
			final String state = data.state;

			System.out.println("state: " + state);
			System.out.println("username: " + data.username);
			System.out.println("password: " + data.password);

			if ( state.equals(Constants.USERNAME) ) {
				data.username = arg;
				data.state = Constants.PASSWORD;

				send("Password? ", client);
			} 
			else if ( state.equals(Constants.PASSWORD) ) {
				data.password = arg;
				data.state = Constants.AUTHENTICATE;

				handle_account_login("", client);
			}
			else if ( state.equals(Constants.AUTHENTICATE) ) {
				loginData.remove(client);

				// TODO create the account handler
				final Account account1 = acctMgr.getAccount(data.username, data.password);

				if (account1 != null) {
					// if there is no active player or multiplay is allowed
					if (account1.getPlayer() == null || multiplay == 1) {
						caTable.put(client, account1);

						// final Account account = caTable.get(client);

						account_menu(account1, client);

						setClientState(client, "account_menu");
					}
					else {
						send("That account is already logged-in!", client);

						setClientState(client, "");
					}
				}
				else {
					send("No Such Account!", client);

					setClientState(client, "");
				}
			}
		}
		else {
			if (arg.equals("account")) {
				loginData.put(client, new LoginData("USERNAME"));

				send("Username? ", client);
			}
			else {
				send("loginData is NULL", client);
			}
		}
	}