working arrayswap, looks pants thoughw