         return nil
     }
     
-    class func parse<T:JSONParsable>(JSONData: NSData?) -> T? {
+    public class func parse<T:JSONParsable>(JSONData: NSData?) -> T? {
         if let data = JSONData {
             if let result: [String: AnyObject] = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil) as? [String: AnyObject] {
                 return (T.self as T.Type)(JSON: NKJSON(dictionary: result))

        return nil
    }
    
    class func parse<T:JSONParsable>(JSONData: NSData?) -> [T]? {
        if let data = JSONData {
            if let result: [AnyObject] = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil) as? [AnyObject] {
                var allObjects: [T] = []

        return nil
    }
    
    public class func parse<T:JSONParsable>(JSONData: NSData?, key: String) -> [T]? {
        if let data = JSONData {
            if let result: [String: AnyObject] = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil) as? [String: AnyObject] {
                let JSON: NKJSON = NKJSON(dictionary: result)
