refactoring finished