         self.setupSections()
         
     }
-
-    public init(tableView: UITableView, sections: [Section]) {
-        self.tableView = tableView
-        self.sections = []
-        super.init()
-        self.tableView.dataSource = self
-        self.tableView.delegate = self
-        self.setupSections()
+    
+    public convenience init(tableView: UITableView, sections: [Section]) {
+        self.init(tableView: tableView)
         self.sections.replace(with: sections)
     }
     

import UIKit

open class TableViewManager: NSObject {

    // MARK: Properties
    open let tableView: UITableView
    open var sections: ObservableArray<Section>

    open var validator: ValidatorManager<String?> = ValidatorManager()
    open var errors: [ValidationError] {
        get {
            return validator.errors
        }
    }


    // MARK: Inits

    public init(tableView: UITableView) {
        self.tableView = tableView
        self.sections = []

}

extension TableViewManager {
    
    fileprivate func item(forIndexPath indexPath: IndexPath) -> Item {
        return sections[indexPath.section].items[indexPath.row]
    }
