     return attributes
   }
   
-  public override func layoutAttributesForSupplementaryViewOfKind(elementKind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionViewLayoutAttributes? {
-    var attributes = initialLayoutAttributesForAppearingSupplementaryElementOfKind(elementKind, atIndexPath: indexPath as NSIndexPath)
+  public override func layoutAttributesForSupplementaryView(ofKind elementKind: String, at indexPath: IndexPath) -> UICollectionViewLayoutAttributes? {
+    var attributes = super.layoutAttributesForSupplementaryView(ofKind: elementKind, at: indexPath)
     if attributes != nil && elementKind == IOStickyHeaderParallaxHeader {
-        
-      attributes = IOStickyHeaderFlowLayoutAttributes(forSupplementaryViewOfKind: elementKind, withIndexPath: indexPath as NSIndexPath)
+      attributes = IOStickyHeaderFlowLayoutAttributes(forSupplementaryViewOfKind: elementKind, with: indexPath)
     }
     
     return attributes
   }
   
-  public func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
+  public override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
     var adjustedRec = rect
     adjustedRec.origin.y -= (self.parallaxHeaderReferenceSize?.height)!
     
-    let attributes = layoutAttributesForElements(in: adjustedRec)
+    let attributes = super.layoutAttributesForElements(in: adjustedRec)
     var allItems = [UICollectionViewLayoutAttributes]()
     
     attributes?.forEach { itemAttributes in

        currentAttribute.zIndex = 2000
      }
      
      currentAttribute.frame = CGRectMake(frame.origin.x, y, frame.size.width, height)
      allItems.append(currentAttribute)
    }
    

      lastCells.keyEnumerator().forEach { obj in
        //      for obj in lastCells.keyEnumerator() {
        if let indexPath = obj.indexPath {
          let indexPAthKey = (indexPath as NSIndexPath).section
          
          var header = headers[indexPAthKey]
          if header == nil {
            header = self.layoutAttributesForSupplementaryView(ofKind: UICollectionElementKindSectionHeader, at: IndexPath(item: 0, section: (indexPath as NSIndexPath).section))
            if let header:UICollectionViewLayoutAttributes = header as? UICollectionViewLayoutAttributes {
              allItems.append(header)
            }
