The GenericService class implements all useful Nucleus interfaces, except those that allow it to contain other services: NameContext and NameContextBindingEventSource.

Nucleus includes a subclass of GenericService that goes the extra step and implements those two interfaces. The subclass is called GenericContext. If your component extends GenericContext, it gets all the benefits of GenericService, and it can contain arbitrary objects by calling putElement. Those objects appear in the Nucleus namespace as children of your component.