     return serviceName
 
   addService:({serviceGenericName, serviceUniqueName})->
-    console.log 'addService', {serviceGenericName, serviceUniqueName}
     servicesOfType = @services[serviceGenericName] ?= []
     servicesOfType.push serviceUniqueName
 
   removeService:({serviceGenericName, serviceUniqueName})->
-    console.log 'removeService', {serviceGenericName, serviceUniqueName}
     servicesOfType = @services[serviceGenericName] 
     index = servicesOfType.indexOf serviceUniqueName
     servicesOfType.splice index, 1

      byRoutingKey  : {}
    }
    @counts   = {}
    @monitorServices()

  bound: require 'koding-bound'

  monitorServices: do ->
    pingAll =(services)->
      # for own servicesOfType of services
      #   servicesOfType.forEach (service)->
      # TODO: implement pingA       
    monitorServicesHelper =->
      console.log {@services, @clients}
      pingAll @services
    monitorServices =->
      handler = monitorServicesHelper.bind this
      setInterval handler, 10000

  authenticate:(messageData, routingKey, callback)->
    {clientId, channel, event} = messageData

    clientsByExchange.push client

  rejectClient:(routingKey, message)->
    @bongo.respondToClient routingKey, {
      method    : 'error'
      arguments : [message: message ? 'Access denied']
