optimze iteration