Added a cache decorator