         message = codes[methodNotAllowed]
         accept = request?.headers?.accept or ""
         handles = (mime) -> accept.indexOf(mime) >= 0
-        response.statusCode methodNotAllowed
-        response.end(error: message) if handles("json")
+        response.writeHead(methodNotAllowed, message)
+        descriptor = error: message, code: methodNotAllowed
+        response.end(descriptor) if handles("json")
         response.end(message); this
 
     # Process the already macted HTTP request according to the REST

    # defined in the subclass of this abstract base class. Default
    # implementation of each method will throw a not implemented.
    process: (request, response, next) ->
        tokens = super(request, response, next)
        parameters = [request, response, next]
        knowns = ["GET", "PUT", "POST", "DELETE", "OPTIONS"]
        method = request?.method?.toUpperCase()?.trim()
        return @unsupported(parameters...) unless method in knowns
        missing = "Missing implementation for #{method} method"

# It supports strictly methods defined in the HTTP specification.
module.exports.Api = class Api extends service.Service

    # An array of HTTP methods (also called verbs) supported by the
    # this abstract base class. The array of methods is strictly
    # limited by the HTTP specification by default. You can though
    # override it and provie support for more methods, up to you.
    @SUPPORTED = ["GET", "PUT", "POST", "DELETE", "OPTIONS"]

    # This method is intended for indicating to a client that the
    # method that has been used to make the request is not supported
    # by this service of the internals that are comprising service.
