Problem: Current pagination behaviour contains UI, behavioural logic and data access all together in a single class. We should split this behaviour to maintain a separation of concerns.
AC:
create a pagination logic class that is UI agnostic
create an interface that allows defined communication between the logic layer and data access
the logic class should be able to communicate with any database access class which implements the interface.