         event = headers['Content-Type']
     # Build request and response and send them out.
     req = new eslRequest headers,body
-    res = new_response()
-    if intercept_response?
-      res.intercept_response = intercept_response
+    res = new response socket
     if exports.debug
       util.log util.inspect event:event, req:req, res:res
     socket.emit event, req, res
   # Get things started
-  socket.emit 'esl_connect', new_response()
+  socket.emit 'esl_connect', new response socket
 
 #### ESL Server
 
 class eslServer extends net.Server
-  constructor: (requestListener,intercept_response) ->
+  constructor: (requestListener,response) ->
     @on 'connection', (socket) ->
       socket.on 'esl_connect', requestListener
-      connectionListener socket, intercept_response
+      connectionListener socket, response
     super()
 
 # You can use createServer(callback) from your code.


#### ESL client
class eslClient extends net.Socket
  constructor: (intercept_response) ->
    @on 'connect', ->
      connectionListener @, intercept_response
    super()

exports.createClient = -> return new eslClient()

              req.unique_id = unique_id
              server.emit 'CONNECT', req, res

    server = new eslServer listener, response
