create pagination abstract class