Subcomponent can be declared directly as class attributes
=> use of a new factory function helps prevent issues
Finalize declarative way using factory functions
Removed capability of declaring subcomponents as class attributes on parent