updated with iteration array