basic manual caching