always use localstorage