create localStorage abstraction