     clientsByExchange.push client
 
   rejectClient:(routingKey, message)->
-    console.log 'rejecting client', arguments
-    console.trace()
     @bongo.respondToClient routingKey, {
       method    : 'error'
       arguments : [message: message ? 'Access denied']

    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
