Add pagination and clean up tests

Thanks lawson!
this new way will fail for invalid entries that aren't `nil`. like `-1`