function bind(iEvent $event)
    {
        $eventName = $event->getName();
        if ($this->has($event))
            throw new \Exception(sprintf(
                'Events with name "%s" is registered before.'
                , $eventName
            ));


        if ($this->meeter !== null)
            $event->setMeeter($this->meeter);

        $this->attached_events[$eventName] = $event;
        return $this;
    }