diff --git a/briar-gtk/briar_gtk/controllers/main_window.py b/briar-gtk/briar_gtk/controllers/main_window.py
index fecf40c71e84ee2a53f27071508773eac9686ce5..9a67c227a277fd2423a91bfbe475413897d6a8e4 100644
--- a/briar-gtk/briar_gtk/controllers/main_window.py
+++ b/briar-gtk/briar_gtk/controllers/main_window.py
@@ -2,7 +2,7 @@
 # SPDX-License-Identifier: AGPL-3.0-only
 # License-Filename: LICENSE.md
 
-from briar_gtk.controllers.notification import NotificationController
+from briar_gtk.handlers.notification import NotificationHandler
 from briar_gtk.controllers.private_chat import PrivateChatController
 from briar_gtk.controllers.sidebar import SidebarController
 from briar_gtk.define import APP
@@ -42,12 +42,12 @@ class MainWindowController:
         self._private_chat_controller.open_private_chat(contact_id)
 
     def _setup_children(self):
-        self._setup_notification_controller()
+        self._setup_notification_handler()
         self._setup_sidebar_controller()
         self._setup_private_chat_controller()
 
-    def _setup_notification_controller(self):
-        self._notification_controller = NotificationController()
+    def _setup_notification_handler(self):
+        self._notification_handler = NotificationHandler()
 
     def _setup_sidebar_controller(self):
         sidebar_view = SidebarView(self._builder)
@@ -69,6 +69,6 @@ class MainWindowController:
 
     def _disconnect_signals(self):
         self._sidebar_controller.disconnect_signals()
-        self._notification_controller.disconnect_signals()
+        self._notification_handler.disconnect_signals()
         for signal in self._signals:
             APP().api.socket_listener.disconnect(signal)
diff --git a/briar-gtk/briar_gtk/controllers/private_chat.py b/briar-gtk/briar_gtk/controllers/private_chat.py
index 2f01ed50a98ec5677917a830968a67810b9af585..45bf8f7a40eca26de3a6843d1fe4a3f98f3c0e25 100644
--- a/briar-gtk/briar_gtk/controllers/private_chat.py
+++ b/briar-gtk/briar_gtk/controllers/private_chat.py
@@ -14,7 +14,6 @@ from briar_gtk.widgets.edit_dialog import EditDialog
 
 
 class PrivateChatController:
-
     _current_contact_id = 0
 
     def __init__(self, private_chat_view, sidebar_controller, builder, api):
diff --git a/briar-gtk/briar_gtk/handlers/__init__.py b/briar-gtk/briar_gtk/handlers/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..149bae6061565cff5272eaf7ba11eef24db400b0
--- /dev/null
+++ b/briar-gtk/briar_gtk/handlers/__init__.py
@@ -0,0 +1,6 @@
+# Copyright (c) 2020 Nico Alt
+# SPDX-License-Identifier: AGPL-3.0-only
+# License-Filename: LICENSE.md
+"""
+Similar to controllers, handlers react to input, but they aren't attached to a view
+"""
diff --git a/briar-gtk/briar_gtk/controllers/notification.py b/briar-gtk/briar_gtk/handlers/notification.py
similarity index 98%
rename from briar-gtk/briar_gtk/controllers/notification.py
rename to briar-gtk/briar_gtk/handlers/notification.py
index f169e9034c971a4276ee618388683b4c740f8928..f42e41c69da8a7086da811d752c5f98dd8171af8 100644
--- a/briar-gtk/briar_gtk/controllers/notification.py
+++ b/briar-gtk/briar_gtk/handlers/notification.py
@@ -9,7 +9,7 @@ from briar_gtk.define import APP, NOTIFICATION_CONTACT_ADDED
 from briar_gtk.define import NOTIFICATION_PRIVATE_MESSAGE
 
 
-class NotificationController():
+class NotificationHandler:
 
     def __init__(self):
         self._signals = list()