refactoring material