refactor post save