Add cache and dynamic pagination to client