Fully implemented swap animation