private void cmd_talk(final String arg, final Client client) {
		// TODO improve talk command
		final Player player = getPlayer(client);
		final NPC npc = getNPC(arg);

		// player should be not null, but...
		if (player != null && npc != null) {
			final CNode cnvs = npc.getConversation();
			
			// send npc greeting
			// npc.greet( getPlayer(client) );
			//send(colors(npc.getName(), getDisplayColor("npc")) + ": " + npc.greeting, client);
			send(colors(npc.getName(), getDisplayColor("npc")) + ": " + cnvs.getResponse(), client);
			send("", client);

			// send list of player conversation options			
			send("-- Conversation (" + npc.getName() + ")", client);
			
			int n = 1;
			
			final List<String> convOpts = new LinkedList<String>();
			
			for(final CNode cn : cnvs.getOptions()) {
				if( cn.ends ) convOpts.add(n + " ) " + colors(cn.getText() + " (Ends Conversation)", "green") );
				else          convOpts.add(n + " ) " + colors(cn.getText(), "green") );
				
				n++;
			}
			
			send(convOpts, client);
			
			send("", client);
			
			conversations.put(player, new Tuple<NPC, CNode>(npc, cnvs));
			
			// set player status to conversation (CNVS)
			player.setStatus("CNVS");
		}
	}