public static Command parseCommand(Game game, String desc) throws NoFactoryFoundException{
		ArrayList<String> commandDesc = new ArrayList<String>();
		String allDescArray[] = desc.split(" ");
		for (int i = 0; i < allDescArray.length; i++)
		{
			commandDesc.add(allDescArray[i]);
		}			
		String commandName = commandDesc.remove(0).toUpperCase().trim();
                T2<? extends Class<? extends Game>, String> key = Tuple.makeTuple(game.getClass(), commandName);
		if(commandFactories.containsKey(key)) {
			return commandFactories.get(key).buildCommand(game, commandDesc);
                }
		throw new NoFactoryFoundException("Command Factory for '" + commandName + "' not found!");
	}