simplified swap