pagination with cacheing