radius_x/radius_y got swapped in a few spots, which lead to segfaults and such when they weren't equal.