structure refactoring