refactor of the reporter