     // MARK: Selection
     
     public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
-        let item = sections[(indexPath as NSIndexPath).section].items[(indexPath as NSIndexPath).row]
+        let item = sections[indexPath.section].items[indexPath.row]
         
         if let selectableItem = item as? SelectableTableViewItem {
             selectableItem.selectionHandler?()


    /// Returns the `ComparableItem` that belongs to the provided index path.
    public func tableViewItem(indexPath: IndexPath) -> DeltaTableViewItem {
        return sections[(indexPath as NSIndexPath).section].items[(indexPath as NSIndexPath).row]
    }

    

    
    
    public func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
        return estimatedCellHeights[indexPath.section, indexPath.row] ?? tableView.estimatedRowHeight
    }
    
    
    public func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
        estimatedCellHeights[indexPath.section, indexPath.row] = cell.bounds.height
        learnedCellHeights[indexPath.section, indexPath.row] = cell.bounds.height
    }
    
    
