refactoring directive