     private func load(_ newPage: Page, withIndex index: Int)  {
         addSubPages(page: newPage)
         visiblePages[index] = newPage
+        reuseablePages[newPage.reuseIdentifier] = nil
         layoutPages(newPage, withIndex: index)
     }
     
     /// Enqueue page to reuseablePages
     ///
     /// - Parameter page: Page instance
-    private func enterReuseQueue(_ index: Int, _ page: Page) {
-        reuseablePages[page.reuseIdentifier] = page
+    private func enterReuseQueue(_ oldPage: Page, withIndex index: Int) {
+        removeSubPage(page: oldPage)
+        reuseablePages[oldPage.reuseIdentifier] = oldPage
         visiblePages[index] = nil
     }
     

                }
                
                if !visibleIndexCollection.contains(index), let inVisiblePage = page {
                    removeSubPages(page: inVisiblePage)
                    enterReuseQueue(index, inVisiblePage)
                }
            }
        } else {

    /// - parameter index: An index has been selected
    open func dynamicPage() {
        let visibleIndexCollection = visiblePagesIndexCollection()
        if isReuseEnable {
            ///*********************************************************************
            ///                     (page is visible)
