Refactored ReporterBase to not depend on a TextWriter/Formatter so it can be reused for other reporting methods