protected function doDispatchEvent(Event $event)
 {
     /** @noinspection PhpParamsInspection */
     $event->setCurrentTarget($this);
     if ($this->eventListeners[$event->getName()]) {
         foreach ($this->eventListeners[$event->getName()] as $priority => $callbacks) {
             foreach ($callbacks as $callback) {
                 call_user_func($callback, $event);
                 if ($event->isPropogationStoppedImmediately()) {
                     return;
                 }
             }
         }
     }
 }