public function addEventListener($eventName, $listener, $priority = 0)
    {
        if (!$this->dispatcher) {
            $this->dispatcher = new EventDispatcher();
        }

        $this->dispatcher->addListener($eventName, $listener, $priority);

        return $this;
    }