add simple caching support