public function attachEvent(Event $event)
{
$fn = function (GenericEvent $genericEvent) use($event) {
if ($this->isCallable($event, $genericEvent)) {
$this->call($event, $genericEvent);
}
};
$this->eventDispatcher->addListener($event->getKey(), $fn);
$this->attachedEvents[] = ['key' => $event->getKey(), 'event' => $event, 'callback' => $fn];
}