refactoring work