messy swap back for some tests
some bugs and experiments
One more try