     @discardableResult
     public func responseJSONDecodable<T: Decodable>(
         queue: DispatchQueue? = nil,
-        decoder: JSONDecoder? = JSONDecoder(),
+        decoder: JSONDecoder = JSONDecoder(),
         completionHandler: @escaping (DataResponse<T>) -> Void)
         -> Self
     {

    ///
    /// - returns: A JSON Decodable object response serializer.
    public static func JSONDecodableResponseSerializer<T: Decodable>(
        decoder: JSONDecoder? = JSONDecoder())
        -> DataResponseSerializer<T>
    {
        return DataResponseSerializer { _, response, data, error in

        }
        
        do {
            let object = try decoder.decode(T.self, from: validData)
            return .success(object)
        } catch {
            return .failure(AFError.responseSerializationFailed(reason: .jsonSerializationFailed(error: error)))
