stepControl() rewritten