# mitigate heap fragmentation issues by pre-loading major libraries
 import gc
 gc.collect()
-gc.collect()
 import unittest
 gc.collect()
 
         return None
 
 def await_true(name, fun, interval=0, patience=60):
-    from adafruit_blinka.agnostic import sleep
-    from utime import ticks_ms, ticks_add, ticks_diff
+    from adafruit_blinka.agnostic.time import sleep, monotonic
     print("Waiting {} sec until {} (CTRL+C give up)".format(patience, name))
-    deadline = ticks_add(ticks_ms(), int(patience * 1000))
+
+    deadline =  monotonic() + patience
     try:
-        while ticks_diff(deadline, ticks_ms()) > 0:
+        while deadline - monotonic() > 0:
             if fun():
                 return True
             else:
 
 def main():
     """
-    moduleNames = ["testing.implementation.all.digitalio",]
+    moduleNames = ["testing.implementation.universal.digitalio",]
     if agnostic.implementation == "micropython":
         moduleNames.extend([ "testing.implementation.micropython.digitalio",])
 
     """
-    moduleNames = ["testing.implementation.all.bitbangio"]
+    moduleNames = ["testing.implementation.universal.bitbangio"]
 
     unittest.raiseException = True # terminates with stack information on userspace Exception
     unittest.raiseBaseException = True # terminates with stack information on system Exception