added caching model