Refactor.
Include extra fields for audit log.
Fix unnecesary update.
Refactor