diff --git a/python_payload/apps/audio_passthrough/__init__.py b/python_payload/apps/audio_passthrough/__init__.py
index 56036120c07bf354ff111681c8aa0e6d9130a3f0..8408b02ccded951905e6dbc17a0a0d9838ca3b54 100644
--- a/python_payload/apps/audio_passthrough/__init__.py
+++ b/python_payload/apps/audio_passthrough/__init__.py
@@ -27,6 +27,7 @@ class AudioPassthrough(Application):
         self._force_mode: str = "AUTO"
 
     def on_enter(self, vm: Optional[ViewManager]) -> None:
+        super().on_enter(vm)
         self._force_mode = "AUTO"
 
     def draw(self, ctx: Context) -> None:
@@ -96,6 +97,7 @@ class AudioPassthrough(Application):
         ctx.text("force line in/out")
 
     def on_exit(self) -> None:
+        super().on_exit()
         # Mic passthrough has a loopback risk
         if self._force_mode == "FORCE_MIC":
             self._force_mode = "FORCE_NONE"
diff --git a/python_payload/apps/gay_drums/__init__.py b/python_payload/apps/gay_drums/__init__.py
index fadc8affa37062346f3386e6c2fd03f8820697a8..b738ffe993c90b0ec690489e0f4eaacb4e0819e1 100644
--- a/python_payload/apps/gay_drums/__init__.py
+++ b/python_payload/apps/gay_drums/__init__.py
@@ -562,5 +562,6 @@ class GayDrums(Application):
         self.ct_prev = ct
 
     def on_enter(self, vm: Optional[ViewManager]) -> None:
+        super().on_enter(vm)
         self.ct_prev = None
         self.draw_background_counter = 2
diff --git a/python_payload/apps/harmonic_demo/__init__.py b/python_payload/apps/harmonic_demo/__init__.py
index 8a0ca7cf1716db5413458764c1194bcde8403c22..254d20f184d5513969eb2282574c1bb055bb1b67 100644
--- a/python_payload/apps/harmonic_demo/__init__.py
+++ b/python_payload/apps/harmonic_demo/__init__.py
@@ -5,6 +5,8 @@ import leds
 
 from st3m.goose import List
 from st3m.input import InputState
+from st3m.goose import Optional
+from st3m.ui.view import ViewManager
 from ctx import Context
 import cmath
 import math
@@ -129,7 +131,7 @@ class HarmonicApp(Application):
         self.cp_prev = cp
 
     def on_enter(self, vm: Optional[ViewManager]) -> None:
-        # super().on_enter(vm) idk not using it in shoegaze, works fine?
+        super().on_enter(vm)
         if self.blm is None:
             self._build_synth()
         self.blm.foreground = True
diff --git a/python_payload/apps/melodic_demo/__init__.py b/python_payload/apps/melodic_demo/__init__.py
index 0bef5fea19db9da3f39f552064f35cf222a50675..45a7ab6698c4859842276b5a2feec55da428e19d 100644
--- a/python_payload/apps/melodic_demo/__init__.py
+++ b/python_payload/apps/melodic_demo/__init__.py
@@ -124,13 +124,14 @@ class MelodicApp(Application):
         leds.update()
 
     def on_enter(self, vm: Optional[ViewManager]) -> None:
-        # super().on_enter(vm) idk not using it in shoegaze, works fine?
+        super().on_enter(vm)
         if self.blm is None:
             self._build_synth()
         self.blm.foreground = True
         self.make_scale()
 
     def on_exit(self):
+        super().on_exit()
         if self.blm is not None:
             self.blm.free = True
         self.blm = None
diff --git a/python_payload/apps/nick/__init__.py b/python_payload/apps/nick/__init__.py
index 74423757870c08de13e034f77547bfad2a537971..43bd2a4ff659215fbaaf5c39a0265ce2396fea04 100644
--- a/python_payload/apps/nick/__init__.py
+++ b/python_payload/apps/nick/__init__.py
@@ -163,6 +163,7 @@ class NickApp(Application):
         # ctx.fill()
 
     def on_exit(self) -> None:
+        super().on_exit()
         if not self._config.config_errors:
             self._config.save(self._filename)
 
diff --git a/python_payload/apps/otamatone/__init__.py b/python_payload/apps/otamatone/__init__.py
index 10a1ee803f12266b148a6aa9be2d39150ef08ea9..ee988ea8737ab651eb3c011a2562eea12eeac285 100644
--- a/python_payload/apps/otamatone/__init__.py
+++ b/python_payload/apps/otamatone/__init__.py
@@ -116,6 +116,7 @@ class Otamatone(Application):
         self._lp.signals.freq = 4000
 
     def on_exit(self):
+        super().on_exit()
         if self._blm is not None:
             self._blm.free = True
         self._blm = None
diff --git a/python_payload/apps/shoegaze/__init__.py b/python_payload/apps/shoegaze/__init__.py
index 224f075823265362d5a0725ffef63f8bfb71a71f..a0cb9b4fd77d9f3c4f42276a15a211914ae49948 100644
--- a/python_payload/apps/shoegaze/__init__.py
+++ b/python_payload/apps/shoegaze/__init__.py
@@ -231,12 +231,14 @@ class ShoegazeApp(Application):
             self.bass_string.signals.trigger.start()
 
     def on_enter(self, vm: Optional[ViewManager]) -> None:
+        super().on_enter(vm)
         if self.blm is None:
             self._build_synth()
         if self.blm is not None:  # silly mypy
             self.blm.foreground = True
 
     def on_exit(self) -> None:
+        super().on_exit()
         if self.blm is not None:
             self.blm.free = True  # yeeting the channel in the backend
         self.blm = None
diff --git a/python_payload/apps/tiny_sampler/__init__.py b/python_payload/apps/tiny_sampler/__init__.py
index 40031e0d89e10c3c4a150ef8c3cd97839aaa0a99..1501275700825067228629b8f8d8981777ee3a9c 100644
--- a/python_payload/apps/tiny_sampler/__init__.py
+++ b/python_payload/apps/tiny_sampler/__init__.py
@@ -90,6 +90,7 @@ class TinySampler(Application):
         self.ct_prev = ct
 
     def on_exit(self) -> None:
+        super().on_exit()
         for i in range(5):
             if self.is_recording[i]:
                 self.samplers[i].signals.rec_trigger.stop()
diff --git a/python_payload/apps/w1f1/__init__.py b/python_payload/apps/w1f1/__init__.py
index 607236843f28a6cefc011be3fa8854b2096c6318..fe4c4de87af4ea0cafe61b34b7b40154f84cc19e 100644
--- a/python_payload/apps/w1f1/__init__.py
+++ b/python_payload/apps/w1f1/__init__.py
@@ -129,6 +129,7 @@ class WifiApp(Application):
         leds.set_rgb((direction * 4) + 1, r, g, b)
 
     def on_exit(self) -> None:
+        super().on_exit()
         leds.set_all_rgb(0, 0, 0)
         leds.update()
 
diff --git a/python_payload/apps/wurzelitzer/__init__.py b/python_payload/apps/wurzelitzer/__init__.py
index cd0b10043d79094ad939b0d2a0c42112ff300ec5..7b6ac5299b3e3ea845b64341827c0538581d8a9c 100644
--- a/python_payload/apps/wurzelitzer/__init__.py
+++ b/python_payload/apps/wurzelitzer/__init__.py
@@ -55,6 +55,7 @@ class JukeBox(Application):
         self.load_stream()
 
     def on_exit(self):
+        super().on_exit()
         media.stop()