Refactored to provide serial implementation of abstract SWAP interface