public function listen($event, $handler)
    {
        if ($event instanceof AbstractEvent) {
            $event = $event->getEventName();
        }
        $this->dispatcher->addListener($event, $handler);
        return $this;
    }