refactoring more