generate_report class refactor