code: function() {
        if (this._elementPrepared) {
          console.warn('Element already prepared', this.localName);
          return;
        }
        this._elementPrepared = true;
        // storage for shadowRoots info
        this.shadowRoots = {};
        // install property observers
        this.createPropertyObserver();
        this.openPropertyObserver();
        // install boilerplate attributes
        this.copyInstanceAttributes();
        // process input attributes
        this.takeAttributes();
        // add event listeners
        this.addHostListeners();
      }
docs: system entry point, do not override