 # @param contentType [Object] Payload content type
 generateBody = (payload, attributes, contentType, callback) ->
   if not attributes? or not contentType? or payload.body
-    return callback null
+    return callback null, payload, attributes, contentType
 
   boutique.represent
     ast: attributes,

  # @param callback [(Error, ParseResult)]
  make: (source, callback) ->
    protagonist.parse source, @config, (error, result) =>
      callback error if error

      ruleList = ['mson-inheritance', 'mson-mixin', 'mson-member-type-name']
      rules = (require './rules/' + rule for rule in ruleList)

    attributes ?= actionAttributes

    async.waterfall [
      (cb) ->
        cb null, payload, attributes, contentType
      , generateBody
      , generateSchema
    ], (error) ->
      callback error or null

  # Expand a certain node with the given rules
  #
