Swap thing sucks, CSharp Pointers Suck, slightly bettered swapping