                 var pageView:VersoPageView? = nil
                 
                 // get the class of the page at that index
-                let pageViewClass:VersoPageViewClass = dataSource?.pageViewClass(verso:self, pageIndex: pageIndex) ?? VersoPageView.self
+                let pageViewClass:VersoPageViewClass = dataSource?.pageViewClass(on:pageIndex, for:self) ?? 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

    /// Asks the datasource to configure its pageview (done from preparePageView
    fileprivate func _configure(pageView:VersoPageView) {
        if pageView.pageIndex != NSNotFound {
            dataSource?.configurePage(verso:self, pageView: pageView)
        }
    }
    

        // get all the page indexes we are going to config and position, based on delegate callbacks
        var preloadPageIndexes = 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(preloadPageIndexes, visiblePageIndexes:pageIndexes, for:self) {
            preloadPageIndexes = adjustedPreloadIndexes
        }
        
