     requestParameters: RequestParameters,
     queue: DispatchQueue = DispatchQueue.global(qos: .default),
     responseSerializer: T) -> Observable<(HTTPURLResponse, T.SerializedObject)> {
-
+    
     let requestObservable: Observable<(HTTPURLResponse, T.SerializedObject)>
     
-	if let renewTokenHandler = self.renewTokenHandler {
-		requestObservable = self.sendAutoRetryRequest({ [unowned self] () -> Observable<(HTTPURLResponse, T.SerializedObject)> in
-			
-			guard let request = self.buildRequest(requestParameters: requestParameters) else {
-				return Observable.error(NetworkStackError.requestBuildFail)
-			}
-			
-			return self.sendRequest(alamofireRequest: request, queue: queue, responseSerializer: responseSerializer)
-			}, renewTokenFunction: { () -> Observable<Void> in
-				return renewTokenHandler()
-		})
-	} else {
-		
-		guard let request = self.buildRequest(requestParameters: requestParameters) else {
-			return Observable.error(NetworkStackError.requestBuildFail)
-		}
-		
-		requestObservable = self.sendRequest(alamofireRequest: request, queue: queue, responseSerializer: responseSerializer)
-	}
-	
+    if let renewTokenHandler = self.renewTokenHandler {
+      requestObservable = self.sendAutoRetryRequest({ [unowned self] () -> Observable<(HTTPURLResponse, T.SerializedObject)> in
+        
+        guard let request = self.buildRequest(requestParameters: requestParameters) else {
+          return Observable.error(NetworkStackError.requestBuildFail)
+        }
+        
+        return self.sendRequest(alamofireRequest: request, queue: queue, responseSerializer: responseSerializer)
+        }, renewTokenFunction: { () -> Observable<Void> in
+          return renewTokenHandler()
+      })
+    } else {
+      
+      guard let request = self.buildRequest(requestParameters: requestParameters) else {
+        return Observable.error(NetworkStackError.requestBuildFail)
+      }
+      
+      requestObservable = self.sendRequest(alamofireRequest: request, queue: queue, responseSerializer: responseSerializer)
+    }
+    
     return requestObservable
-    .do(onError: { [unowned self] error in
-      self.askCredentialsIfNeeded(forError: error)
-      .subscribe()
-      .addDisposableTo(self.disposeBag)
-    })
+      .do(onError: { [unowned self] error in
+        self.askCredentialsIfNeeded(forError: error)
+          .subscribe()
+          .addDisposableTo(self.disposeBag)
+      })
   }
 }
 

        return Disposables.create {
          alamofireRequest.cancel()
        }
      }
      .subscribeOn(ConcurrentDispatchQueueScheduler(queue: queue))
  }
  
  fileprivate func sendRequest<T: DataResponseSerializerProtocol>(requestParameters: RequestParameters,
                               queue: DispatchQueue = DispatchQueue.global(qos: .default),
                               responseSerializer: T) -> Observable<(HTTPURLResponse, T.SerializedObject)> {
    if requestParameters.needsAuthorization {
		return self.sendAuthenticatedRequest(requestParameters: requestParameters, queue: queue, responseSerializer: responseSerializer)
    } else {
		guard let request = self.buildRequest(requestParameters: requestParameters) else {
			return Observable.error(NetworkStackError.requestBuildFail)
		}
		
      return self.sendRequest(alamofireRequest: request, queue: queue, responseSerializer: responseSerializer)
    }
  }

  // MARK: - Setup
  
  public init(baseURL: String,
              keychainService: KeychainService,
              requestManager: Alamofire.SessionManager = Alamofire.SessionManager(),
              uploadManager: SessionManager? = nil,
              askCredentialHandler: AskCredentialHandler? = nil) {
    
    self.baseURL = baseURL
    self.keychainService = keychainService
