A widget hierarchy which is to be designated as a reusable object must satisfy a number of criteria.
One of these constraints is the fact that the root of the widget hierarchy must be structured. Namely, the root of the widget hierarchy must be designated as either a data structure, or as a C++ class.
A widget is designated as a data structure or C++ class from the Code Generation page of the Core Resources panel.
See also: