Internal refactor to runStep