Refactor the audit behavior and add support for fetching the changer