GearSwap fix subjob_change event

And some flow refactoring.