WIP: better swaps