refactoring completed