complete re-write of Swipe 2