change presave hook to post