     // MARK: - UITableViewDataSource
     
     open override func numberOfSections(in tableView: UITableView) -> Int {
+        let superNumberOfSections = super.numberOfSections(in: tableView)
+        guard let excludedCells = excludedCells, !excludedCells.isEmpty
+            else { return superNumberOfSections }
         var numberOfSections = 0
-        for superSection in 0 ..< super.numberOfSections(in: tableView) {
+        for superSection in 0 ..< superNumberOfSections {
             if shouldInclude(superSection: superSection) {
                 numberOfSections += 1
             }

    }
    
    private func superSection(forSection section: Int) -> Int {
        return section + numberOfExcludedSections(beforeSection: section)
    }
    
    private func superIndexPath(for indexPath: IndexPath) -> IndexPath {
        let superSection = self.superSection(forSection: indexPath.section)
        let indexPathInSuperSection = IndexPath(row: indexPath.row, section: superSection)
        let superIndexPath = IndexPath(row: indexPath.row + numberOfExcludedRowsInSuperSection(before: indexPathInSuperSection),

    }
    
    open override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        guard let excludedCells = excludedCells, !excludedCells.isEmpty
            else { return super.tableView(tableView, numberOfRowsInSection: section) }
        let superSection = self.superSection(forSection: section)
        let numberOfRowsInSuperSection = super.tableView(tableView, numberOfRowsInSection: superSection)
        let numberOfExcludedRowsInThisSection: Int = numberOfRowsInSuperSection == 0
