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

    func dequeueReusableCellWithIdentifier(tableView: UITableView, forIndexPath indexPath: NSIndexPath) -> C
}

public enum QuickTableViewRow<T: UITableViewCell where T: UITableViewCellIdentifiable>: QuickTableViewRowLikeExtended {
    public typealias C = T
    public typealias QuickTableViewHandler = UIViewController -> Void

    case Default(String?)


    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)
