Implement caching with sessionStorage