     private var hidesFooter = false
     private var mainCellCount = 0
     private var allCellCount: Int {
-        return topCells.count + mainCellCount + (hidesFooter ? 0 : 1)
+        return topCells.count + mainCellCount
     }
 
     public var configureCellClosure: (cell: UITableViewCell, row: Int) -> UITableViewCell = { cell, row in return cell }


    // MARK: - TableViewDataSource

    override public func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return allCellCount
    }

    public override func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

    }

    private func isFooter(indexPath: NSIndexPath) -> Bool {
        return indexPath.section == 1
    }

    private func updateFooter(show: Bool) {
        if show && hidesFooter {
            UIView.setAnimationsEnabled(false)
            hidesFooter = false
            tableView.insertRowsAtIndexPaths([NSIndexPath(forRow: 0, inSection: 1)], withRowAnimation: .Fade)
            UIView.setAnimationsEnabled(true)

        } else if !show && !hidesFooter {
            hidesFooter = true
            tableView.deleteRowsAtIndexPaths([NSIndexPath(forRow: 0, inSection: 1)], withRowAnimation: .Fade)

        } else if show && !hidesFooter {
            UIView.setAnimationsEnabled(false)
            tableView.reloadRowsAtIndexPaths([NSIndexPath(forRow: 0, inSection: 1)], withRowAnimation: .Fade)
            UIView.setAnimationsEnabled(true)
        }
    }

}
