diff --git a/yotta/data/example-authcrypt/main.cpp b/yotta/data/example-authcrypt/main.cpp
index c64cdb4..2377510 100644
--- a/yotta/data/example-authcrypt/main.cpp
+++ b/yotta/data/example-authcrypt/main.cpp
@@ -173,8 +173,9 @@
 #if defined(TARGET_LIKE_MBED)
 
 #include "mbed/test_env.h"
+#include "minar/minar.h"
 
-int main() {
+static void run() {
     /* Use 115200 bps for consistency with other examples */
     Serial pc(USBTX, USBRX);
     pc.baud(115200);
@@ -186,6 +187,10 @@
     MBED_HOSTTEST_RESULT(example() == 0);
 }
 
+void app_start(int, char*[]) {
+    minar::Scheduler::postCallback(FunctionPointer0<void>(run).bind());
+}
+
 #else
 
 int main() {
diff --git a/yotta/data/example-benchmark/main.cpp b/yotta/data/example-benchmark/main.cpp
index be2148a..23c87b6 100644
--- a/yotta/data/example-benchmark/main.cpp
+++ b/yotta/data/example-benchmark/main.cpp
@@ -933,8 +933,9 @@
 }
 
 #include "mbed/test_env.h"
+#include "minar/minar.h"
 
-int main() {
+static void run() {
     /* Use 115200 bps for consistency with other examples */
     Serial pc(USBTX, USBRX);
     pc.baud(115200);
@@ -946,4 +947,8 @@
     MBED_HOSTTEST_RESULT(benchmark(0, NULL) == 0);
 }
 
+void app_start(int, char*[]) {
+    minar::Scheduler::postCallback(FunctionPointer0<void>(run).bind());
+}
+
 #endif /* TARGET_LIKE_MBED */
diff --git a/yotta/data/example-hashing/main.cpp b/yotta/data/example-hashing/main.cpp
index f6c1c0a..09681f9 100644
--- a/yotta/data/example-hashing/main.cpp
+++ b/yotta/data/example-hashing/main.cpp
@@ -153,8 +153,9 @@
 #if defined(TARGET_LIKE_MBED)
 
 #include "mbed/test_env.h"
+#include "minar/minar.h"
 
-int main() {
+static void run() {
     /* Use 115200 bps for consistency with other examples */
     Serial pc(USBTX, USBRX);
     pc.baud(115200);
@@ -166,6 +167,10 @@
     MBED_HOSTTEST_RESULT(example() == 0);
 }
 
+void app_start(int, char*[]) {
+    minar::Scheduler::postCallback(FunctionPointer0<void>(run).bind());
+}
+
 #else
 
 int main() {
diff --git a/yotta/data/example-selftest/main.cpp b/yotta/data/example-selftest/main.cpp
index 1eed97f..06ab7e9 100644
--- a/yotta/data/example-selftest/main.cpp
+++ b/yotta/data/example-selftest/main.cpp
@@ -244,8 +244,9 @@
 #if defined(TARGET_LIKE_MBED)
 
 #include "mbed/test_env.h"
+#include "minar/minar.h"
 
-int main() {
+static void run() {
     /* Use 115200 bps for consistency with other examples */
     Serial pc(USBTX, USBRX);
     pc.baud(115200);
@@ -257,6 +258,10 @@
     MBED_HOSTTEST_RESULT(selftest(0, NULL) == 0);
 }
 
+void app_start(int, char*[]) {
+    minar::Scheduler::postCallback(FunctionPointer0<void>(run).bind());
+}
+
 #else
 
 int main() {
diff --git a/yotta/data/example-tls-client/main.cpp b/yotta/data/example-tls-client/main.cpp
index 540d2ea..8a74b9b 100644
--- a/yotta/data/example-tls-client/main.cpp
+++ b/yotta/data/example-tls-client/main.cpp
@@ -48,7 +48,7 @@
 #define UNSAFE 0
 
 #include "mbed.h"
-#include "mbed-net-lwip-eth/EthernetInterface.h"
+#include "sal-iface-eth/EthernetInterface.h"
 #include "mbed-net-sockets/TCPStream.h"
 #include "minar/minar.h"
 
@@ -495,8 +495,9 @@
 }
 
 #include "mbed/test_env.h"
+#include "minar/minar.h"
 
-int main() {
+static void run() {
     /* The default 9600 bps is too slow to print full TLS debug info and could
      * cause the other party to time out. Select a higher baud rate for
      * printf(), regardless of debug level for the sake of uniformity. */
@@ -510,4 +511,8 @@
     MBED_HOSTTEST_RESULT(example_client() == 0);
 }
 
+void app_start(int, char*[]) {
+    minar::Scheduler::postCallback(FunctionPointer0<void>(run).bind());
+}
+
 #endif /* TARGET_LIKE_MBED */
diff --git a/yotta/data/module.json b/yotta/data/module.json
index 7108cca..eeb8f10 100644
--- a/yotta/data/module.json
+++ b/yotta/data/module.json
@@ -8,6 +8,9 @@
         "mbed": { "cmsis-core": "~0.2.3" }
     },
     "testTargetDependencies": {
-        "mbed": { "mbed-net-sockets": "~0.2.0" }
+        "mbed": {
+            "mbed-drivers": "~0.6.3",
+            "sockets": "~0.2.1"
+        }
     }
 }
