diff --git a/ampel-firmware/ampel-firmware.ino b/ampel-firmware/ampel-firmware.ino
index 3f4cc494de1cd684e0ed06b1e735b6f5df686148..07dda7f22550e1acd1fcc5ba17979c7deeb1c4d1 100644
--- a/ampel-firmware/ampel-firmware.ino
+++ b/ampel-firmware/ampel-firmware.ino
@@ -12,7 +12,6 @@
  */
 
 #include "ampel-firmware.h"
-//TODO: Move as many includes into cpp as possible
 
 /*****************************************************************
  * GPL License                                                   *
@@ -96,8 +95,6 @@ void setup() {
   });
 #endif
 
-  void setWifiConnectionFailedCallback(void (*function)());
-
   pinMode(0, INPUT); // Flash button (used for forced calibration)
 
   Serial.println();
@@ -221,7 +218,7 @@ void checkFlashButton() {
 void keepServicesAlive() {
 #ifdef AMPEL_WIFI
   web_config::update();
-  if (WiFi.status() == WL_CONNECTED) {
+  if (wifi::connected()) {
     ntp::update(); // NTP client has its own timer. It will connect to NTP server every 60s.
 #  ifdef AMPEL_MQTT
     mqtt::keepConnection(); // MQTT client has its own timer. It will keep alive every 15s.
diff --git a/ampel-firmware/wifi_util.cpp b/ampel-firmware/wifi_util.cpp
index 8e54eb7a42faf5c6c862ef9b108bc58eec6a7897..5c19f6531c0dd9e5d0f8b64c0219e91830791f83 100644
--- a/ampel-firmware/wifi_util.cpp
+++ b/ampel-firmware/wifi_util.cpp
@@ -27,6 +27,10 @@ namespace config {
 namespace wifi {
   char local_ip[16]; // "255.255.255.255\0"
 
+  bool connected() {
+    return WiFi.status() == WL_CONNECTED;
+  }
+
   void scanNetworks() {
     Serial.println();
     Serial.println(F("WiFi - Scanning..."));
diff --git a/ampel-firmware/wifi_util.h b/ampel-firmware/wifi_util.h
index eec6b89cc6afd1b179ec16f745e3f596f90c2a5b..cfe47bbaadc4a3fcd6fc418be79182c87bdafc1f 100644
--- a/ampel-firmware/wifi_util.h
+++ b/ampel-firmware/wifi_util.h
@@ -4,6 +4,7 @@
 namespace wifi {
   extern char local_ip[16];
   void defineCommands();
+  bool connected();
 }
 
 #endif