diff --git a/loader/include/Geode/loader/Dispatch.hpp b/loader/include/Geode/loader/Dispatch.hpp
index 2f1996f7..c1edc075 100644
--- a/loader/include/Geode/loader/Dispatch.hpp
+++ b/loader/include/Geode/loader/Dispatch.hpp
@@ -42,7 +42,7 @@ namespace geode {
         using Ev = DispatchEvent<Args...>;
         using Callback = ListenerResult(Args...);
 
-        EventListenerPool* getPool() const override {
+        EventListenerPool* getPool() const {
             if (pools().count(m_id) == 0) {
                 pools()[m_id] = new DefaultEventListenerPool();
             }
diff --git a/loader/test/dependency/main.cpp b/loader/test/dependency/main.cpp
index b2a4cf81..34cccb33 100644
--- a/loader/test/dependency/main.cpp
+++ b/loader/test/dependency/main.cpp
@@ -1,9 +1,9 @@
 #include <Geode/Loader.hpp>
 #include <Geode/modify/MenuLayer.hpp>
 #include <Geode/loader/SettingNode.hpp>
+#include <Geode/loader/Dispatch.hpp>
 #include <Geode/loader/ModJsonTest.hpp>
-#include <Geode/binding/CCMenuItemSpriteExtra.hpp>
-#include <Geode/binding/FLAlertLayer.hpp>
+#include <Geode/Bindings.hpp>
 #include "main.hpp"
 
 using namespace geode::prelude;
@@ -164,11 +164,12 @@ struct MyMenuLayer : Modify<MyMenuLayer, MenuLayer> {
 $on_mod(Loaded) {
     Mod::get()->addCustomSetting<MySettingValue>("overcast-skies", DEFAULT_ICON);
 
-    // Dispatcher::get()->addFunction<void(GJGarageLayer*)>("test-garage-open", [](GJGarageLayer*
-    // gl) { 	auto label = CCLabelBMFont::create("Dispatcher works!", "bigFont.fnt");
-    // 	label->setPosition(100, 80);
-    // 	label->setScale(.4f);
-    // 	label->setZOrder(99999);
-    // 	gl->addChild(label);
-    // });
-}
+    (void)new EventListener(+[](GJGarageLayer* gl) {
+        auto label = CCLabelBMFont::create("Dispatcher works!", "bigFont.fnt");
+    	label->setPosition(100, 80);
+    	label->setScale(.4f);
+    	label->setZOrder(99999);
+    	gl->addChild(label);
+        return ListenerResult::Propagate;
+    }, MyDispatchFilter("geode.testdep/test-garage-open"));
+}
\ No newline at end of file
diff --git a/loader/test/dependency/main.hpp b/loader/test/dependency/main.hpp
index 063281d8..abf4f610 100644
--- a/loader/test/dependency/main.hpp
+++ b/loader/test/dependency/main.hpp
@@ -1,6 +1,8 @@
 #pragma once
 
 #include <Geode/loader/Event.hpp>
+#include <Geode/loader/Dispatch.hpp>
+#include <Geode/binding/GJGarageLayer.hpp>
 
 using namespace geode::prelude;
 
@@ -31,3 +33,6 @@ public:
     TestEventFilter();
     TestEventFilter(TestEventFilter const&) = default;
 };
+
+using MyDispatchEvent = geode::DispatchEvent<GJGarageLayer*>;
+using MyDispatchFilter = geode::DispatchFilter<GJGarageLayer*>;
\ No newline at end of file
diff --git a/loader/test/main/main.cpp b/loader/test/main/main.cpp
index 11da052a..07f8fdc3 100644
--- a/loader/test/main/main.cpp
+++ b/loader/test/main/main.cpp
@@ -12,18 +12,9 @@ auto test = []() {
 };
 
 // Exported functions
-$on_mod(Enabled) {
-    log::info("Enabled");
-}
-$on_mod(Disabled) {
-    log::info("Disabled");
-}
 $on_mod(Loaded) {
     log::info("Loaded");
 }
-$on_mod(Unloaded) {
-    log::info("Unloaded");
-}
 
 // Events
 $execute {
@@ -108,37 +99,8 @@ struct GJGarageLayerTest : Modify<GJGarageLayerTest, GJGarageLayer> {
         addChild(label2);
 
         // Dispatch system pt. 1
-        // auto fn = Dispatcher::get()->getFunction<void(GJGarageLayer*)>("test-garage-open");
-        // fn(this);
+        MyDispatchEvent("test-garage-open"_spr, this).post();
 
         return true;
     }
 };
-
-/*// Event system pt. 2
-int a = (0, []() {
-
-        Dispatcher::get()->addSelector("test-garage-open", [](GJGarageLayer* gl) {
-                auto label = CCLabelBMFont::create("EventCenter works!", "bigFont.fnt");
-                label->setPosition(100, 80);
-                label->setScale(.4f);
-                label->setZOrder(99999);
-                gl->addChild(label);
-
-                TestDependency::depTest(gl);
-        });
-
-// Event system pt. 2
-// $observe("test-garage-open", GJGarageLayer*, evt) {
-// 	auto gl = evt.object();
-// 	auto label = CCLabelBMFont::create("EventCenter works!", "bigFont.fnt");
-// 	label->setPosition(100, 80);
-// 	label->setScale(.4f);
-// 	label->setZOrder(99999);
-// 	gl->addChild(label);
-
-// 	// API pt. 2
-// 	TestDependency::depTest(gl);
-// }
-        return 0;
-}());*/
diff --git a/loader/test/main/mod.json b/loader/test/main/mod.json
index bd70ec2f..dae1c37e 100644
--- a/loader/test/main/mod.json
+++ b/loader/test/main/mod.json
@@ -10,7 +10,7 @@
         {
             "id": "geode.testdep",
             "version": ">=1.0.0",
-            "required": true
+            "importance": "required"
         }
     ]
 }
diff --git a/loader/test/shared.hpp b/loader/test/shared.hpp
deleted file mode 100644
index d14b5eb7..00000000
--- a/loader/test/shared.hpp
+++ /dev/null
@@ -1,10 +0,0 @@
-#define EXPORT_NAME TestDependency
-#include <Geode/Loader.hpp>
-
-API_INIT("com.geode.testdep")
-
-class TestDependency {
-public:
-	static void depTest(GJGarageLayer* gl);
-		// API_DECL(&TestDependency::depTest, gl);
-};