better report generation