public void addListener(EventListener listener, CogaenId typeId) {
		Bag<EventListener> listeners = this.listenerMap.get(typeId);
		
		if (listeners == null) {
			listeners = new Bag<EventListener>();
			this.listenerMap.put(typeId, listeners);
			listeners.add(listener);
		} else if (!listeners.contains(listener)) {
			listeners.add(listener);
		} else {
			this.logger.logWarning(LOGGING_SOURCE, 
					"attempt to add listener for event type " 
					+ typeId + " twice (" + listener.getClass().getName() + ")");
		}
	}