split out paginator into it's own file