         delegate?.sidebar?(self, didChangeSelection: index)
     }
 
+    fileprivate func itemWasPushed(_ notification: Notification) {
+
+        guard let index = notification.userInfo?["index"] as? Int else { return }
+
+        delegate?.sidebar?(self, didPushItem: index)
+    }
+
     fileprivate func itemWasToggled(_ notification: Notification) {
 
         guard let index = notification.userInfo?["index"] as? Int else { return }
 
         delegate?.sidebar?(self, didToggleItem: index)
-        delegate?.sidebar?(self, didPushItem: index)
     }
 
     fileprivate func itemDidMove(_ notification: Notification) {


    private var selectionChangeObserver: AnyObject!
    private var toggleObserver: AnyObject!
    private var moveObserver: AnyObject!
    private var removalObserver: AnyObject!
    private var itemEditingObserver: AnyObject!

            object: sidebarView,
            queue: nil) { [weak self] in self?.itemWasToggled($0) }

        pushObserver = notificationCenter.addObserver(
            forName: FatSidebarView.didPushItemNotification,
            object: sidebarView,
            queue: nil) { [weak self] in self?.itemWasPushed($0) }

        moveObserver = notificationCenter.addObserver(
            forName: FatSidebarView.didReorderItemNotification,
            object: sidebarView,
