 
         let page = ListPage(size: pageSize, number: firstPage,  lastID: nil)
         self.loadPage(page) { [weak self] objects in
-            self?.appendNewPage(with: objects)
+            self?.appendNewPage(page, with: objects)
         }
     }
     
     public func loadNextPage() {
+        guard state.canLoadMore else { return }
         let nextPage = ListPage(size: pageSize, number: currentPage + 1,  lastID: self.lastID)
         self.loadPage(nextPage) { [weak self] objects in
-            self?.appendNewPage(with: objects)
+            self?.appendNewPage(nextPage, with: objects)
         }
     }
     

    public func clear() {
        self.lastID = nil
        self.objects = []
        self.currentPage = firstPage
    }
    

                switch onGap {
                case .dropLoaded:
                    self?.clear()
                    self?.appendNewPage(page, with: Array(newObjects))
                case .keepLoading:
                    let nextPage = ListPage(size: page.size, number: page.number + 1,  lastID: nil)
                    self?.refreshPage(nextPage, firstID: firstID, onGap: onGap)
