adding some caching support