         let columnHeaderX = collectionView.contentInset.left
         let columnHeaderY = calculateColumnHeaderY()
         
-        println("Y:                     \(bounds.minY)")
-        println("columnHeaderY:         \(columnHeaderY)")
-        println("minX:                  \(bounds.minX)")
-        println("maxX:                  \(bounds.maxX)")
-        println("rowSupplementaryViewX: \(rowSupplementaryViewX)")
-        println("columnHeaderX:         \(columnHeaderX)")
+//        println("Y:                     \(bounds.minY)")
+//        println("columnHeaderY:         \(columnHeaderY)")
+//        println("minX:                  \(bounds.minX)")
+//        println("maxX:                  \(bounds.maxX)")
+//        println("rowSupplementaryViewX: \(rowSupplementaryViewX)")
+//        println("columnHeaderX:         \(columnHeaderX)")
         if everythingNeedsUpdate {
             
             /// Only adds attributes if `columnHeaderHeight` is greater than 0.

        
        let context = context as! TableLayoutInvaldationContext
        
        columnHeaderYNeedsUpdate = context.invalidColumnHeaderFreezeState
        rowSupplementaryViewXNeedsUpdate = context.invalidateRowSupplementaryViews
        
        if context.invalidateEverything || context.invalidateDataSourceCounts {

                    return visibleRect.contains(CGPoint(x: x, y: visibleRect.midY))
                }
                
                var x: CGFloat = columnHeaderX
                for column in 0..<numberOfColumns {
                    var width = delegate.collectionView(collectionView, layout: self, columnWidthForTableColumn: column)
                    if width <= 0 {
                        println("Column \(column) has a width which is invalid, using a width of 80 instead")
                        width = 80
                    }
                    
                    // Add column header attribute
                    addColumnHeader(column, x, width)
                    
                    if let rowRange = rowRange where isXInCollectionViewBounds(x) {
                        // Pre calculate these items as they're going to be visible
                        for row in rowRange {
                            if let minY = rowYOffsets[row], maxY = rowFooterYOffsets[row] {
                                let indexPath = NSIndexPath(forTableColumn: column, inTableRow: row)
