using the controller provider with caching