protected function newHookableListener($sourceEvent, $targetEventName)
    {
        return function () use ($sourceEvent, $targetEventName) {
            $args = func_get_args();
            $targetEventName = $this->buildTargetEventName($sourceEvent, $targetEventName);
            return $this->target->fire($targetEventName, $args);
        };
    }