         core.respond "#{alias}.#{serviceName}", serviceDef
 
 
+  # Subscribe to a response address.
+  # Publish a message, with a response address in the envelope.
+  # Time out based on axiom config.
   request: (channel, data, done) ->
-    # Subscribe to a response address.
-    # Publish a message, with a response address in the envelope.
-    # Time out based on axiom config.
-
-    # Define a unique identifier for the message cycle
-    topicId = uuid.v1()
-
-    # Define metadata to put inside the envelope
-    replyTo =
-      channel: channel
-      topic:
-        err: "err.#{topicId}"
-        info: "info.#{topicId}"
-        success: "success.#{topicId}"
+
+    # Send the message
+    replyTo = core.send channel, data
+
 
     # Define an 'onTimeout' callback for when we don't get a response
     # (either error or success) in the configured time.
-    timeout = core.config.timeout
     onTimeout = ->
       err = new Error "Request timed out on channel '#{channel}'"
 

    timers.setImmediate finish

  # sends acknowledgement, error, completion to replyTo channels
  respond: (channel, handler) ->
    responderId = uuid.v1()

    callback = (message, envelope) ->
      handler message, (err, result) ->
        if err?
          topic = envelope.replyTo.topic.err
          data = err

    successSub = bus.subscribe {
      channel: replyTo.channel
      topic: replyTo.topic.success
      callback: callback
    }


  delegate: (channel, data, done) ->
