refactor structurel