public function trigger(Event\Args $args = null, $reverse = false)
    {

        $args = $args ? $args : new Event\Args();

        if ($reverse) {

            for ($i = count($this->_handlers); --$i >= 0;) {

                if (call_user_func_array($this->_handlers[$i], func_get_args()) === false)
                    break;
            }
        } else {

            foreach ($this->_handlers as $handler) {

                if (call_user_func_array($handler, func_get_args()) === false)
                    break;
            }
        }

        return !$args->isDefaultPrevented();
    }