         allowedUpdates.append(type)
       }
     }
+		
+		started = true
+		updateQueue!.queueNext()
   }
 	
   /// Perform correct droplet configuration here.
   public func boot(_ drop: Droplet) {
-		
-		self.drop = drop
-		//self.client = try! self.drop.client.makeClient(hostname: "api.telegram.org", port: 80, securityLayer: .none)
-		
-		started = true
-		updateQueue!.queueNext()
+
+		self.client = try! self.drop.client.makeClient(hostname: "api.telegram.org", port: 443, securityLayer: .tls(EngineClient.defaultTLSContext()), proxy: drop.client.defaultProxy)
 	}
 
 	

  }
	
	
  public func afterInit(_ drop: Droplet) { }
	
	
  public func beforeRun(_ drop: Droplet) {
    if ignoreInitialUpdates == true {
      //_ = self.getUpdateSets()
    }

		
		if cycleDebug == true { print("contacting telegram...") }
		
		// Vapor Fetching
		//guard let response = try? drop.client.get("/bot" + apiKey + "/getUpdates", query: query, [:], nil, through: []) else {
		guard let response = try? client!.get("/bot" + apiKey +  "/getUpdates", query: query, [:], nil, through: []) else {
			drop.console.error(TGReqError.NoResponse.rawValue, newLine: true)
			return
		}

		print(response.body.bytes!.makeString())

		let updateResult = self.filterUpdateResponse(response: response.json!)
		if updateResult != nil {
			updates = updateResult!
			self.filterUpdates(updates: updates)
		}
		
		self.updateQueue!.queueNext()
		
//		// Until Vapor can perform the very basic concept of making repeated client requests without hanging, this is being used.
//		var request = URLRequest(url: URL(string: apiURL + "/getUpdates" + "?offset=\(offset)")!)
//		request.httpMethod = "GET"
//		request.httpShouldHandleCookies = false
//		let session = URLSession.shared
//
//		// Build the task
//		session.dataTask(with: request) { data, response, error in
//
//			if error != nil {
//				self.updateQueue!.queueNext()
//				return
//			}
//			
//			else {
//				let json = try! JSON.init(bytes: data!.makeBytes())
//				//print(json)
//
//				let updateResult = self.filterUpdateResponse(response: json)
//				if updateResult != nil {
//					updates = updateResult!
//					self.filterUpdates(updates: updates)
//					self.updateQueue!.queueNext()
//				}
//			}
//
//		}.resume()
	}
	
	public func filterUpdateResponse(response: JSON) -> [Update]? {
