added caching to views