generate data dynamically, iteration2