move some pagination logic to presenter base