* @param itemName
	 * @return
	 */
	public List<Item> findItems(final List<Item> searchList, final String itemName) {
		final String arg = itemName;

		final List<Item> results = new LinkedList<Item>();

		if (searchList.size() > 0) {

			for (final Item item : searchList) {
				// test criteria
				// if they pass, add to the results list

				// if there is a name or dbref match from the argument in the
				// inventory
				// if the item name exactly equals the arguments or the name
				// contains the argument (both case-sensitive), or if the dbref
				// is correct

				final String name = item.getName();
				final List<String> components = Arrays.asList(item.getName().toLowerCase().split(" "));

				String name_lc = name.toLowerCase();
				String arg_lc = arg.toLowerCase();

				debug("Argument:              " + arg);
				debug("Name:                  " + name);
				debug("Argument (Lower Case): " + arg_lc);
				debug("Name (Lower Case):     " + name_lc);
				debug("Components:            " + components);

				// 1) is the name the same as ARG (ignoring case -- setting both name and arg to lowercase)
				// 2) does the name start with ARG (ignoring case -- setting both name and arg to lowercase)
				// 3) does the name end with ARG (ignoring case -- setting both name and arg to lowercase)
				// 4) does the name contain ARG (ignoring case -- setting both name and arg to lowercase)
				// 5) is any component of the name the same as the arg (continues non-whitespace separated segments)

				boolean sameName = name.equalsIgnoreCase(arg);
				boolean startsWith = name_lc.startsWith(arg_lc);
				boolean endsWith = name_lc.endsWith(arg_lc);
				boolean nameContains = name_lc.contains(arg_lc);
				boolean compsContain = components.contains(arg_lc);

				boolean test = false;

				for (String s : components) {
					for (String s1 : Arrays.asList(arg.toLowerCase().split(" "))) {
						if (s.contains(s1)) test = true;
						break;
					}
				}

				// for string in A, is A.S a substring of string name N.S
				if (sameName || startsWith || endsWith || nameContains || compsContain || test) {
					debug(itemName + " true");

					results.add(item);
				}
			}
		}

		return results;
	}