handle the recursive right