final refactoring is completed