refactoring of reporter