                 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

                s.delegate?.didStartZooming(pages:pageIndexes, zoomScale: zoomScale, in:s)
            }
            
            zoomTargetBackgroundColor = dataSourceOptional.zoomBackgroundColor(verso:self, zoomingPageIndexes:zoomingPageIndexes)
        }
    }
    

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