         cb false, @getChannelNameForKite()
 
       'kite.join': (opts, cb)->
-        console.log "========>>>>>>"
-        console.log "opts", opts
-
         channelName = opts.args[0]
-        kiteName = opts.args[1]
+        kiteName    = opts.args[1]
         if not @kiteList[channelName]
           @kiteList[channelName] = []
         if kiteName not in @kiteList[channelName] 
           @kiteList[channelName].push kiteName
         console.log "clients", @kiteList
-        cb false, true
-
-      'kite.consume': ()->
+        if cb
+          cb false, true
+
+      'kite.consume': (opts, cb)->
         # TODO:
         @mergenData.lpop @getChannelNameForGenericName(), (err, val)->
           console.log "!!!!!!!!!!!!! lpop lpop >>>>>>", val

    "#{@publicKey}-kite-all"

  getGroupName:(groupName)->
    "#{@publicKey}-kite-kite-#{@publicKey}-Deployer"

  receivedCommand: (from, cmdid, cmd, args)->
    #console.log "received command", from, cmd, args

    if cmd.indexOf('reply-') > -1
      cmdid = cmd.split('reply-')[1]
      @waitingReplies[cmdid]?.call(@, {args:args, from:from})
      return

    fn = @commands[cmd]


    @mergenData.hset "#{@publicKey}-kites", "#{@serviceGenericName}-#{@serviceUniqueName}", data

    @sendCommand @getChannelNameForGenericName(), "kite.who", [], (err, reply)->
      console.log "=========11111111================================="
      console.log err, reply
      console.log "=========// 11111111================================="
      @commands['kite.join'].call(@, {args:[@getChannelNameForGenericName(),reply.from], from:reply.from})

    @sendCommand @getChannelNameForGenericName(), "kite.join", [@getChannelNameForGenericName(), @getChannelNameForKite()]

