Major Progress. Sift seems to work. As does Swap()