 public protocol VersoViewDelegate : class {
     
     /// This is triggered whenever the centered pages change, but only once any scrolling or re-layout animation finishes.
-    func currentSpreadPagesChangedForVerso(verso:VersoView, spreadPageIndexes:NSIndexSet, added:NSIndexSet, removed:NSIndexSet)
-    /// This is triggered whenever the centered pages change, whilst the user is scrolling, or after a relayout.
-    func visibleSpreadPagesChangedForVerso(verso:VersoView, spreadPageIndexes:NSIndexSet, added:NSIndexSet, removed:NSIndexSet)
+    func currentPageIndexesChangedForVerso(verso:VersoView, pageIndexes:NSIndexSet, added:NSIndexSet, removed:NSIndexSet)
+    /// This is triggered whenever the visible pages change, whilst the user is scrolling, or after a relayout. This will be called before `currentPageIndexesChanged` callback is triggered.
+    func visiblePageIndexesChangedForVerso(verso:VersoView, pageIndexes:NSIndexSet, added:NSIndexSet, removed:NSIndexSet)
     
     /// The user started zooming in/out of the spread containing the specified pages. ZoomScale is the how zoomed in we are when zooming started.
     func didStartZoomingPagesForVerso(verso:VersoView, zoomingPageIndexes:NSIndexSet, zoomScale:CGFloat)

                return
            }
            
            var targetSpreadIndex = visibleSpreadIndex ?? 0
            
            // spread hasnt changed, use velocity to inc/dec spread
            if targetSpreadIndex == dragStartSpreadIndex {

            self?.pageViewsByPageIndex = [:]
            
            self?.currentSpreadIndex = nil
            self?.currentPageIndexes = NSIndexSet()
            self?.centeredSpreadIndex = nil
            self?.visiblePageIndexes = NSIndexSet()
            
            self?.spreadConfiguration = nil
            
