Initial caching implementation