swap
* refactor and expose swapping as a single method * fixes after rebasing on latest 2.0 * fix optional parameters for swapping * add `fullSwap` to internal API * swap refactor polishing * make linter happy