private void cmd_take(final String arg, final Client client) {
		final Player player = getPlayer(client);
		final Room room = getRoom( player.getLocation() );

		final String[] args = arg.split(" ");

		debug("" + args.length);

		// if there is no argument, report command syntax
		if (arg.equals("")) {
			send("Syntax: take <item>", client);
		}

		// if there are three arguments, implying the following syntax:
		// TAKE <thing> FROM <container>
		else if ( arg.matches("(take)(\\s+)((?:[a-z][a-z]+))(\\s+)(from)(\\s+)((?:[a-z][a-z]+))") ) {
			debug("take from");

			String itemName = args[1];
			String container = args[3];

			final Item item = MudUtils.findItem(itemName, room.getItems()); // this probably won't work...
		}
		else if (arg.equalsIgnoreCase("all")) {
			// TODO problem if getItems() returns an unmodifiable list?

			// all implies stuff on the ground. since all the stuff on the ground is in the room,
			// we should evaluate the room to get it's stuff

			// basically we want to evaluate all the items, then take the one with the largest value,
			// one at a time. the evaluation scheme needs to take what's usable and what's not
			// as well monetary value into account
			// if we have room for everything, then just take it all
			// - an item is usable if, given restrictions, you meet all
			// the requirements (class, race, level, skill)

			final List<Item> items = new ArrayList<Item>( room.getItems() );

			for (final Item item : items) {
				take(player, room, item);
			}
		}
		else {
			// assuming one argument
			Item item = null;

			// get the integer value, if there is one, as the argument
			final int dbref = Utils.toInt(arg, -1);

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

			if (item != null) {
				take(player, room, item);
			}
			else {
				Thing thing = getThing(arg, room);

				if (thing != null) {
					final String msg = thing.getProperty("_game/msgs/take-fail");

					if ( msg != null ) {
						send(msg, client);
					}

					send("You can't pick that up.", client);
				}
				else {
					send("You can't find that.", client);
				}
			}
		}
	}