Add caching to the system