isModified only works in the pre-save stage