refactoring more and more