refactoring of structure