added iterate, renamed makeRecursive to recur, renamed recur to trampoline