generate report in other thread