@SafeVarargs
	public final void registerCommandListener(IIncomingCommandListener listener, Class<? extends IIncomingCommand>... forClasses)
	{
		cmdWriteLock.lock();
		
		try
		{
			for (Class<? extends IIncomingCommand> registrantClass : forClasses)
			{
				if(commandListeners.containsKey(registrantClass))
					commandListeners.get(registrantClass).add(listener);
				else
				{
					List<IIncomingCommandListener> tempList = new ArrayList<IIncomingCommandListener>();
					tempList.add(listener);
					
					commandListeners.put(registrantClass, tempList);
				}
			}
		}
		finally
		{
			cmdWriteLock.unlock();
		}
	}