Tail recursion optimization
Rename TailRecursive to tailRecursive