         // get all the page indexes we are going to config and position, based on delegate callbacks
         var preloadPageIndexes = pageIndexes
         
-        let beforeCount = dataSourceOptional.previousPageCountToPreload(verso:self, visiblePageIndexes: pageIndexes)
-        let afterCount = dataSourceOptional.nextPageCountToPreload(verso:self, visiblePageIndexes: pageIndexes)
+        let beforeCount = dataSourceOptional.pageCountToPreload(before:pageIndexes, for:self)
+        let afterCount = dataSourceOptional.pageCountToPreload(after:pageIndexes, for:self)
         
         let newFirstIndex = max(pageIndexes.first!-beforeCount, 0)
         let newLastIndex = min(pageIndexes.last!+afterCount, config.pageCount-1)
         
         preloadPageIndexes.insert(integersIn:newFirstIndex...newLastIndex)
         
-        if let adjustedPreloadIndexes = dataSourceOptional.adjustPreloadPageIndexes(verso:self, visiblePageIndexes: pageIndexes, preloadPageIndexes: preloadPageIndexes) {
+        if let adjustedPreloadIndexes = dataSourceOptional.adjustPreloadPageIndexes(preloadPageIndexes, visiblePageIndexes:pageIndexes, for:self) {
             preloadPageIndexes = adjustedPreloadIndexes
         }
         

                var pageView:VersoPageView? = nil
                
                // get the class of the page at that index
                let pageViewClass:VersoPageViewClass = dataSource?.pageViewClass(verso:self, pageIndex: pageIndex) ?? VersoPageView.self
                
                // try to find a pageView of the correct type from the recycle bin
                if let recycleIndex = recyclablePageViews.index(where: { (recyclablePageView:VersoPageView) -> Bool in

        
        // get a new spread configuration
        if spreadConfiguration == nil || versoSize != newVersoSize {
            newSpreadConfig = dataSource?.spreadConfiguration(with:newVersoSize, for:self)
        }
        
        let willRelayout = versoSize != newVersoSize || spreadConfiguration != newSpreadConfig
