 
 extension EventBus: EventNotifiable {
     public func notify<T>(_ eventType: T.Type, closure: @escaping (T) -> ()) {
-        self.validateEventType(type: eventType)
+        self.warnIfUnknown(eventType)
+        self.warnIfDropped(eventType)
+        self.logEvent(eventType)
         self.serialQueue.sync {
             let identifier = ObjectIdentifier(eventType)
             defer {
-                for eventBus in chained.flatMap({ $0.inner as? EventNotifiable }) {
+                for eventBus in self.chained.flatMap({ $0.inner as? EventNotifiable }) {
                     self.queue.async {
                         eventBus.notify(eventType, closure: closure)
                     }

    internal func has<T>(subscriber: T, for eventType: T.Type) -> Bool {
        var result: Bool = false
        self.validateSubscriber(subscriber: subscriber)
        self.validateEventType(type: eventType)
        self.serialQueue.sync {
            let identifier = ObjectIdentifier(eventType)
            guard let subscribed = self.subscribed[identifier] else {

            for (identifier, var subscribed) in self.subscribed {
                let weakBox = WeakBox(subscriber as AnyObject)
                let _ = subscribed.remove(weakBox)
                self.subscribed[identifier] = subscribed
            }
        }
    }
