refactoring change ReportWriter from interface to abstract class