@Override
@SuppressWarnings("unchecked")
public <T> void registerListener(final Class<T> clazz, final Consumer<? extends T> eventListener) {
eventMapping.putIfAbsent(clazz, new HashSet<>());
eventMapping.get(clazz).add((Consumer<Object>)eventListener);
}