 
     switch scrollDirection {
     case .Vertical:
-      size = CGSizeMake(CGRectGetWidth(contentRect), (furthestCellPosition.y + 1) * cellSize.height)
-    case .Horizontal:
-      size = CGSizeMake((furthestCellPosition.x + 1) * cellSize.width, CGRectGetHeight(contentRect))
+      size = CGSize(
+        width: CGRectGetWidth(contentRect), height: (furthestCellPosition.y + 1) * cellSize.height
+      )
+    case .Horizontal:
+      size = CGSize(
+        width:(furthestCellPosition.x + 1) * cellSize.width, height: CGRectGetHeight(contentRect)
+      )
     }
 
     return size

    case .Vertical:
      let width = CGRectGetWidth(contentRect)
      padding = (width - CGFloat(maximumNumberOfCellsInBounds) * cellSize.width) / 2
      result = CGRectMake(
        position.x * cellSize.width + padding,
        position.y * cellSize.height,
        aCellSize.width * cellSize.width,
        aCellSize.height * cellSize.height
      )

    case .Horizontal:
      let height = CGRectGetHeight(contentRect)
      padding = (height - CGFloat(maximumNumberOfCellsInBounds) * cellSize.height) / 2
      result = CGRectMake(
        position.x * cellSize.width,
        position.y * cellSize.height + padding,
        aCellSize.width * cellSize.width,
        aCellSize.height * cellSize.height
      )
    }


      return
    }

    let scrollFrame = CGRect(
      x: cv.contentOffset.x,
      y: cv.contentOffset.y,
      width: cv.frame.size.width,
      height: cv.frame.size.height
    )

    let unboundIndex: Int
    switch scrollDirection {
