refactoring steps