protected function requestPageNumber($pageNumber, $forceRefresh = false)
    {
        if (!isset($this->data[$this->pageNumberToKey($pageNumber)]) || ($forceRefresh && isset($this->api))) {
            // assume one page if no pagination (and already loaded)
            if (isset($this->pagination[CanvasPageLink::CURRENT])) {
                $params = $this->pagination[CanvasPageLink::CURRENT]->getParams();
                $params[CanvasPageLink::PARAM_PAGE_NUMBER] = $pageNumber;
                $page = $this->api->get($this->pagination[CanvasPageLink::CURRENT]->getEndpoint(), $params);
                $this->data = array_replace($this->data, $page->data);
                $pagination = $this->parsePageLinks();
                $this->paginationPerPage[$pagination[CanvasPageLink::CURRENT]->getPageNumber()] = $pagination;
                return true;
            }
        }
        return false;
    }