add attempt3 iterative