rework audit client into a class