add localStorage wrapper for caching data