 
 class TableViewManager: NSObject, UITableViewDelegate, UITableViewDataSource {
     
-    // MARK: Variables
+    // MARK: Public variables
     //
     var dataSource: TableViewDataSource?
     var style: TableViewCellStyle?

    // Display customization
    
    func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
        if let section = self.sectionAtIndexPath(indexPath), let item = self.itemAtIndexPath(indexPath), let displayHandler = item.displayHandler {
            displayHandler(section: section, item: item, tableView: tableView, indexPath: indexPath, tableViewCell: cell as! TableViewCell, status: .WillDisplay)
        }
    }
    
    

    // Data manipulation - reorder / moving support
    
    func tableView(tableView: UITableView, moveRowAtIndexPath sourceIndexPath: NSIndexPath, toIndexPath destinationIndexPath: NSIndexPath) {
        guard let sourceSection = self.sectionAtIndexPath(sourceIndexPath), let item = self.itemAtIndexPath(sourceIndexPath), let destinationSection = self.sectionAtIndexPath(destinationIndexPath) else {
            return
        }
        sourceSection.items.removeAtIndex(sourceIndexPath.row)
        destinationSection.items.insert(item, atIndex: destinationIndexPath.row)
        
        if let moveCompletionHandler = item.moveCompletionHandler {
            moveCompletionHandler(section: destinationSection, item: item, tableView: tableView, sourceIndexPath: sourceIndexPath, destinationIndexPath: destinationIndexPath)
        }
    }

