 				
 				if statusCode < 200 || statusCode >= 300
 				{
-					completion(false, nil, HttpStatusCode(code: statusCode))
+					completionMain(false, nil, HttpStatusCode(code: statusCode))
 				}
 				else
 				{

						
						if let responseDict = parsedResponse as? [String: Any], let errorCode = responseDict["error"] as? Int
						{
							completion(false, responseDict, ServerError(code: errorCode, userInfo: responseDict))
						}
						else
						{
							completion(true, parsedResponse, nil)
						}
					}
					catch (_)
					{
						completion(false, nil, ClientError.parseError)
						return
					}
				}
			}
			else
			{
				completion(false, nil, ClientError.noResponse)
			}
		}
		

			return
		}
		
		let completionMain: (Bool, Any?, Error?)->() =
		{
			(success, response, error) in
			
			DispatchQueue.main.async
			{
				completion(success, response, error)
			}
		}
		
		let task = URLSession.shared.dataTask(with: request)
		{
			(data, response, error) in
			
			if let error = error
			{
				completionMain(false, nil, error)
			}
			else if let httpResponse = response as? HTTPURLResponse, let data = data
			{
