public function setPage($page)
    {
        if (!is_numeric($page)) {
            throw new InvalidArgumentException(
                'Page number must be numeric.'
            );
        }

        $page = (int)$page;
        if ($page === 0) {
            $page = 1;
        } elseif ($page < 0) {
            throw new InvalidArgumentException(
                'Page number must be greater than zero.'
            );
        }

        $this->page = $page;
        return $this;
    }