Code from library at the end of Setup()

I am trying to clean up the content of my sketches, so I started working with my own libraries. Some of them work fine but now I ran into a problem:

This library shall activate OTA-Update for my sketches. The problem is that the code from the library needs to be executed after the WiFi client is online. By default the code from the library is executed before the code in Setup(). How can I change that?

Here the .h of the library:

#ifndef OTAUpdate_h
#define OTAUpdate_h

#include <Arduino.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>

class OTAUpdate {
  public:
    OTAUpdate(int port, const char* ESPHostname);
    void handle();
};

#endif

And here the code of the .cpp

#include <Arduino.h>
#include <OTAUpdate.h>
#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>

OTAUpdate::OTAUpdate(int port, const char* ESPHostname) {
  ArduinoOTA.setPort(port);
  ArduinoOTA.setHostname(ESPHostname);

  ArduinoOTA.begin();
}

void OTAUpdate::handle() {
  ArduinoOTA.handle();
}

And here the test-sketch:

#include <ESP8266WiFi.h>
#include <OTAUpdate.h>
const char* ESPHostname = "esptest";

OTAUpdate OTA(8266, ESPHostname);

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  WiFi.mode(WIFI_STA);
  WiFi.hostname(ESPHostname);
  WiFi.begin();
  while (WiFi.waitForConnectResult() != WL_CONNECTED) {
    delay(5000);
    ESP.restart();
  }
}

void loop() {
  OTA.handle();
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(500);
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(20);
}

Thanks in Advance.
Florian

Can you not create the instance the class at the start of the program without calling any of its functions then call the functions as and when necessary ?