[IMP] models: rework the API that deals with dirty fields on records