public void addEventListener(GameEventType forType, int priority, IGameEventListener listener) {
		if (listener != null) {
			Map<Integer, Set<IGameEventListener>> listenerMap = null;
			if (!eventListeners.containsKey(forType)) {
				listenerMap = new TreeMap<Integer, Set<IGameEventListener>>();
				eventListeners.put(forType, listenerMap);
			} else
				listenerMap = eventListeners.get(forType);

			Set<IGameEventListener> listeners = null;
			if (!listenerMap.containsKey(priority)) {
				listeners = new HashSet<IGameEventListener>(32);
				listenerMap.put(priority, listeners);
			} else
				listeners = listenerMap.get(priority);

			listeners.add(listener);
			if (LOGGER.isDebugEnabled())
				LOGGER.debug("Successfully added listener '" + listener + "' of priority '" + priority + "'for type '" + forType + "'");
		}
	}