 
 // MARK: - DataSource
 
+/// Object that can act as the delegate and datasource for UITableViews and UICollectionViews.
+/// The block based initialization allows tables and collections to be created with a DSL-like syntax.
 public class DataSource: NSObject {
     public var sections: [Section]
     public var onReorder: ReorderBlock?


// MARK: - Middleware

public struct Middleware {
    public var apply: (UIView) -> Void
    public init<View: UIView>(apply: @escaping (View) -> Void) {


// MARK: - Item

/// Object used to configure UITableViewCell or UICollectionViewCells
public class Item: Reusable {
    public var onSelect: IndexPathBlock?
    public var onDelete: IndexPathBlock?
