                                         columnCountForSection section: Int) -> Int
 }
 
-enum CHTCollectionViewWaterfallLayoutItemRenderDirection: Int {
+public enum CHTCollectionViewWaterfallLayoutItemRenderDirection: Int {
     case chtCollectionViewWaterfallLayoutItemRenderDirectionShortestFirst
     case chtCollectionViewWaterfallLayoutItemRenderDirectionLeftToRight
     case chtCollectionViewWaterfallLayoutItemRenderDirectionRightToLeft

        return CGSize.zero
    }

    override func layoutAttributesForItem(at indexPath: IndexPath) -> UICollectionViewLayoutAttributes? {
        if (indexPath as NSIndexPath).section >= self.sectionItemAttributes.count {
            return nil
        }

     *
     *  @return index for the shortest column
     */
    public func shortestColumnIndexInSection (_ section: Int) -> Int {
        var index = 0
        var shorestHeight = CGFloat.greatestFiniteMagnitude
        for (idx, height) in self.columnHeights[section].enumerated() {
