confusion about swap2