 
   open override func frame(at: Int) -> CGRect {
     let (sectionIndex, item) = indexPath(at)
-    var frame = currentSections[sectionIndex].frame(at: item)
+    var frame = sections[sectionIndex].frame(at: item)
     frame.origin += layout.frame(at: sectionIndex).origin
     return frame
   }
 
   open override func presenter(at: Int) -> CollectionPresenter? {
     let (sectionIndex, item) = indexPath(at)
-    return currentSections[sectionIndex].presenter(at: item) ?? presenter
+    return sections[sectionIndex].presenter(at: item) ?? presenter
   }
 
   open override func willReload() {

  }

  internal func prepareForReload() {
    currentSections = sections
    sectionBeginIndex = []
    sectionForIndex = []
    sectionBeginIndex.reserveCapacity(currentSections.count)
    for (sectionIndex, section) in currentSections.enumerated() {
      let itemCount = section.numberOfItems
      sectionBeginIndex.append(sectionForIndex.count)
      for _ in 0..<itemCount {
        sectionForIndex.append(sectionIndex)
      }
    }
  }

  open override func didReload() {
    super.didReload()
    for section in currentSections {
      section.didReload()
    }
  }

  open override func didTap(view: UIView, at: Int) {
    let (sectionIndex, item) = indexPath(at)
    currentSections[sectionIndex].didTap(view: view, at: item)
  }

  open override func hasReloadable(_ reloadable: CollectionReloadable) -> Bool {
    if reloadable === self { return true }
    for section in currentSections {
      if section.hasReloadable(reloadable) {
        return true
      }
    }
    return false
  }

}

      let sectionFrame = layout.frame(at: sectionIndex)
      let intersectFrame = visibleFrame.intersection(sectionFrame)
      let visibleFrameForCell = CGRect(origin: intersectFrame.origin - sectionFrame.origin, size: intersectFrame.size)
      let sectionVisible = sections[sectionIndex].visibleIndexes(visibleFrame: visibleFrameForCell)
      let beginIndex = sectionBeginIndex[sectionIndex]
      for item in sectionVisible {
        visible.append(item + beginIndex)
