solution structure refactoring