 
     /// Whether or not the HTTP response line and headers have been flushed.
     private var startFlushed = false
-
-    /// The headers to send back as part of the HTTP response.
+    
+    /**
+     The headers to send back as part of the HTTP response.
+     
+     ### Usage Example: ###
+     ````swift
+     response.headers["Content-Length"] = [String(theBody.count)]
+     ````
+     */
     public var headers = HeadersContainer()
 
     /// Status code


    }

    /// External message write for multiplex rejection
    ///
    /// - Parameter requestId: The id of the request to reject.
    public func rejectMultiplexConnecton(requestId: UInt16) throws {
        let message = try getNoMultiplexingMessage(requestId: requestId)
        try writeToSocket(message, wrapAsMessage: false)
    }

    /// External message write for role rejection
    public func rejectUnsupportedRole() throws {
        guard let message = try getUnsupportedRoleMessage() else {
            return

        self.headers["Date"] = [SPIUtils.httpDate()]
    }

    /**
     Add a string to the body of the HTTP response and complete sending the HTTP response
     
     - Parameter text: The String to add to the body of the HTTP response.
     
     - Throws: Socket.error if an error occurred while writing to the socket
     
     ### Usage Example: ###
     ````swift
     try response.end(text: result)
     ````
     */
    public func end(text: String) throws {
        try write(from: text)
        try end()
    }
    
    /**
     Add a string to the body of the HTTP response.
     
     - Parameter string: The String data to be added.
     
     - Throws: Socket.error if an error occurred while writing to the socket
     
     ### Usage Example: ###
     ````swift
     try response.write(from: theBody)
     ````
     */
    public func write(from string: String) throws {
        try write(from: string.data(using: .utf8)!)
    }

    /**
     Add bytes to the body of the HTTP response.
     
     - Parameter data: The Data struct that contains the bytes to be added.
     
     - Throws: Socket.error if an error occurred while writing to the socket
     
     ### Usage Example: ###
     ````swift
     try response.write(from: theData)
     ````
     */
    public func write(from data: Data) throws {

        try startResponse()
