refactoring structure

@2h