add paginate func