used parse promises so that all steps are uploaded to the server before they are put in localstorage