implement audit functions -- work in progress