refactor step 1