diff --git a/briar-gtk/briar_gtk/conversation/conversation_presenter.py b/briar-gtk/briar_gtk/conversation/conversation_presenter.py
index 9e40afb349a37071db70fedd0fe93302e3fb8503..3c9064ade29b74aa66444cd137b412c1a89d85ab 100644
--- a/briar-gtk/briar_gtk/conversation/conversation_presenter.py
+++ b/briar-gtk/briar_gtk/conversation/conversation_presenter.py
@@ -3,9 +3,9 @@
 # License-Filename: LICENSE.md
 
 from briar_gtk.handlers.notification import NotificationHandler
-from briar_gtk.presenters.private_chat import PrivateChatPresenter
+from briar_gtk.private_chat.private_chat_presenter import PrivateChatPresenter
 from briar_gtk.define import APP
-from briar_gtk.views.private_chat import PrivateChatView
+from briar_gtk.private_chat.private_chat_view import PrivateChatView
 from briar_gtk.conversation_sidebar.conversation_sidebar_view import SidebarView
 from briar_gtk.conversation.about_dialog import AboutDialogWidget
 
diff --git a/briar-gtk/briar_gtk/presenters/__init__.py b/briar-gtk/briar_gtk/presenters/__init__.py
deleted file mode 100644
index 5ad73fc0e34f26d139aa27a789b5780cfe052b6e..0000000000000000000000000000000000000000
--- a/briar-gtk/briar_gtk/presenters/__init__.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Copyright (c) 2020 Nico Alt
-# SPDX-License-Identifier: AGPL-3.0-only
-# License-Filename: LICENSE.md
-"""
-Presenters (of MVP pattern) reacting to user input and model/data updates
-in Briar GTK
-"""
diff --git a/briar-gtk/briar_gtk/widgets/__init__.py b/briar-gtk/briar_gtk/private_chat/__init__.py
similarity index 53%
rename from briar-gtk/briar_gtk/widgets/__init__.py
rename to briar-gtk/briar_gtk/private_chat/__init__.py
index a328738e35f055fa5994c625310fdc3e1ff5e423..12e6a7c8e14cb7379330484bfa4030b20c246ecd 100644
--- a/briar-gtk/briar_gtk/widgets/__init__.py
+++ b/briar-gtk/briar_gtk/private_chat/__init__.py
@@ -1,6 +1,6 @@
-# Copyright (c) 2020 Nico Alt
+# Copyright (c) 2021 Nico Alt
 # SPDX-License-Identifier: AGPL-3.0-only
 # License-Filename: LICENSE.md
 """
-Widgets (small UI chunks) in Briar GTK
+Private chat in Briar GTK
 """
diff --git a/briar-gtk/briar_gtk/widgets/edit_dialog.py b/briar-gtk/briar_gtk/private_chat/edit_dialog.py
similarity index 96%
rename from briar-gtk/briar_gtk/widgets/edit_dialog.py
rename to briar-gtk/briar_gtk/private_chat/edit_dialog.py
index 622c2739577d3dd3be3c39e0db1eaf1a6eb029e6..759fb74a9525cc9de71931be8192209b39509ccb 100644
--- a/briar-gtk/briar_gtk/widgets/edit_dialog.py
+++ b/briar-gtk/briar_gtk/private_chat/edit_dialog.py
@@ -6,7 +6,7 @@ from gettext import gettext as _
 from gi.repository import Gtk
 
 
-class EditDialog(Gtk.Dialog):
+class EditDialogWidget(Gtk.Dialog):
 
     def __init__(self, parent: "Gtk.Window", flags: "Gtk.DialogFlags",
                  placeholder: str, text: str = ""):
diff --git a/briar-gtk/briar_gtk/presenters/private_chat.py b/briar-gtk/briar_gtk/private_chat/private_chat_presenter.py
similarity index 98%
rename from briar-gtk/briar_gtk/presenters/private_chat.py
rename to briar-gtk/briar_gtk/private_chat/private_chat_presenter.py
index 4235fe679b41c24ec17bcb6703e01851ffb4b49e..16b056f7373f4c98cb980abcd3880e09be1258ec 100644
--- a/briar-gtk/briar_gtk/presenters/private_chat.py
+++ b/briar-gtk/briar_gtk/private_chat/private_chat_presenter.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Nico Alt
+# Copyright (c) 2020-2021 Nico Alt
 # SPDX-License-Identifier: AGPL-3.0-only
 # License-Filename: LICENSE.md
 
@@ -11,7 +11,7 @@ from briar_wrapper.models.contacts import Contacts
 from briar_wrapper.models.private_chat import PrivateChat
 
 from briar_gtk.define import APP
-from briar_gtk.widgets.edit_dialog import EditDialog
+from briar_gtk.private_chat.edit_dialog import EditDialogWidget
 
 
 # pylint: disable=too-many-arguments
@@ -32,7 +32,7 @@ class PrivateChatPresenter:
         if self._view.contact_id == 0:
             raise Exception("Can't change contact alias with ID 0")
 
-        confirmation_dialog = EditDialog(
+        confirmation_dialog = EditDialogWidget(
             parent=APP().window,
             flags=Gtk.DialogFlags.MODAL,
             placeholder=self._get_contact_name(self._view.contact_id)
diff --git a/briar-gtk/briar_gtk/views/private_chat.py b/briar-gtk/briar_gtk/private_chat/private_chat_view.py
similarity index 96%
rename from briar-gtk/briar_gtk/views/private_chat.py
rename to briar-gtk/briar_gtk/private_chat/private_chat_view.py
index fe5b3887ab99d56199055ea128af1e782e6aab86..ed0988ec1e195848b2433bc46fb41968e62e0045 100644
--- a/briar-gtk/briar_gtk/views/private_chat.py
+++ b/briar-gtk/briar_gtk/private_chat/private_chat_view.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019-2020 Nico Alt
+# Copyright (c) 2019-2021 Nico Alt
 # SPDX-License-Identifier: AGPL-3.0-only
 # License-Filename: LICENSE.md
 #
@@ -11,8 +11,8 @@ from gi.repository import GLib, Gtk, Handy
 from briar_wrapper.models.private_chat import PrivateChat
 
 from briar_gtk.define import APP, RESOURCES_DIR
-from briar_gtk.presenters.private_chat import PrivateChatPresenter
-from briar_gtk.widgets.private_message import PrivateMessageWidget
+from briar_gtk.private_chat.private_chat_presenter import PrivateChatPresenter
+from briar_gtk.private_chat.private_message import PrivateMessageWidget
 
 
 # pylint: disable=too-many-instance-attributes
diff --git a/briar-gtk/briar_gtk/widgets/private_message.py b/briar-gtk/briar_gtk/private_chat/private_message.py
similarity index 100%
rename from briar-gtk/briar_gtk/widgets/private_message.py
rename to briar-gtk/briar_gtk/private_chat/private_message.py
diff --git a/briar-gtk/briar_gtk/views/__init__.py b/briar-gtk/briar_gtk/views/__init__.py
deleted file mode 100644
index 485f7986d98fba951c47481b0fdffcde81a3a373..0000000000000000000000000000000000000000
--- a/briar-gtk/briar_gtk/views/__init__.py
+++ /dev/null
@@ -1,6 +0,0 @@
-# Copyright (c) 2020 Nico Alt
-# SPDX-License-Identifier: AGPL-3.0-only
-# License-Filename: LICENSE.md
-"""
-Views (of MVP pattern) displaying data in Briar GTK
-"""