public function attachSubject($event, \SplSubject $subject)
    {
        $key = $this->getUniqueKey($event);

        if (!array_key_exists($event, $this->subjects)) {
            $this->subjects[$event] = array();
        }

        $this->subjects[$event][$key] = $subject;

        return $key;
    }