use localforage instead of asyncStorage