improved swap animation