use local storage (if supported) for settings