add localstorage support for settings