refactoring works