add cache to controller