Step2 after refactoring