         return AnyPromise(promise)
     }
     
-    @objc
-    func responseJSON(withBlock block:@escaping ([String : Any], Error?) -> Void) {
+    @objc(responseJSONArray:)
+    func responseJSONArray(withBlock block:@escaping ([Any], Error?) -> Void) {
+        self.responseJSON(handler: { (json, error) in
+            if error != nil { block([], error); return }
+            if json.arrayObject == nil {
+                block([], createError("Dictionary is nil for [\(json.rawString() ?? "")]"))
+            } else {
+                block(json.arrayObject!, nil)
+            }
+            
+        })
+    }
+    
+    @objc(responseJSONDictionary:)
+    func responseJSONDictionary(withBlock block:@escaping ([String : Any], Error?) -> Void) {
         self.responseJSON(handler: { (json, error) in
             if error != nil { block([:], error); return }
             if json.dictionaryObject == nil {

        })
    }
    
    // MARK: Obj-C | JSON -> Array of Products
    
    @objc(responseProducts)
    func responseProductsPromise() -> AnyPromise {
        let promise = Promise<[Product]> { fullfill, reject in
            self.responseProducts(handler: { (response) in
                switch response {
                case .error(let error):
                    reject(error)
                case .response(let rawres):
                    fullfill(rawres.objects)
                }
            })
        }
        
        return AnyPromise(promise)
    }
    
    @objc
    func responseProducts(withBlock block: @escaping ([Product], Error?) -> Void) {
        self.responseProducts(handler: { (response) in
            switch response {
            case .error(let error):
                block([], error)
            case .response(let rawres):
                block(rawres.objects, nil)
            }
        })
    }
    
    
}

    
    @objc(responseJSON)
    func responseJSONPromise() -> AnyPromise {
        let promise = Promise<Any> { fullfill, reject in
            self.responseJSON(handler: { (json, error) in
                if error != nil {
                    reject(error!)
                } else {
                    if json.arrayObject == nil || json.dictionaryObject == nil {
                        reject(createError("JSON is nil for [\(json.rawString() ?? "")]"))
                    } else {
                        if json.dictionaryObject != nil { fullfill(json.dictionaryObject!) }
                        else if json.arrayObject != nil { fullfill(json.arrayObject!) }
                        else { fatalError("JSON Error") }
                    }
                }
            })
