fixed successor (I think :)):
handling the case when it has any right ancestor