anchor.diff:            ..innerHtml = "${address.localPart == "" ? "<span class='asterisk'></span>" : address.localPart}@${address.domain.domainName}"
             ..innerHtml += can_edit ? "<div class='delete'></div>" : "";
   
  +        deleteListener(address, li);
           if (can_edit) {
             li.classes.add('can_edit');
           } else {
  
positive.code:   void setUpAddressList() {
  
      var gas = [];
  
      var g = new ElementChildrenGenerator<MailDomain, LIElement>((MailDomain d) {
        var li = new LIElement();
  
negative.code: 
  
      g.addHandler((MailDomain d, LIElement domain_li) {
        var ul = domain_li.children[0];
        var ga = new ElementChildrenGenerator<MailAddress, LIElement>(
                (_) => new LIElement(),
            ul,
                (LIElement li, _) => d.addressLibrary[li.dataset['local-part']]);
        var sort = (_) => sortChildren(ga.element, (LIElement li1, LIElement li2) => (li1.dataset['local-part'] == "" || li2.dataset['local-part'] == "" ? -1 : 1) * li1.dataset['local-part'].compareTo(li2.dataset['local-part']));
  
        ga.addUpdater((MailAddress address, LIElement li) {
          var can_edit = userLibrary.userLoggedIn.hasSitePrivileges || address.owners.contains(userLibrary.userLoggedIn);
  