* @param client the client to which output will be sent
	 */
	public void op_chargen(final String input, final Client client) {
		final Player player = getPlayer(client);

		debug("STATUS: -" + player.getStatus() + "-");

		// if the player isn't a guest character and the player is new
		if (!player.getName().startsWith("Guest") && player.isNew()) {
			cgData cgd = null;

			if (input.equals("start")) { // if the input indicates we are to start character generation
				// create new character generation data (cgd) object and populate with values
				cgd = new cgData(0, 1, 0, false);

				debug("T: " + cgd.t + " Step: " + cgd.step + " Answer: "+ cgd.answer);

				cg_data.put( player, op_chargen("", client, cgd) );
			}
			else {
				// basically if we aren't just starting call op_chargen(...) with input and existing data
				cg_data.put( player, op_chargen(Utils.trim(input), client, cg_data.get( player )) );
			}

			// make sure we advance to the answer phase provided that the data in question exists?
			if (cgd != null) {
				cg_data.put( player, op_chargen("", client, cg_data.get( player )) );
			}
		}
		else {
			send("Game> You have already completed and finalized character generation.", client);

			player.setStatus("IC");
			player.setEditor(Editors.NONE);
		}
	}