     open override func invalidateLayout() {
         super.invalidateLayout()
         
-        print("invalidateLayout called.")
+//        print("invalidateLayout called.")
         if shouldClearCacheOnInvalidate { clearCache() }
         shouldClearCacheOnInvalidate = true
     }
     
     func clearCache() {
-        print("cache cleared.")
+//        print("cache cleared.")
         headerCache.removeAll()
         cellCache.removeAll()
         sectionSize.removeAll()

        var retval = proposedContentOffset
        
        if let focusIndexPath = focusIndexPath {
            print("path retrieved: \(focusIndexPath)")
            if thereAreHeaders {
                let headerIndexPath = IndexPath(item: 0, section: focusIndexPath.section)
                if let headerAttr = layoutAttributesForSupplementaryView(ofKind: UICollectionElementKindSectionHeader, at: headerIndexPath) {

        var retval: IndexPath?
        switch direction {
        case .next:
            if let data = cellCache[section], data.count > item + 1 {
                retval = IndexPath(item: item + 1, section: section)
            } else if let data = cellCache[section + 1], !data.isEmpty {
                retval = IndexPath(item: 0, section: section + 1)
            }
        case .previous:
            if let data = cellCache[section], item - 1 >= 0 {
                retval = IndexPath(item: item - 1, section: section)
            } else if let data = cellCache[section - 1], !data.isEmpty {
                retval = IndexPath(item: data.count - 1, section: section - 1)
            }
        default:
            break
        }
        print("-> \(retval)")
        return retval
    }

