   _process_response: (body, callback) ->
     xml2js.parseString body, trim: true, (err, result) =>
       return callback new errors.OutcomeResponseError('The server responsed with an invalid XML document'), false if err
-      info = result?.imsx_POXEnvelopeResponse?.imsx_POXHeader?.imsx_POXResponseHeaderInfo?.imsx_statusInfo
 
-      if info?.imsx_codeMajor == 'success'
-        callback null, true
+      response  = result?.imsx_POXEnvelopeResponse
+      code      = navigateXml response, 'imsx_POXHeader.imsx_POXResponseHeaderInfo.imsx_statusInfo.imsx_codeMajor'
+
+      if code != 'success'
+        callback new errors.OutcomeResponseError('The request provided was invalid'), false
       else
-        callback new errors.OutcomeResponseError('The request provided was invalid'), false
+        callback null, true, response
 
 
 


  send_read_result: (callback) ->
    doc = new OutcomeDocument @REQUEST_READ, @source_did, @provider
    @_send_request doc, callback


  send_delete_result: (callback) ->


errors       = require './errors'



navigateXml = (xmlObject, path) =>
  for part in path.split '.'
    xmlObject = xmlObject?[part]?[0]

  return xmlObject


class OutcomeDocument
