Before I do, let me just say I personally was confused by this (thus why I changed it), because it seemed to be spooky action at a distance; it's not clear that ToMove in a base class would successfully call SetPosition in a derived class. It instead appears that ToMove has been overridden with a different parameter (Vector3).

It may be a duplication, but I think it makes it easier to understand if done this way, because it clearly passes it to the new ToMove. And Angel is all about ease of inspection, as you've said before.

Just wanted a final confirm to change it.