   override func invalidateLayout() {
     super.invalidateLayout()
 
-    indexPathCache = NSIndexPath()
+    indexPathCache = NSIndexPath(forRow: 0, inSection: 0)
     layoutAttributesCache = [UICollectionViewLayoutAttributes]()
     layoutRectCache = CGRectZero
     firstOpenSpace = CGPointZero

    cellSize = CGSizeMake(100.0, 100.0)
    layoutAttributesCache = [UICollectionViewLayoutAttributes]()
    layoutRectCache = CGRectZero
    indexPathCache = NSIndexPath()
    firstOpenSpace = CGPointZero
    furthestCellPosition = CGPointZero
    indexPathByPosition = [UInt: [UInt: NSIndexPath]]()

      }

      unboundIndex++
      
    } while(true)
  }
  
  private func traverseCellsForPosition(point: CGPoint, withSize size: CGSize, closure: (point: CGPoint) -> Bool) -> Bool {
    var column: UInt = 0
    var row: UInt = 0
