 	public func tableView(_ tableView: UITableView, willSelectRowAt indexPath: IndexPath) -> IndexPath? {
 		//let cell = tableView.cellForRow(at: indexPath) // instance of the cell
 		let row = self.sections[indexPath.section].rows[indexPath.row]
-
+		
 		if let onWillSelect = row.onWillSelect {
 			//return onWillSelect((cell,indexPath))
 			return onWillSelect(row)

			}
		}
	}
		
	/// Return the first row with given identifier inside all sections of the table
	///
	/// - Parameter identifier: identifier to search

	///   - view: view of the header
	///   - section: section
	public func tableView(_ tableView: UITableView, didEndDisplayingHeaderView view: UIView, forSection section: Int) {
		self.onRemoveHeaderFooterView(view, at: section)
	}
	
	///MARK: Footer
	
	/// Tells the delegate that the specified footer view was removed from the table.
	///
	/// - Parameters:
	///   - tableView: target tableview
	///   - view: view of the footer
	///   - section: section
	public func tableView(_ tableView: UITableView, didEndDisplayingFooterView view: UIView, forSection section: Int) {
		self.onRemoveHeaderFooterView(view, at: section)
		
	}
	
	/// This method is called when an header/footer is removed from the table.
	/// It check if we have registered a callback for `didEndDisplaying` event.
	///
	/// - Parameters:
	///   - view: view removed (header or footer)
	///   - section: section
	private func onRemoveHeaderFooterView(_ view: UIView, at section: Int) {
		let key = view.hashValue
		guard let sectionView = self.removedHeaderFooterViews[key] else {
			return
		}
		self.removedHeaderFooterViews.removeValue(forKey: key)
		sectionView.didEndDisplaying?((view as? UITableViewHeaderFooterView,.header,section))
	}
	
	/// Simple header string
	///
