Initial version of tail-recursion optimization