private function resolveEventAndListeners($event)
    {

        if (is_object($event) && $event instanceof EventDispatch) {
            $name = get_class($event);
        } else {
            $name = $event;
        }

        if (is_string($name)) {
            if ($this->hasListiner($name) && $listeners = $this->getListeners($name)) {
                if (count($listeners) === 1) {
                    $listeners = $listeners[0];
                    $listeners = [$listeners instanceof Closure ? $listeners : (new $listeners)];
                }
            } else {
                throw new EventListenerException(sprintf('Your %s event havent got listener', $event));
            }
        }

        return [$listeners, $event];
    }