synchronize recursion