Cleanup. Re-write of GearShiftController