refactor step