add toStep() method