Refactoring and Finished Step 1