anchor.diff:    }
   
     void _registerClick() {
  -    _clickSubscriptions.add(_upVoteElem.onClick.listen((e) {
  +    // no need to un-subscribe listener when voting or not allow vote,
  +    // it is protected by trigger processing
  +    _upVoteElem.onClick.listen((e) {
         e
           ..stopPropagation()
           ..preventDefault();
  
positive.code:       _machine.processTrigger(
            new _VotableTrigger()
              ..downVoting = true);
      }));
    }
  
    void _unregisterClick() {
      _clickSubscriptions.forEach((sub) => sub.cancel());
      _clickSubscriptions.clear();
    }
  
    void _changeCount({int delta}) {
  
negative.code:       _machine.processTrigger(
            new _VotableTrigger()
              ..upVoting = true);
      });
      _downVoteElem.onClick.listen((e) {
        e
          ..stopPropagation()
          ..preventDefault();
  