anchor.diff:      });
     }
     
  -  Subscription subscribe(List<String> s){
  -    return _sub.subscribe(s);
  +  Subscription getSubscription(){
  +   return _sub._sub; //haha
     }
     
  -  Subscription psubscribe(List<String> s){
  -    return _sub.psubscribe(s);
  +  void subscribe(List<String> s){
  +    sendcmd_and_list("PSUBSCRIBE",s);
  +  }
  +  
  +  void  psubscribe(List<String> s){
  +    sendcmd_and_list("PSUBSCRIBE",s);
     }
     
     void unsubscribe(List<String> s){
  -    List cmd = ["UNSUBSCRIBE"];
  -    cmd.add(s);
  -    _sub.sendobject(cmd);
  +    sendcmd_and_list("UNSUBSCRIBE",s);
     }
   
     void punsubscribe(List<String> s){
  -    List cmd = ["PUNSUBSCRIBE"];
  -    cmd.addAll(s);
  -    _sub.sendobject(cmd);
  +    sendcmd_and_list("PUNSUBSCRIBE",s);
  +  }
  +  
  +  void sendcmd_and_list(String cmd,List<String> s){
  +    List list = [cmd];
  +    list.addAll(s);
  +    _sub.sendobject(list);
     }
     
   } 
   
   class _SubscriptionDispatcher{
     Subscription _sub = new Subscription();
  -  Subscription _psub = new Subscription();
     RedisConnection _connection;
     
     _SubscriptionDispatcher(this._connection){}
  
positive.code: 
  part of redis;
  
  //it used to delete subscription
  
negative.code:         _sub._trie.send(data[1],data[2]);
          break;
        case "pmessage":
          _sub._trie.send(data[2],data[3]);
          break;
      }
    }
    
    void KickListening(){
      _connection.senddummy().then(this._conn_handler);
    }
    
    void sendobject(Object cmd){
  