update save() function