only commit if a transfer or swaps occurred
delete transfer back to original location
optimize the number of swaps