refactoring strategy