anchor.diff:    final String owner;
     final List<String> receivers;
     final String text;
  -  
  +
     Message(this.owner, this.receivers, this.text);
     
     toString() => 'from $owner, to $receivers: $text';
  
positive.code:                            && e.details['owner'] == owner)
        .listen((e) => _update(0));
    }
    String owner;
    List<String> friends;
    
  
negative.code:     
      publishStream(_input.focus$.map((e) 
          => new GlobalEvent(details:{'owner': owner, 'readMessages': true})));
     
      
      publishStream(_input.keyboard$.map((e)
          => new GlobalEvent(details:{'owner': owner, 'isTyping': true})));    
  
      
      enter$.listen((e) {
        text = e.target.value;
        publishEvent(new Message(owner, receivers, e.target.value));
        e.target.value = '';
      });
      
      globalEvent$.where((e) => e.details.containsKey('isTyping'))
            .listen((e) {
            _updateString(e);
      });
  
   }
    
    String owner;
    List<String> receivers;
  