     
     func genericRequest(
         withEndpoint endpoint: EndpointSnapshot) -> Observable<AnyObject> {
-        return Observable.create { observer in
+        return Observable.create { [unowned self] observer in
             do {
                 let request = self.networkManager.request(try self.compositeRequest(withEndpoint: endpoint))
                     .validate(withValidation: endpoint.validation)

        let urlEncodedInBodyParameters = endpoint.getURLEncodedInBodyParameters()
        let jsonEncodedInBodyParameters = endpoint.getJSONEncodedInBodyParameters()
        
        ParameterEncoding.URLEncodedInURL.encode(compositeRequest, parameters: urlEncodedInUrlParameters)
        
        guard let urlEncodedRequestCopy = compositeRequest.mutableCopy() as? NSMutableURLRequest else {
            throw NetworkClientError.Unknown

            throw NetworkClientError.Unknown
        }
        
        var compositeRequest = NSMutableURLRequest(URL: URL)
        compositeRequest.HTTPMethod = endpoint.method.rawValue
        
        if let headers = endpoint.headers {
