                 if remainedDeleteIndexPaths.count > 0 {
                     remainedUpdates.append(.delete(indexPaths: remainedDeleteIndexPaths))
                 }
-            case .appendSupplementary(_, _, _):
-                break
-            case .deleteSupplementary(_, _):
-                break
+            case .appendSupplementary(_, _, let section):
+                if section != sectionIndex {
+                    remainedUpdates.append(update)
+                }
+            case .deleteSupplementary(_, let section):
+                if section != sectionIndex {
+                    remainedUpdates.append(update)
+                }
             }
         }
         self._updates = remainedUpdates

    }

    func reloadSection(section: Int, animated: Bool = false) {
        if animated {
            applyUpdates(section: section)
            self.collectionView.reloadSections([section])
        } else {

        } else {
            applyUpdates()
            self.collectionView.reloadData()
        }
    }

    func reloadHiddenSections() {
        sections.forEach { (section) in
            guard section.hidden else { return }
            reloadSection(section: section.index, animated: false)
        }
    }

