Partially through reworking movement.  Tests currently broken, fixing piecemeal.