Possess. Help me think?

I am utilizing the Possess function to switch characters. The behavior I want is more of a possession, I want character A to take over character B, be able to detach from character B, still be character A and then be free to possess character C. The behavior I am getting from the Possess, is I switch control from character A to character B and I leave character A behind.

I am hoping there is a simple way to achieve this, but I can only think of some cumbersome routes.

I have other questions relating to this if someone wants to make time them.

Your playercontroller needs a pointer to character A that it keeps during the whole game time.

Then when you possess character B, character A becomes unpossessed which you probably want to hide (and disable collisions) or something, I assume a ghost or spirit or something like that.
When you want to detach from character B just move character A where you want to appear, make it visible and possess it again.

Do the same every time you want to possess an other body.