* @param client
	 */
	private void cmd_equip(final String arg, final Client client) {
		final Player player = getPlayer(client);
		
		if (arg.equals("")) {
			//send("Equip what?", client);
			String temp;
			String display;

			for (final String key : player.getSlots().keySet()) {
				final Slot slot = player.getSlot(key);

				temp = slot.getItemType().toString().toUpperCase();
				display = key.toUpperCase();

				final Item item = slot.getItem();
				
				if (item != null) {
					send(colors(display, getDisplayColor("item")) + " : " + item + " *" + item.getWeight() + "lbs.", client);
				}
				else {
					send(colors(display, getDisplayColor("item")) + " : null", client);
				}
			}
		}
		else {
			// get the integer value, if there is one, as the argument
			final int dbref = Utils.toInt(arg, -1);
			
			Item item = null;

			// look for specified item in the player's inventory
			if (dbref != -1)  item = MudUtils.findItem(dbref, player.getInventory());
			if (item == null) item = MudUtils.findItem(arg, player.getInventory());

			if (item != null) {
				if (item.isEquippable()) {
					// equips the item in the first available slot
					// TODO possible revise getSlots(...) method and reconsider how we decide what slots we have
					final Slot slot = player.getSlot(item);

					if (slot == null) return;
					
					final ItemType type = item.getItemType();
					
					// TODO these should be under debug, since we don't need to see this normally
					send("Item Type", client);
					send("\tItem: " + item.getItemType(), client);
					send("\tSlot: " + slot.getItemType(), client);
					
					send("Slot Type", client);
					send("\tItem: " + item.getSlotType(), client);
					send("\tSlot: " + slot.getSlotType(), client);
					
					if ( slot.isType(type) && slot.getSlotType() == item.getSlotType() ) {
						if ( slot.isEmpty() ) {
							/*
							 * handle any OnEquip effects/events
							 */

							slot.insert(item);                  // put item in the slot
							player.getInventory().remove(item); // remove it from the inventory

							if (item instanceof ExtraCommands) {
								debug("Item has extra commands.");

								for (Map.Entry<String, Command> cmdE : ((ExtraCommands) item).getCommands().entrySet()) {
									final String cmdName = cmdE.getKey();
									final Command command = cmdE.getValue();
									
									command.init(this);

									player.addCommand(cmdName, command);

									debug("Added " + cmdName + " to player's command map from " + item.getName());
								}
							}
							
							send(colors(item.getName(), "yellow") + " equipped (" + slot.getItem().getItemType() + ")", client);

							item = null; // set item reference to null
						}
						else {
							// are these alternative messages?
							send("You can't equip that. (Equip Slot Full)", client);
							send("Where are you going to put that? It's not like you have a spare...", client);
						}
					}
					else send("You can't equip that. (Item Type or Slot Type is Incorrect)", client);
				}
				else send("You can't equip that. (Not Equippable)", client);
			}
			else send("Equip what?", client);
		}
	}