generate data dynamically, iteration3