fix bugs id field can be an int or a string, and audit function must return a string