protected function attachOnceListener($pointer, $event, callable $listener)
{
$emitter = $this;
return function () use($emitter, $listener, $event, $pointer) {
unset($emitter->eventListeners[$event][$pointer]);
return call_user_func_array($listener, func_get_args());
};
}