         
         let info = NotificationInfo(observer: observer as! NSObject, name: notification, object: object)
         
-        blockInfos.insert(info)
+        with {
+            self.blockInfos.insert(info)
+        }
         
     }
     

    private let observer: NSObject!
    private var blockInfos = Set<NotificationInfo>()
    private var selectorInfos = Set<NotificationInfo>()
    
    private var DefaultCenter: NSNotificationCenter {
        return NSNotificationCenter.defaultCenter()

    public func unobserve(notification: String?, object: NSObject? = nil) {
        var deadInfos = Set<NotificationInfo>()
        
        with {
            for info in self.blockInfos {
                if info.name == notification && info.object == object {
                    self.DefaultCenter.removeObserver(info.observer, name: info.name, object: info.object)
                }
                
                deadInfos.insert(info)
            }
            
            for info in deadInfos {
                self.blockInfos.remove(info)
            }
        }
        
    }
    
    public func unobserveAll() {
