add iterative way