updated component structure via generator