added caching for single model objects