         { self.url = NSURL(string: stringURL) }
     }
     
+    
+    /**
+    Check if network can be reached
+    
+    :returns: Bool true if network is available
+    */
     func connected() -> Bool { return Reachability.isConnectedToNetwork() }
     
+    
+    /**
+    Set a user-agent of the request
+    
+    :param: agent-> the new user-agent
+    
+    :returns: Void
+    */
     func changeUserAgent(agent : String) -> Void { self.agent = agent }
     
     private func setNetworkActivityIndicatorVisible(visibility setVisible : Bool) -> Void {

    }
    
    
    internal func connection(connection: NSURLConnection, didFailWithError error: NSError) {
                        self.completionDownloading!(data: nil, totalLengthDownloading: 0, currentLengthDownloaded: 0, error: true);
    }
    
    internal func connection(connection: NSURLConnection, didReceiveResponse response: NSURLResponse) {
        self.totalLengthDownloading = response.expectedContentLength
        self.currentLengthDownloaded = 0
        self.totalDataDownloading = NSMutableData()
    }
    
    internal func connection(connection: NSURLConnection, didReceiveData data: NSData) {
        self.totalDataDownloading.appendData(data)
        self.currentLengthDownloaded += data.length
        self.completionDownloading!(data: data, totalLengthDownloading: self.totalLengthDownloading, currentLengthDownloaded: self.currentLengthDownloaded, error: false)
    }
    
    

            }
            
        }
        
        jsonReturn = jsonReturn == nil ? NSMutableDictionary() : jsonReturn
        self.setNetworkActivityIndicatorVisible(visibility: false)
        jsonReturn.setObject(mymetype != nil ? mymetype! : "", forKey: KeyResult.MIME_TYPE.rawValue)
        jsonReturn.setObject(urlResponse != nil ? urlResponse! : "", forKey: KeyResult.URL.rawValue)
        jsonReturn.setObject(String(statusCode), forKey: KeyResult.CODE_RESPONSE.rawValue)
        jsonReturn.setObject(errors == nil ? "" : errors!.localizedDescription , forKey: KeyResult.CONNECTION_ERROR.rawValue)
        return jsonReturn
    }
    
    
    /**
    the function will immediately lanuch in a therad request. Response will be
    send to the main thread
    
    :param: request-> (NSURLRequest)
    
    :param: completion-> ((NSDictionary?)-> Void))
    
    :returns: Void
    */
    func launchRequestWithNSURL(request : NSURLRequest,
        completion : ((NSDictionary?)-> Void)) -> Void {
            
