public function setDelegate($delegate)
    {
        if (!$delegate instanceof KEventPublisherInterface) {
            throw new InvalidArgumentException('Delegate: '.get_class($delegate).' does not implement KEventPublisherInterface');
        }

        return parent::setDelegate($delegate);
    }