 
 extension SZTableView: UIScrollViewDelegate
 {
+    enum SZTableViewInternalCellOperation
+    {
+        case Place
+        case Remove
+    }
+    
     func scrollViewDidScroll(scrollView: UIScrollView)
     {
         let newBorderIndexes = gridLayout.borderVisibleIndexes()
         getScrollDirection()
         
-        let indexesToRemove = findCellsToRemoveForScrollDirection(scrollDirection, andBorderIndexes: newBorderIndexes)
+        let indexesToRemove = findCellsForOperation(.Remove, andNewBorderIndexes: newBorderIndexes)
         for indexPath in indexesToRemove {
             if let cell = cellsOnView[indexPath] {
                 cell.removeFromSuperview()

        borderIndexes = newBorderIndexes
    }

    func findCellsToPlaceForScrollDirection(direction: SZTableViewScrollDirection,
                                            andBorderIndexes newBorderIndexes: SZBorderIndexes) -> [SZIndexPath]
    {
        var indexesToPlace = [SZIndexPath]()

        for z in 0...1 { // 0 - for columns, 1 - for rows

            let mainItem        = z==0 ? borderIndexes.column : borderIndexes.row
            let oppositeItem    = z==0 ? borderIndexes.row : borderIndexes.column
            let newMainItem     = z==0 ? newBorderIndexes.column : newBorderIndexes.row

                }
            }
            else if scrollDirectionToHandle == SZScrollDirection.FromMaxToMin {
                let maxIndexValue = operation == .Place ? newMainItem.minIndex + 1 : newMainItem.minIndex
                if mainItem.minIndex < maxIndexValue {
                    for mainIndex in mainItem.minIndex ... maxIndexValue {
                        for oppositeIndex in newOppositeItem.minIndex ... newOppositeItem.maxIndex {
                            let columnIndex = z==0 ? mainIndex : oppositeIndex
                            let rowIndex    = z==0 ? oppositeIndex : mainIndex
                            indexes.append(SZIndexPath(rowSectionIndex: 0,
                                columnSectionIndex: 0,
                                rowIndex: rowIndex,
                                columnIndex: columnIndex))
