45 out of 50, woooo, implemented swapping