solution refactoring