we now uses the cache features to optimize