swapping objects position making a circular movement

Hi,

I have three different objects, let’s say: x1  x2   x3.  I want to be able to swap x1 to x3 position (or viceversa), and swap x1 to x2 position (and viceversa) and x2 to x3 (and viceversa) making a circular movement, so the user can notice how both objects have changed their positions.

I’ve tried transition.to method, however it changes the xreference/yreference position of the object.so if i want to rollback the swap, it will not work (as reference points have changed). 

Any idea/suggestion how swapping positions making a circular movement?