refactoring step