Refactor pagination into ModelAdapter