Added caching and pagination