recursive stepper