 	private var sectionNameMapper: ((position: Int, persistedName: String?) -> String?)?
 
 	private var isEmpty: Bool = true
-	public var emptiedObserver: (() -> Void)?
-	public var unemptiedObserver: (() -> Void)?
+	private var emptiedObserver: (() -> Void)?
+	private var unemptiedObserver: (() -> Void)?
+	private var insertionHandler: ((IndexPath) -> Void)?
+	private var deletionHandler: ((IndexPath) -> Void)?
+	private var editabilityHandler: ((IndexPath) -> Bool)?
 
 	public init(set: ViewModelMappingSet<V>) {
 		self.set = set

	public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
		return set[section].count
	}
}

		return self
	}

	public func on(emptied: (() -> Void)? = nil, unemptied: (() -> Void)? = nil, inserting: ((IndexPath) -> Void)? = nil, deleting: ((IndexPath) -> Void)? = nil) -> Self {
		emptiedObserver = emptied ?? emptiedObserver
		unemptiedObserver = unemptied ?? unemptiedObserver
		insertionHandler = inserting ?? insertionHandler
		deletionHandler = deleting ?? deletionHandler
		return self
	}

	public func filterEditable(_ predicate: (IndexPath) -> Bool) -> Self {
		editabilityHandler = predicate
		return self
	}

