refactoring structure 1