Added caching and aggregation