public function trigger($event, array $args = [], $acceptReturn = false) {
        if (isset($this->events[$event])) {
            array_unshift($args, $this);
            foreach ($this->events[$event] as $fn) {
                $data = call_user_func_array($fn, $args);
                if ($acceptReturn) {
                    if ($data !== null) {
                        return $data;
                    }
                } elseif ($data === false) {
                    return false;
                }
            }
        }
    }