Totaly implemented caching