separate what happens before and after save