iterative recursion is tail recursion, I suddenly realize it