add guard
add undo on audit_trail