     
     // MARK: Private functions
     
-    private func configureCell(_ cell: UITableViewCell, data: String?) {
+    fileprivate func configureCell(_ cell: UITableViewCell, data: String?) {
         cell.textLabel!.text = data ?? ""
     }
     
-    private func loadDataIfNeededForRow(_ row: Int) {
+    fileprivate func loadDataIfNeededForRow(_ row: Int) {
         
         let currentPage = pagedArray.page(for: row)
         if needsLoadDataForPage(currentPage) {

/// Test operation that produces nonsense numbers as data
class DataLoadingOperation: BlockOperation {
    
    init(indexesToLoad: CountableRange<Int>, completion: (indexes: CountableRange<Int>, data: [String]) -> Void) {
        super.init()
        
        print("Loading indexes: \(indexesToLoad)")

        let operation = DataLoadingOperation(indexesToLoad: indexes) { [unowned self] indexes, data in
            
            // Set elements on paged array
            self.pagedArray.set(data, forPage: page)
            
            // Reload cells
            if let indexPathsToReload = self.visibleIndexPathsForIndexes(indexes) {
