refactopring structure