diff --git a/sdcard/rootfs/root/pwnagotchi/scripts/main.py b/sdcard/rootfs/root/pwnagotchi/scripts/main.py
index 4f881f3..a593353 100755
--- a/sdcard/rootfs/root/pwnagotchi/scripts/main.py
+++ b/sdcard/rootfs/root/pwnagotchi/scripts/main.py
@@ -29,11 +29,7 @@ args = parser.parse_args()
 config = utils.load_config(args)
 utils.setup_logging(args, config)
 
-plugins.load_from_path(plugins.default_path, enabled=config['main']['plugins'])
-if 'custom_plugins' in config['main'] and config['main']['custom_plugins'] is not None:
-    plugins.load_from_path(config['main']['custom_plugins'], enabled=config['main']['plugins'])
-
-plugins.on('loaded')
+plugins.load(config)
 
 display = Display(config=config, state={'name': '%s>' % pwnagotchi.name()})
 agent = Agent(view=display, config=config)
diff --git a/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/__init__.py b/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/__init__.py
index 89afe10..bb090da 100644
--- a/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/__init__.py
+++ b/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/__init__.py
@@ -40,3 +40,11 @@ def load_from_path(path, enabled=()):
             loaded[name] = plugin
 
     return loaded
+
+
+def load(config):
+    load_from_path(default_path, enabled=config['main']['plugins'])
+    if 'custom_plugins' in config['main'] and config['main']['custom_plugins'] is not None:
+        load_from_path(config['main']['custom_plugins'], enabled=config['main']['plugins'])
+
+    on('loaded')