     public func serialize(request: URLRequest?, response: HTTPURLResponse?, data: Data?, error: Error?) throws -> T {
         guard error == nil else { throw error! }
         
-        /* return DataResponseSerializer { request, response, data, error in
-         if let error = checkResponseForError(request: request, response: response, data: data, error: error){
-         return .failure(error)
-         }
-         
-         let JSONObject = processResponse(request: request, response: response, data: data, keyPath: keyPath)
-         
-         if let JSONObject = JSONObject,
-         let parsedObject = (try? Mapper<T>(context: context, shouldIncludeNilValues: false).map(JSONObject: JSONObject)){
-         return .success(parsedObject)
-         }
-         
-         let failureReason = "ObjectMapper failed to serialize response."
-         let error = newError(.dataSerializationFailed, failureReason: failureReason)
-         return .failure(error)
-         } */
-        
-        
         guard let data = data, !data.isEmpty else {
             guard emptyResponseAllowed(forRequest: request, response: response) else {
                 throw AFError.responseSerializationFailed(reason: .inputDataNilOrZeroLength)

    public func serialize(request: URLRequest?, response: HTTPURLResponse?, data: Data?, error: Error?) throws -> [T] {
        guard error == nil else { throw error! }
        
        /* return DataResponseSerializer { request, response, data, error in
         if let error = checkResponseForError(request: request, response: response, data: data, error: error){
         return .failure(error)
         }
         
         let JSONObject = processResponse(request: request, response: response, data: data, keyPath: keyPath)
         
         if let JSONObject = JSONObject,
         let parsedObject = (try? Mapper<T>(context: context, shouldIncludeNilValues: false).map(JSONObject: JSONObject)){
         return .success(parsedObject)
         }
         
         let failureReason = "ObjectMapper failed to serialize response."
         let error = newError(.dataSerializationFailed, failureReason: failureReason)
         return .failure(error)
         } */
        
        
        guard let data = data, !data.isEmpty else {
            guard emptyResponseAllowed(forRequest: request, response: response) else {
                throw AFError.responseSerializationFailed(reason: .inputDataNilOrZeroLength)
            }
            
            // TODO - Response JSON Decodable Array
            guard let emptyValue = Empty.value as? [T] else {
                throw AFError.responseSerializationFailed(reason: .invalidEmptyResponse(type: "\(T.self)"))
            }
            
            return emptyValue
        }
        
        /* do {
         return try decoder.decode(T.self, from: data)
         } catch {
         throw AFError.responseSerializationFailed(reason: .decodingFailed(error: error))
         } */
        
        
        if let JSONObject = processResponse(request: request, response: response, data: data, keyPath: keyPath){
            

    public func serialize(request: URLRequest?, response: HTTPURLResponse?, data: Data?, error: Error?) throws -> [T] {
        guard error == nil else { throw error! }
        
        guard let data = data, !data.isEmpty else {
            guard emptyResponseAllowed(forRequest: request, response: response) else {
                throw AFError.responseSerializationFailed(reason: .inputDataNilOrZeroLength)
            }
            
            // TODO / FIX - Empty Response JSON Decodable Array Fix - "Cast from empty always fails..."
            guard let emptyValue = Empty.value as? [T] else {
                throw AFError.responseSerializationFailed(reason: .invalidEmptyResponse(type: "\(T.self)"))
            }
            
            return emptyValue
        }

        let JSONObject = processResponse(request: request, response: response, data: data, keyPath: keyPath)
        
        if let parsedObject = Mapper<T>(context: context, shouldIncludeNilValues: false).mapArray(JSONObject: JSONObject){
