add controller caching