This way, widgets containing other widgets can be heterogenous. Wenever a widget is expeted, *any* widget will work.