                 _swiftyJson = SwiftyJSON.JSON(_data!)
             }
             callback(json: _swiftyJson)
-            return
-        }
-        return self
+        }
+        return self
+    }
+
+    var _internalCallbackComplete : ((models: [T]) -> Void)?
+    internal func internalComplete(callback: ((models: [T]) -> Void)) {
+        _internalCallbackComplete = callback
     }
     
     public func complete(callback: ((models: [T]) -> Void)) -> Self {
-        completeJSON { [weak self] (json: SwiftyJSON.JSON) in
+        var internalCallbackComplete = _internalCallbackComplete
+        completeJSON { (json: SwiftyJSON.JSON) in
             var models = InstagramerModelCreate<T>.create(json)
+            if let valid = internalCallbackComplete {
+                    valid(models: models)
+            }
             callback(models: models)
-            return
-        }
+        }
+        
         return self
     }
 

        _clientId = clientId
    }
    
    public func accessParams() -> [String: AnyObject] {
        if let accessToken = _accessToken {
            return ["access_token": accessToken]
        } else {

    }
    
    override public var description: String {
        var str = "\(_created_time),\(_id),\(_link)"
        return str
    }

}

public class InstagramerModel: NSObject {
    
}

public class InstagramerModelCreate<T: InstagramerModel> {
    
    public class func create(json: JSON) -> [T] {
        var models = [T]()
        NSLog(json.debugDescription)
        for (index: String, subJson: JSON) in json["data"] {
//            NSLog(subJson.debugDescription)
            let type = subJson["type"].string
