adding a cache solution