save state to localStorage
Merge branch 'local-storage'