     ///   - pageOffset: The current page scroll offset
     ///   - scrollView: The scroll view that is being scrolled.
     /// - Returns: Whether a page transition has been detected.
-    private func detectCurrentPageIndexIfNeeded(pagePosition: CGFloat, scrollView: UIScrollView) -> Bool {
+    private func detectNewPageIndexIfNeeded(pagePosition: CGFloat, scrollView: UIScrollView) -> Bool {
         guard var currentIndex = self.currentIndex else {
             return false
         }

                                                             pageSize: pageSize) else {
                                                                return
        }
        guard var pagePosition = self.pagePosition(forContentOffset: contentOffset,
                                                   pageSize: pageSize,
                                                   indexDiff: scrollIndexDiff) else {
                                                    return
        }
        
        // do not continue if a page change is detected
        guard !self.detectCurrentPageIndexIfNeeded(pagePosition: pagePosition,
                                                   scrollView: scrollView) else {
                                                    return
        }
        
        // do not continue if previous position equals current

    ///   - pageSize: The current page size.
    ///   - indexDiff: The expected difference between current / target page indexes.
    /// - Returns: The relative page position.
    private func calculatePagePosition(for contentOffset: CGFloat,
                              pageSize: CGFloat,
                              indexDiff: CGFloat) -> CGFloat? {
        guard let currentIndex = self.currentIndex else {
