Creates interoperable custom elements
Promises to load Stylesheet and JavaScript assets.
Implements the subject/observer pattern