more improvements to swaps