add recursive html generation for report