refactoring:structure changed