Refactor reporter
Allow add() to take a map and refactor