recursion completion fixed