define an refactoring