@Override
 public void onEvent(final Event<Object> event) {
   logger.debug(
       "Propagating event [{}] from parent event bus [{}] to event bus [{}]",
       event,
       parentEventBus,
       ScopedEventBus.this);
   listeners.publish(event);
 }
 @Override
 public <T> void publish(String topic, Object sender, T payload) {
   logger.debug(
       "Publishing payload [{}] from sender [{}] on event bus [{}] in topic  [{}]",
       payload,
       sender,
       this,
       topic);
   listeners.publish(new Event<T>(this, sender, payload, topic));
 }
 @Override
 public <T> void publish(Object sender, T payload) {
   logger.debug(
       "Publishing payload [{}] from sender [{}] on event bus [{}]", payload, sender, this);
   listeners.publish(new Event<>(this, sender, payload));
 }