add beforeSave and afterSave