Refactored. Step1