             let cell = tableView.dequeueReusableCellWithIdentifier(row.type.identifier, forIndexPath: indexPath)
             return row.prepareCell(cell)
         }
- */
     }
 
     public func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    }

    public func dequeueReusableCellWithIdentifier(tableView: UITableView, forIndexPath indexPath: NSIndexPath) -> C {
        return prepareCell(tableView.dequeueReusableCellWithIndexPath(indexPath)!)
    }

    public func prepareCell(cell: C) -> C {


    public func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let section = Container.sections[indexPath.section]
        let row = section.rows[indexPath.row]
        switch row {
        case .Custom(let CellType, let callback):
            let cell = tableView.dequeueReusableCellWithIdentifier(CellType.identifier, forIndexPath: indexPath)
