             return true
         }
         return false
-    }    
+    }
+    
+    /// This func is called when in section was made a change
+    func sectionWasChanged() {
+        weak var weakSelf = self
+        if let ws = weakSelf {
+            if let closure = didChange {
+                closure(ws)
+            }
+        }
+    }
 }

                    _ selector: Selector? = nil) {
        
        wasChanged = true
        
        if let target = target {
            source.target = target

        if sources.contains(source) {
            
            wasChanged = true
            sectionWasChanged()
            
            do {
                sources.remove(at: try indexOfSource(source: source))
