* @param client
	 */
	public void account_menu(final Account account, final Client client) {
		if (account != null) {
			// not the place for the below, since it relates to before player connection
			// in fact, init_conn will need modification if it expects to handle accounts instead of players
			final String divider = "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-";
			
			final List<String> output = new LinkedList<String>();
			
			//send(colors(divider, "green"), client);
			output.add( colors(divider, "green") );
			
			// TODO this message and it's color should not be hardcoded to a specific one
			//send(colors(Utils.center("Welcome to Fallout Equestria", 80), "pink2"), client);
			output.add( colors(Utils.center("Welcome to Fallout Equestria", 80), "pink2") );
			
			//send(colors(divider, "green"), client);
			output.add( colors(divider, "green") );
			
			final List<Player> characters = account.getCharacters();

			int n = 0;

			boolean active_character = false;

			// for characters in account
			for (final Player player : characters) {
				if (player == account.getPlayer()) active_character = true;
				
				final Faction faction = player.getFaction();
				
				if (active_character) {
					//client.write("" + Colors.YELLOW);
					
					//send(n + ") " + player.getName(), client);
					//send(Utils.padLeft("", ' ', 22) + player.getRace().getName() + " [" + ((faction != null) ? faction.getName() :  "No Faction") + "]", client);
					//send(Utils.padLeft("", ' ', 22) + "Class " + player.getPClass().getName() + ", Level " + player.getLevel(), client);
					
					output.add("" + Colors.YELLOW + n + ") " + player.getName() );
					output.add( Utils.padLeft("", ' ', 22) + player.getRace().getName() + " [" + ((faction != null) ? faction.getName() :  "No Faction") + "]" );
					output.add( Utils.padLeft("", ' ', 22) + "Class " + player.getPClass().getName() + ", Level " + player.getLevel() + "" + Colors.WHITE );

					//client.write("" + Colors.WHITE);

					active_character = false;
				}
				else {
					//send(n + ") " + player.getName(), client);
					//send(Utils.padLeft("", ' ', 22) + player.getRace().getName() + " [" + ((faction != null) ? faction.getName() :  "No Faction") + "]", client);
					//send(Utils.padLeft("", ' ', 22) + "Class " + player.getPClass().getName() + ", Level " + player.getLevel(), client);
					
					output.add( n + ") " + player.getName() );
					output.add( Utils.padLeft("", ' ', 22) + player.getRace().getName() + " [" + ((faction != null) ? faction.getName() :  "No Faction") + "]" );
					output.add( Utils.padLeft("", ' ', 22) + "Class " + player.getPClass().getName() + ", Level " + player.getLevel() );
				}

				n++;
			}

			//send("", client);
			//send("Slots Remaining: " + (account.getCharLimit() - account.getCharacters().size()), client);
			
			output.add("");
			output.add( "Slots Remaining: " + (account.getCharLimit() - account.getCharacters().size()) );

			//send(colors(divider, "green"), client);
			output.add( colors(divider, "green") );

			//send("Type the # or name of a character above to login or choose an action below.", client);
			output.add("Type the # or name of a character above to login or choose an action below.");
			
			//send(colors(divider, "green"), client);
			output.add( colors(divider, "green") );
			
			//send("(N)ew character     | (L)ink character   | (U)nlink character | (R)eorder", client);
			//send("(E)nter description | (D)elete character | (C)hange password  | (Q)uit", client);
			
			output.add("(N)ew character     | (L)ink character   | (U)nlink character | (R)eorder");
			output.add("(E)nter description | (D)elete character | (C)hange password  | (Q)uit");
			
			//send(colors(divider, "green"), client);
			output.add( colors(divider, "green") );
			
			send(output, client);
		}
		else {
			send("Invalid Account!", client);
		}
	}