Added a light caching and localStorage implementation