 		scrollView.form_firstResponder()?.resignFirstResponder()
 		return true
 	}
-	
-	
-	// MARK: CustomDebugStringConvertible
-	
-	public override var debugDescription: String {
-		var result = [String]()
-		result.append("============ number of sections: \(sections.count)")
-		for (sectionIndex, section) in sections.enumerated() {
-			result.append("  --- section: \(sectionIndex), number of cells: \(section.cells.visibleItems.count)")
-			for (rowIndex, item) in section.cells.visibleItems.enumerated() {
-				let cellType = type(of: item.cell)
-				let s = "    \(sectionIndex).\(rowIndex) \(cellType)"
-				result.append(s)
-			}
-		}
-		result.append("============")
-		return result.joined(separator: "\n")
-	}
-
-	var numberOfVisibleItems: Int {
-		var count = 0
-		for section in sections {
-			count += section.cells.visibleItems.count
-		}
-		return count
-	}
 }

		let returnValue = sections[section].tableView(tableView, titleForFooterInSection: section)
		trace(section, returnValue)
		return returnValue
	}
	
	public func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {

// MIT license. Copyright (c) 2016 SwiftyFORM. All rights reserved.
import UIKit

public class TableViewSectionArray: NSObject {
	public let sections: [TableViewSection]
	
	public init(sections: [TableViewSection]) {
