anchor.diff:          attr_value: property_name
       );
       if(property_el != null) {
  -      /// Basic case when property is tied to the node's text.
  +      // Basic case when property is tied to the node's text.
         property_el.text = this.attributes[property_name];
  -      /// Now deal with properties tied to an element's attribute, rather than it's text.
  +      // Now deal with properties tied to an element's attribute, rather than it's text.
         _updatePropertyOnHtmlAttribute(property_el, property_name);
       }
     }
   
  +  /** Starts listening to native events defined in #native_events. It is
  +   *  called (and thus, listeners are re-initialized) if #dom_element changes.
  +   *  Native events may come from the #dom_element itself or from one of its descendants.
  +   *  Obviously, each native event has to be listed in #native_events for it to be caught.
  +   *
  +   *  If you want to catch events from descendants of the #dom_element, define events as
  +   *  "self.part_name" where part_name is identical to the value of the data-component-part
  +   *  html attribute of the descendant element.
  +   */
     _listenToNativeEvents() {
       this.native_events.forEach((e) {
  -      /// Event belongs to an html element which is a descendant of our component's dom_element
  +      // Event belongs to an html element which is a descendant of our component's dom_element
         if(e.contains('.')) {
           e = e.split('.'); // the original string is something like "text_field.click"
           var part_name  = e[0];
  
positive.code:           part_el.on[event_name].listen((e) => this.captureEvent(e.type, ["self.$part_name"]));
          }
        }
        /// Event belongs to our component's dom_element
        else {
          this.dom_element.on[e].listen((e) => this.captureEvent(e.type, [#self]));
        }
     }); 
    }
  
    _createBehaviors() {
      behaviors.forEach((b) {
        ['', 'nest_ui'].forEach((l) {
  
negative.code:     });
    }
  
    /** Sometimes properties are tied to HTML attributes, not to node's text. */
    _updatePropertyOnHtmlAttribute(node, attr_name) {
      var property_html_attr_name = node.getAttribute('data-component-property-attr-name');
      if(property_html_attr_name != null)
        node.setAttribute(property_html_attr_name, this.attributes[attr_name]);
    }
  
    /** Finds first DOM descendant with a certain combination of attribute and its value,
     *  or returns the same node if that node has that combination.
     * 
     *  This method is needed when we want to listen to #dom_element's descendant native events
     *  or when a property is changed and we need to change a correspondent descendant node.
     */
    _firstDescendantOrSelfWithAttr(node, { attr_name: null, attr_value: null }) {
  
      if(attr_name == null || node.getAttribute(attr_name) == attr_value)
  