public function un($event, callable $fn = null) {
        if (isset($this->events[$event])) {
            if ($fn) {
                foreach ($this->events[$event] as $k => $ev) {
                    if ($ev === $fn) {
                        unset($this->events[$event][$k]);
                        break;
                    }
                }
            } else {
                unset($this->events[$event]);
            }
        }
        return $this;
    }