add pagination with more control