refactor ReportBuilder interface