refactoring article