anchor.diff:                     => new GlobalEvent(details:{'owner': owner, 'readMessages': true})));
           
            
  +      publishStream(_input.keyboard$.transform(new Debounce(new Duration(milliseconds:1000)))
  +      .map((e) => new GlobalEvent(details:{'owner': owner, 'isTyping': false})));
  +      
         globalEvent$.listen((m) {
           if(m is Message) {
             messages.add(m);
  
positive.code:     
      globalEvent$.where((e) => e.details.containsKey('isTyping')
                              && receivers.contains(e.details['owner']))
                      .listen((e) {
                      _updateString(e);
                });
   }
    
    User owner;
  
negative.code:   ani.friends = [kors, georgi];
    georgi.friends = [kors, ani];
    
    var app1 = new ChatAppComponent(kors);  
    render(app1, document.querySelector('#app1'));
    
  