* @param client the client sending this command
	 */
	private void cmd_list(final String arg, final Client client) {
		final Player player = getPlayer(client);

		if (player.getStatus().equals(Constants.ST_INTERACT)) {
			MUDObject target = player.getTarget();
			
			// TODO a Vendor flag isn't sufficient here, because only Merchant implements Vendor
			if( target.hasFlag(ObjectFlag.VENDOR) ) {
				final Vendor vendor = (Vendor) player.getTarget();

				if (arg.equals("")) {
					// TODO maybe this should be in the vendor interface/npc class
					
					// build list of stuff for sale
					final Map<String, Tuple<Item, Integer>> sl = new LinkedHashMap<String, Tuple<Item, Integer>>();

					String stringRep;

					for (final Item item : vendor.getStock()) {
						if (item instanceof Weapon) {
							final Weapon w = (Weapon) item;
							// send(colors("+" + w.getMod() + " " + w.weapon.getName() + " (" + w.getWeight() + ") Cost: " + w.getCost(), "yellow"), client);

							// using this one
							//send(colors(w.toString() + " (" + w.getWeight() + ") Cost: " + w.getValue(), "yellow"), client);

							stringRep = w.toString();
						}
						else if (item instanceof Armor) {
							final Armor a = (Armor) item;
							// send(colors("+" + a.getMod() + " " + a.getName() + " (" + a.getWeight() + ") Cost: " + a.getCost(), "yellow"), client);

							// using this one
							//final String armorInfo = a.toString() + " (" + a.getWeight() + ") ";
							//send(colors(Utils.padRight(armorInfo, ' ', 30) + " " + a.getValue(), "yellow"), client);

							stringRep = a.toString();
						}
						else {
							// using this one
							//send(colors(item.getName() + " (" + item.getWeight() + ") Cost: " + item.getValue(), "yellow"), client);
							stringRep = item.getName();
						}

						//
						if( sl.containsKey( stringRep ) ) {
							final Tuple<Item, Integer> temp = sl.get( stringRep );

							temp.two++;

							//sl.put(stringRep, temp);
						}
						else {
							sl.put(stringRep, new Tuple<Item, Integer>(item, 1));
						}
					}

					final List<String> output = new LinkedList<String>();
					
					output.add("-----< Stock >--------------------");
					
					for(final String key : sl.keySet()) {
						final Tuple<Item, Integer> t = sl.get(key);
						
						final Integer quantity = t.two;
						final Coins price = t.one.getValue();
						
						// ex. Sword (x5)          5gp
						output.add( Utils.padRight(key + " (x" + quantity + ")", ' ', 30) + price );
					}
					
					output.add("----------------------------------");
					
					send(output, client);
				}
			}
			else send("That's not a vendor.", client);
		}
		else {
			if (player.getConfigOption("silly_messages")) send("You ask the air around you what it has for sale, but receive no response...", client);
			else                                          send("You're not interacting with anyone.", client);
		}
	}