@SuppressWarnings("unchecked")
	public <L extends Listener> void fire(Event<L> event) {
		Class<Event<L>> eventClass = (Class<Event<L>>) event.getClass();
		for (L listener : listenersOf(eventClass)) {
			event.notify(listener);
		}
	}