Refactoring Step 1
Refactoring Step2