refactoring is hard