I use iterative recursion