an, value: false},
    tappable: {type: Boolean, value: false},
    _label: String,
    _icon: String
  },
  listeners: {
    tap: '_tapped'
  },
  attached: function() {
    this._update();
  },
  _update: function() {
    this._setPresent(this.$.cart.includes(this.element));
    
    this._label = this.present ? this.presentLabel : this.absentLabel;
    this.setAttribute('aria-label',this._label);
    
    this.debounce('icon', function() {
      this._icon = this.present ? 'star' : 'star-border';
    }, 