Simple caching framework