added modular 'swapper'