new generate report functions