For testability, it would be better to wrap `currentStep` and `_setStep` ... stuffs inside an object. Otherwise it would be hard to test later when writing unit tests.