endless refactoring