final version - save into storage