remove dependency on Kmisc::swap, in case people want to use outside Kmisc