     }
     
     override func collectionViewContentSize() -> CGSize{
-        var numberOfSections = self.collectionView.numberOfSections()
+        var numberOfSections = self.collectionView!.numberOfSections()
         if numberOfSections == 0{
             return CGSizeZero
         }
         
-        var contentSize = self.collectionView.bounds.size as CGSize
+        var contentSize = self.collectionView!.bounds.size as CGSize
         let height = self.columnHeights.objectAtIndex(0) as NSNumber
         contentSize.height = CGFloat(height.doubleValue)
         return  contentSize
     }
     
-    override func layoutAttributesForItemAtIndexPath(indexPath: NSIndexPath!) -> UICollectionViewLayoutAttributes!{
+    override func layoutAttributesForItemAtIndexPath(indexPath: NSIndexPath) -> UICollectionViewLayoutAttributes!{
         if indexPath.section >= self.sectionItemAttributes.count{
             return nil
         }

            * 2. Section header
            */
            var heightHeader : CGFloat
            if let height = self.delegate?.colletionView?(self.collectionView, layout: self, heightForHeaderInSection: section){
                heightHeader = height
            }else{
                heightHeader = self.headerHeight

            /*
            * 3. Section items
            */
            let itemCount = self.collectionView!.numberOfItemsInSection(section)
            let itemAttributes = NSMutableArray(capacity: itemCount)

            // Item will be put into shortest column.
