public boolean add(IAliasedItem<T> item)
	{
		String key = item.getKey();
		if(backingMap.containsKey(key))
		{
			return false;
		}
		//IAliasedItem ai = new AliasedItem(item, aliases);
		backingMap.put(key, item);
		for(String alias : item.getAllAliases())
		{
			StringList list = aliasesMap.get(alias);
			if(list == null)
			{
				list = new StringList(key);
				aliasesMap.put(alias, list);
			}
			else
			{
				list.add(key);
				if(!list.valid())
				{
					for(String s : list)
					{
						backingMap.get(s).removeAlias(alias);
					}
				}
			}
		}
		return true;
	}