add iterative methods