diff --git a/requirements.txt b/requirements.txt
index 145df061d3a4c6fa1c9cb843d1b39244403a12bf..d1868e55bc17fca9bf03489f5d65044fe2129ec8 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,5 @@
 duniterpy>=0.20.dev0
 git+https://github.com/Insoleet/quamash.git@master
 asynctest
-networkx
\ No newline at end of file
+networkx
+attr
\ No newline at end of file
diff --git a/src/sakia/gui/certification/__init__.py b/src/sakia/gui/dialogs/__init__.py
similarity index 100%
rename from src/sakia/gui/certification/__init__.py
rename to src/sakia/gui/dialogs/__init__.py
diff --git a/src/sakia/gui/graphs/__init__.py b/src/sakia/gui/dialogs/certification/__init__.py
similarity index 100%
rename from src/sakia/gui/graphs/__init__.py
rename to src/sakia/gui/dialogs/certification/__init__.py
diff --git a/src/sakia/gui/certification/certification.ui b/src/sakia/gui/dialogs/certification/certification.ui
similarity index 100%
rename from src/sakia/gui/certification/certification.ui
rename to src/sakia/gui/dialogs/certification/certification.ui
diff --git a/src/sakia/gui/certification/controller.py b/src/sakia/gui/dialogs/certification/controller.py
similarity index 96%
rename from src/sakia/gui/certification/controller.py
rename to src/sakia/gui/dialogs/certification/controller.py
index 94aef99deaa17eff8054ff14acc8af2e23569e4a..b6d8b6ef869c8a2ab709e01113e5c9bf9bd3a278 100644
--- a/src/sakia/gui/certification/controller.py
+++ b/src/sakia/gui/dialogs/certification/controller.py
@@ -1,11 +1,11 @@
-from ..component.controller import ComponentController
+from sakia.gui.component.controller import ComponentController
 from .view import CertificationView
 from .model import CertificationModel
-from ..search_user.controller import SearchUserController
-from ..user_information.controller import UserInformationController
+from sakia.gui.sub.search_user.controller import SearchUserController
+from sakia.gui.sub.user_information.controller import UserInformationController
 from PyQt5.QtWidgets import QApplication
 from PyQt5.QtCore import Qt
-from ...tools.decorators import asyncify, once_at_a_time
+from sakia.tools.decorators import asyncify, once_at_a_time
 import asyncio
 
 
diff --git a/src/sakia/gui/certification/model.py b/src/sakia/gui/dialogs/certification/model.py
similarity index 98%
rename from src/sakia/gui/certification/model.py
rename to src/sakia/gui/dialogs/certification/model.py
index 94ac1aba768990d147f42273dc004a19da2dba23..7442b8271c665dcac600bca3c5486ee9268761ac 100644
--- a/src/sakia/gui/certification/model.py
+++ b/src/sakia/gui/dialogs/certification/model.py
@@ -1,4 +1,4 @@
-from ..component.model import ComponentModel
+from sakia.gui.component.model import ComponentModel
 from duniterpy.api import errors
 from sakia.tools.exceptions import NoPeerAvailable
 
diff --git a/src/sakia/gui/certification/view.py b/src/sakia/gui/dialogs/certification/view.py
similarity index 98%
rename from src/sakia/gui/certification/view.py
rename to src/sakia/gui/dialogs/certification/view.py
index 98df71845f25279536677c2b7295e61a5d31cc25..992f9331d1a17edb046fec99866e3423068bff94 100644
--- a/src/sakia/gui/certification/view.py
+++ b/src/sakia/gui/dialogs/certification/view.py
@@ -1,8 +1,8 @@
 from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QMessageBox
 from PyQt5.QtCore import QT_TRANSLATE_NOOP, pyqtSignal
 from .certification_uic import Ui_CertificationDialog
-from ..widgets import toast
-from ..widgets.dialogs import QAsyncMessageBox
+from sakia.gui.widgets import toast
+from sakia.gui.widgets.dialogs import QAsyncMessageBox
 from enum import Enum
 
 
diff --git a/src/sakia/gui/graphs/base/__init__.py b/src/sakia/gui/dialogs/transfer/__init__.py
similarity index 100%
rename from src/sakia/gui/graphs/base/__init__.py
rename to src/sakia/gui/dialogs/transfer/__init__.py
diff --git a/src/sakia/gui/transfer/controller.py b/src/sakia/gui/dialogs/transfer/controller.py
similarity index 97%
rename from src/sakia/gui/transfer/controller.py
rename to src/sakia/gui/dialogs/transfer/controller.py
index 33fc5660058f454e2589ce4315b58f642c026c65..e9cf85c0594deaf7e43032357dfd03da9bc2fe17 100644
--- a/src/sakia/gui/transfer/controller.py
+++ b/src/sakia/gui/dialogs/transfer/controller.py
@@ -1,6 +1,6 @@
-from ..component.controller import ComponentController
-from ..search_user.controller import SearchUserController
-from ..user_information.controller import UserInformationController
+from sakia.gui.component.controller import ComponentController
+from sakia.gui.sub.search_user.controller import SearchUserController
+from sakia.gui.sub.user_information.controller import UserInformationController
 from .view import TransferView
 from .model import TransferModel
 from sakia.tools.decorators import asyncify
diff --git a/src/sakia/gui/transfer/model.py b/src/sakia/gui/dialogs/transfer/model.py
similarity index 100%
rename from src/sakia/gui/transfer/model.py
rename to src/sakia/gui/dialogs/transfer/model.py
diff --git a/src/sakia/gui/transfer/transfer.py b/src/sakia/gui/dialogs/transfer/transfer.py
similarity index 100%
rename from src/sakia/gui/transfer/transfer.py
rename to src/sakia/gui/dialogs/transfer/transfer.py
diff --git a/src/sakia/gui/transfer/transfer.ui b/src/sakia/gui/dialogs/transfer/transfer.ui
similarity index 100%
rename from src/sakia/gui/transfer/transfer.ui
rename to src/sakia/gui/dialogs/transfer/transfer.ui
diff --git a/src/sakia/gui/transfer/view.py b/src/sakia/gui/dialogs/transfer/view.py
similarity index 98%
rename from src/sakia/gui/transfer/view.py
rename to src/sakia/gui/dialogs/transfer/view.py
index 327731a1d53803d99cbb615f7967bcc1c8893db2..c44be0ea38d88258e3d5fad0c1f57b933bf5b6f2 100644
--- a/src/sakia/gui/transfer/view.py
+++ b/src/sakia/gui/dialogs/transfer/view.py
@@ -3,8 +3,8 @@ from PyQt5.QtGui import QRegExpValidator
 from PyQt5.QtCore import QT_TRANSLATE_NOOP, QRegExp
 from .transfer_uic import Ui_TransferMoneyDialog
 from enum import Enum
-from ..widgets import toast
-from ..widgets.dialogs import QAsyncMessageBox
+from sakia.gui.widgets import toast
+from sakia.gui.widgets.dialogs import QAsyncMessageBox
 
 
 class TransferView(QDialog, Ui_TransferMoneyDialog):
diff --git a/src/sakia/gui/main_window/controller.py b/src/sakia/gui/main_window/controller.py
index b29a7b238683bb2ba4d9c4319ef38fcdb90415e5..e9b250c9d4ae43044940cfd14e53e21626892ae3 100644
--- a/src/sakia/gui/main_window/controller.py
+++ b/src/sakia/gui/main_window/controller.py
@@ -14,13 +14,12 @@ from PyQt5.QtGui import QIcon
 from ..password_asker import PasswordAskerDialog
 from ...__init__ import __version__
 from ..widgets import toast
-from ..component.controller import ComponentController
+from sakia.gui.component.controller import ComponentController
 from .view import MainWindowView
 from .model import MainWindowModel
-from ..status_bar.controller import StatusBarController
-from ..toolbar.controller import ToolbarController
+from .status_bar.controller import StatusBarController
+from .toolbar.controller import ToolbarController
 from ..navigation.controller import NavigationController
-from ..txhistory.controller import TxHistoryController
 
 
 class MainWindowController(ComponentController):
diff --git a/src/sakia/gui/graphs/explorer/__init__.py b/src/sakia/gui/main_window/status_bar/__init__.py
similarity index 100%
rename from src/sakia/gui/graphs/explorer/__init__.py
rename to src/sakia/gui/main_window/status_bar/__init__.py
diff --git a/src/sakia/gui/status_bar/controller.py b/src/sakia/gui/main_window/status_bar/controller.py
similarity index 97%
rename from src/sakia/gui/status_bar/controller.py
rename to src/sakia/gui/main_window/status_bar/controller.py
index 3b38490b12c248f618290aa9b941e9355cc69033..c5351ba493f10447d5b4f555ef3d7d19341fceb8 100644
--- a/src/sakia/gui/status_bar/controller.py
+++ b/src/sakia/gui/main_window/status_bar/controller.py
@@ -1,5 +1,5 @@
 from PyQt5.QtCore import QLocale, pyqtSlot, QDateTime, QTimer
-from ..component.controller import ComponentController
+from sakia.gui.component.controller import ComponentController
 from .model import StatusBarModel
 from .view import StatusBarView
 import logging
diff --git a/src/sakia/gui/status_bar/model.py b/src/sakia/gui/main_window/status_bar/model.py
similarity index 100%
rename from src/sakia/gui/status_bar/model.py
rename to src/sakia/gui/main_window/status_bar/model.py
diff --git a/src/sakia/gui/status_bar/view.py b/src/sakia/gui/main_window/status_bar/view.py
similarity index 100%
rename from src/sakia/gui/status_bar/view.py
rename to src/sakia/gui/main_window/status_bar/view.py
diff --git a/src/sakia/gui/graphs/wot/__init__.py b/src/sakia/gui/main_window/toolbar/__init__.py
similarity index 100%
rename from src/sakia/gui/graphs/wot/__init__.py
rename to src/sakia/gui/main_window/toolbar/__init__.py
diff --git a/src/sakia/gui/toolbar/controller.py b/src/sakia/gui/main_window/toolbar/controller.py
similarity index 95%
rename from src/sakia/gui/toolbar/controller.py
rename to src/sakia/gui/main_window/toolbar/controller.py
index c44950b0eb22253f7aa37055ef4e141112f1eecb..ee5729b97a2549ce30bbe601d29e2cf2534ef764 100644
--- a/src/sakia/gui/toolbar/controller.py
+++ b/src/sakia/gui/main_window/toolbar/controller.py
@@ -1,13 +1,13 @@
 from PyQt5.QtWidgets import QDialog, QMessageBox
 from PyQt5.QtCore import QT_TRANSLATE_NOOP, Qt
-from ..component.controller import ComponentController
+from sakia.gui.component.controller import ComponentController
 from .model import ToolbarModel
 from .view import ToolbarView
-from ...tools.decorators import asyncify, once_at_a_time, cancel_once_task
-from ..widgets.dialogs import QAsyncMessageBox, QAsyncFileDialog, dialog_async_exec
-from ..widgets import toast
-from ..certification.controller import CertificationController
-from ..transfer.controller import TransferController
+from sakia.tools.decorators import asyncify, once_at_a_time, cancel_once_task
+from sakia.gui.widgets.dialogs import QAsyncMessageBox, QAsyncFileDialog, dialog_async_exec
+from sakia.gui.widgets import toast
+from sakia.gui.dialogs.certification.controller import CertificationController
+from sakia.gui.dialogs.transfer.controller import TransferController
 import logging
 
 
diff --git a/src/sakia/gui/toolbar/model.py b/src/sakia/gui/main_window/toolbar/model.py
similarity index 100%
rename from src/sakia/gui/toolbar/model.py
rename to src/sakia/gui/main_window/toolbar/model.py
diff --git a/src/sakia/gui/toolbar/toolbar.ui b/src/sakia/gui/main_window/toolbar/toolbar.ui
similarity index 100%
rename from src/sakia/gui/toolbar/toolbar.ui
rename to src/sakia/gui/main_window/toolbar/toolbar.ui
diff --git a/src/sakia/gui/toolbar/view.py b/src/sakia/gui/main_window/toolbar/view.py
similarity index 100%
rename from src/sakia/gui/toolbar/view.py
rename to src/sakia/gui/main_window/toolbar/view.py
diff --git a/src/sakia/gui/navigation/controller.py b/src/sakia/gui/navigation/controller.py
index 568f049a753c62d1f4eda62c9aa4713404f5b4a2..3d3b4aca7677a8bdf9e6ed3ea7706ba82137f0cd 100644
--- a/src/sakia/gui/navigation/controller.py
+++ b/src/sakia/gui/navigation/controller.py
@@ -1,13 +1,13 @@
 from .model import NavigationModel
-from ..component.controller import ComponentController
+from sakia.gui.component.controller import ComponentController
 from .view import NavigationView
-from ..txhistory.controller import TxHistoryController
-from ..homescreen.controller import HomeScreenController
-from ..network.controller import NetworkController
-from ..identities.controller import IdentitiesController
-from ..informations.controller import InformationsController
-from ..graphs.wot.controller import WotController
-from ..graphs.explorer.controller import ExplorerController
+from .txhistory.controller import TxHistoryController
+from .homescreen.controller import HomeScreenController
+from .network.controller import NetworkController
+from .identities.controller import IdentitiesController
+from .informations.controller import InformationsController
+from .graphs.wot.controller import WotController
+from .graphs.explorer.controller import ExplorerController
 from sakia.core import Account, Community
 from PyQt5.QtCore import pyqtSignal
 
diff --git a/src/sakia/gui/homescreen/__init__.py b/src/sakia/gui/navigation/graphs/__init__.py
similarity index 100%
rename from src/sakia/gui/homescreen/__init__.py
rename to src/sakia/gui/navigation/graphs/__init__.py
diff --git a/src/sakia/gui/identities/__init__.py b/src/sakia/gui/navigation/graphs/base/__init__.py
similarity index 100%
rename from src/sakia/gui/identities/__init__.py
rename to src/sakia/gui/navigation/graphs/base/__init__.py
diff --git a/src/sakia/gui/graphs/base/controller.py b/src/sakia/gui/navigation/graphs/base/controller.py
similarity index 95%
rename from src/sakia/gui/graphs/base/controller.py
rename to src/sakia/gui/navigation/graphs/base/controller.py
index a022ed896e1d9b689b24243dd58921a08455d26f..45e547cc049562f714d769ab171e4b504fe12484 100644
--- a/src/sakia/gui/graphs/base/controller.py
+++ b/src/sakia/gui/navigation/graphs/base/controller.py
@@ -1,8 +1,8 @@
-from ...component.controller import ComponentController
+from sakia.gui.component.controller import ComponentController
 from PyQt5.QtCore import pyqtSlot
 from PyQt5.QtGui import QCursor
 from sakia.tools.decorators import asyncify, once_at_a_time
-from ...widgets.context_menu import ContextMenu
+from sakia.gui.widgets.context_menu import ContextMenu
 import asyncio
 
 
diff --git a/src/sakia/gui/graphs/base/edge.py b/src/sakia/gui/navigation/graphs/base/edge.py
similarity index 100%
rename from src/sakia/gui/graphs/base/edge.py
rename to src/sakia/gui/navigation/graphs/base/edge.py
diff --git a/src/sakia/gui/graphs/base/graph_tab.py b/src/sakia/gui/navigation/graphs/base/graph_tab.py
similarity index 100%
rename from src/sakia/gui/graphs/base/graph_tab.py
rename to src/sakia/gui/navigation/graphs/base/graph_tab.py
diff --git a/src/sakia/gui/graphs/base/model.py b/src/sakia/gui/navigation/graphs/base/model.py
similarity index 100%
rename from src/sakia/gui/graphs/base/model.py
rename to src/sakia/gui/navigation/graphs/base/model.py
diff --git a/src/sakia/gui/graphs/base/node.py b/src/sakia/gui/navigation/graphs/base/node.py
similarity index 97%
rename from src/sakia/gui/graphs/base/node.py
rename to src/sakia/gui/navigation/graphs/base/node.py
index 8c1d3c39a2bfd181664c5cc38692b2d366b5382e..332a859d8a932cdb92357c92d7ea020d2b8521aa 100644
--- a/src/sakia/gui/graphs/base/node.py
+++ b/src/sakia/gui/navigation/graphs/base/node.py
@@ -2,7 +2,7 @@ from PyQt5.QtWidgets import QGraphicsEllipseItem, QGraphicsSceneHoverEvent, \
     QGraphicsSceneContextMenuEvent
 from PyQt5.QtCore import Qt
 from PyQt5.QtGui import QMouseEvent
-from ....core.graph.constants import NodeStatus
+from sakia.core.graph.constants import NodeStatus
 
 
 class BaseNode(QGraphicsEllipseItem):
diff --git a/src/sakia/gui/graphs/base/scene.py b/src/sakia/gui/navigation/graphs/base/scene.py
similarity index 100%
rename from src/sakia/gui/graphs/base/scene.py
rename to src/sakia/gui/navigation/graphs/base/scene.py
diff --git a/src/sakia/gui/graphs/base/view.py b/src/sakia/gui/navigation/graphs/base/view.py
similarity index 100%
rename from src/sakia/gui/graphs/base/view.py
rename to src/sakia/gui/navigation/graphs/base/view.py
diff --git a/src/sakia/gui/informations/__init__.py b/src/sakia/gui/navigation/graphs/explorer/__init__.py
similarity index 100%
rename from src/sakia/gui/informations/__init__.py
rename to src/sakia/gui/navigation/graphs/explorer/__init__.py
diff --git a/src/sakia/gui/graphs/explorer/controller.py b/src/sakia/gui/navigation/graphs/explorer/controller.py
similarity index 97%
rename from src/sakia/gui/graphs/explorer/controller.py
rename to src/sakia/gui/navigation/graphs/explorer/controller.py
index 66796c785cb51f7586a945a6ff5ca850761f1ffc..9445148d5e890843ddffdde7b699b09f38e23d0b 100644
--- a/src/sakia/gui/graphs/explorer/controller.py
+++ b/src/sakia/gui/navigation/graphs/explorer/controller.py
@@ -2,7 +2,7 @@ from ..base.controller import BaseGraphController
 from sakia.tools.decorators import asyncify, once_at_a_time
 from .view import ExplorerView
 from .model import ExplorerModel
-from ...search_user.controller import SearchUserController
+from sakia.gui.sub.search_user.controller import SearchUserController
 import asyncio
 
 
diff --git a/src/sakia/gui/graphs/explorer/edge.py b/src/sakia/gui/navigation/graphs/explorer/edge.py
similarity index 99%
rename from src/sakia/gui/graphs/explorer/edge.py
rename to src/sakia/gui/navigation/graphs/explorer/edge.py
index 935840498e4b15831eb429040507aa2c8d464bed..0af1f027efbbfb9b84b28a0eba7520f2d70f0ab3 100644
--- a/src/sakia/gui/graphs/explorer/edge.py
+++ b/src/sakia/gui/navigation/graphs/explorer/edge.py
@@ -3,7 +3,7 @@ from PyQt5.QtCore import Qt, QRectF, QLineF, QPointF, QSizeF, \
 from PyQt5.QtGui import QColor, QPen, QPolygonF
 import math
 from ..base.edge import BaseEdge
-from ....core.graph.constants import EdgeStatus
+from sakia.core.graph.constants import EdgeStatus
 
 
 class ExplorerEdge(BaseEdge):
diff --git a/src/sakia/gui/graphs/explorer/explorer.ui b/src/sakia/gui/navigation/graphs/explorer/explorer.ui
similarity index 93%
rename from src/sakia/gui/graphs/explorer/explorer.ui
rename to src/sakia/gui/navigation/graphs/explorer/explorer.ui
index b76095027c51e6fbac268e081a010a973a7a3abf..c8ccca83a0ab54c652b6643b9ed6e32bf124b207 100644
--- a/src/sakia/gui/graphs/explorer/explorer.ui
+++ b/src/sakia/gui/navigation/graphs/explorer/explorer.ui
@@ -71,11 +71,11 @@
   <customwidget>
    <class>ExplorerGraphicsView</class>
    <extends>QGraphicsView</extends>
-   <header>sakia.gui.graphs.explorer.graphics_view</header>
+   <header>sakia.gui.navigation.graphs.explorer.graphics_view</header>
   </customwidget>
  </customwidgets>
  <resources>
-  <include location="../../../../../res/icons/icons.qrc"/>
+  <include location="../../../../../../res/icons/icons.qrc"/>
  </resources>
  <connections/>
  <slots>
diff --git a/src/sakia/gui/graphs/explorer/graphics_view.py b/src/sakia/gui/navigation/graphs/explorer/graphics_view.py
similarity index 100%
rename from src/sakia/gui/graphs/explorer/graphics_view.py
rename to src/sakia/gui/navigation/graphs/explorer/graphics_view.py
diff --git a/src/sakia/gui/graphs/explorer/model.py b/src/sakia/gui/navigation/graphs/explorer/model.py
similarity index 100%
rename from src/sakia/gui/graphs/explorer/model.py
rename to src/sakia/gui/navigation/graphs/explorer/model.py
diff --git a/src/sakia/gui/graphs/explorer/node.py b/src/sakia/gui/navigation/graphs/explorer/node.py
similarity index 99%
rename from src/sakia/gui/graphs/explorer/node.py
rename to src/sakia/gui/navigation/graphs/explorer/node.py
index 1be84d23635d6e8db63a60a97f45f187df5d22fd..58b578debc968d66cf7fbea7dfeb1f2d196b6d8b 100644
--- a/src/sakia/gui/graphs/explorer/node.py
+++ b/src/sakia/gui/navigation/graphs/explorer/node.py
@@ -1,7 +1,7 @@
 from PyQt5.QtWidgets import QGraphicsSimpleTextItem
 from PyQt5.QtCore import Qt, QPointF, QTimeLine, QTimer
 from PyQt5.QtGui import QTransform, QColor, QPen, QBrush, QRadialGradient
-from ....core.graph.constants import NodeStatus
+from sakia.core.graph.constants import NodeStatus
 from ..base.node import BaseNode
 import math
 
diff --git a/src/sakia/gui/graphs/explorer/scene.py b/src/sakia/gui/navigation/graphs/explorer/scene.py
similarity index 100%
rename from src/sakia/gui/graphs/explorer/scene.py
rename to src/sakia/gui/navigation/graphs/explorer/scene.py
diff --git a/src/sakia/gui/graphs/explorer/view.py b/src/sakia/gui/navigation/graphs/explorer/view.py
similarity index 100%
rename from src/sakia/gui/graphs/explorer/view.py
rename to src/sakia/gui/navigation/graphs/explorer/view.py
diff --git a/src/sakia/gui/network/__init__.py b/src/sakia/gui/navigation/graphs/wot/__init__.py
similarity index 100%
rename from src/sakia/gui/network/__init__.py
rename to src/sakia/gui/navigation/graphs/wot/__init__.py
diff --git a/src/sakia/gui/graphs/wot/controller.py b/src/sakia/gui/navigation/graphs/wot/controller.py
similarity index 97%
rename from src/sakia/gui/graphs/wot/controller.py
rename to src/sakia/gui/navigation/graphs/wot/controller.py
index 9cebbaf1137666fbd90edb7a574a88ffd16e04fe..bd6cdc3f2d70e5548e6959acca122f8a4dc47f18 100644
--- a/src/sakia/gui/graphs/wot/controller.py
+++ b/src/sakia/gui/navigation/graphs/wot/controller.py
@@ -2,7 +2,7 @@ from ..base.controller import BaseGraphController
 from sakia.tools.decorators import asyncify, once_at_a_time
 from .view import WotView
 from .model import WotModel
-from ...search_user.controller import SearchUserController
+from sakia.gui.sub.search_user.controller import SearchUserController
 import asyncio
 
 
diff --git a/src/sakia/gui/graphs/wot/edge.py b/src/sakia/gui/navigation/graphs/wot/edge.py
similarity index 98%
rename from src/sakia/gui/graphs/wot/edge.py
rename to src/sakia/gui/navigation/graphs/wot/edge.py
index 3af111bb8906833a9255a1da32595b8c63dc307a..04f31d5c2ca7916f20f15231f9655fbd41d274e0 100644
--- a/src/sakia/gui/graphs/wot/edge.py
+++ b/src/sakia/gui/navigation/graphs/wot/edge.py
@@ -3,7 +3,7 @@ from PyQt5.QtCore import Qt, QRectF, QLineF, QPointF, QSizeF, \
 from PyQt5.QtGui import QColor, QPen, QPolygonF
 import math
 from ..base.edge import BaseEdge
-from ....core.graph.constants import EdgeStatus
+from sakia.core.graph.constants import EdgeStatus
 
 
 class WotEdge(BaseEdge):
diff --git a/src/sakia/gui/graphs/wot/graphics_view.py b/src/sakia/gui/navigation/graphs/wot/graphics_view.py
similarity index 100%
rename from src/sakia/gui/graphs/wot/graphics_view.py
rename to src/sakia/gui/navigation/graphs/wot/graphics_view.py
diff --git a/src/sakia/gui/graphs/wot/model.py b/src/sakia/gui/navigation/graphs/wot/model.py
similarity index 100%
rename from src/sakia/gui/graphs/wot/model.py
rename to src/sakia/gui/navigation/graphs/wot/model.py
diff --git a/src/sakia/gui/graphs/wot/node.py b/src/sakia/gui/navigation/graphs/wot/node.py
similarity index 97%
rename from src/sakia/gui/graphs/wot/node.py
rename to src/sakia/gui/navigation/graphs/wot/node.py
index 53278ed45ba2d6dfbab3d73941396cb999abf2a2..51a673a987dfc52c4ce040330dc18ca0689db442 100644
--- a/src/sakia/gui/graphs/wot/node.py
+++ b/src/sakia/gui/navigation/graphs/wot/node.py
@@ -1,7 +1,7 @@
 from PyQt5.QtWidgets import QGraphicsSimpleTextItem
 from PyQt5.QtCore import Qt, QPointF
 from PyQt5.QtGui import QTransform, QColor, QPen, QBrush, QRadialGradient
-from ....core.graph.constants import NodeStatus
+from sakia.core.graph.constants import NodeStatus
 from ..base.node import BaseNode
 
 
diff --git a/src/sakia/gui/graphs/wot/scene.py b/src/sakia/gui/navigation/graphs/wot/scene.py
similarity index 100%
rename from src/sakia/gui/graphs/wot/scene.py
rename to src/sakia/gui/navigation/graphs/wot/scene.py
diff --git a/src/sakia/gui/graphs/wot/view.py b/src/sakia/gui/navigation/graphs/wot/view.py
similarity index 100%
rename from src/sakia/gui/graphs/wot/view.py
rename to src/sakia/gui/navigation/graphs/wot/view.py
diff --git a/src/sakia/gui/graphs/wot/wot_tab.ui b/src/sakia/gui/navigation/graphs/wot/wot_tab.ui
similarity index 87%
rename from src/sakia/gui/graphs/wot/wot_tab.ui
rename to src/sakia/gui/navigation/graphs/wot/wot_tab.ui
index c54c8b61d7f40b52315fa428f8036ba6014f868b..7bddf7cbfa3102c58d9b38710d1c30d85e78e956 100644
--- a/src/sakia/gui/graphs/wot/wot_tab.ui
+++ b/src/sakia/gui/navigation/graphs/wot/wot_tab.ui
@@ -27,11 +27,11 @@
   <customwidget>
    <class>WotGraphicsView</class>
    <extends>QGraphicsView</extends>
-   <header>sakia.gui.graphs.wot.graphics_view</header>
+   <header>sakia.gui.navigation.graphs.wot.graphics_view</header>
   </customwidget>
  </customwidgets>
  <resources>
-  <include location="../../../../../res/icons/icons.qrc"/>
+  <include location="../../../../../../res/icons/icons.qrc"/>
  </resources>
  <connections/>
  <slots>
diff --git a/src/sakia/gui/status_bar/__init__.py b/src/sakia/gui/navigation/homescreen/__init__.py
similarity index 100%
rename from src/sakia/gui/status_bar/__init__.py
rename to src/sakia/gui/navigation/homescreen/__init__.py
diff --git a/src/sakia/gui/homescreen/controller.py b/src/sakia/gui/navigation/homescreen/controller.py
similarity index 94%
rename from src/sakia/gui/homescreen/controller.py
rename to src/sakia/gui/navigation/homescreen/controller.py
index 3a63a3a989f40ab65a51a310f051dc448536b8c0..796878ca48cdd7406c3fece0130314a363314133 100644
--- a/src/sakia/gui/homescreen/controller.py
+++ b/src/sakia/gui/navigation/homescreen/controller.py
@@ -1,4 +1,4 @@
-from ..component.controller import ComponentController
+from sakia.gui.component.controller import ComponentController
 from .view import HomeScreenView
 from .model import HomeScreenModel
 
diff --git a/src/sakia/gui/homescreen/homescreen.ui b/src/sakia/gui/navigation/homescreen/homescreen.ui
similarity index 100%
rename from src/sakia/gui/homescreen/homescreen.ui
rename to src/sakia/gui/navigation/homescreen/homescreen.ui
diff --git a/src/sakia/gui/homescreen/model.py b/src/sakia/gui/navigation/homescreen/model.py
similarity index 100%
rename from src/sakia/gui/homescreen/model.py
rename to src/sakia/gui/navigation/homescreen/model.py
diff --git a/src/sakia/gui/homescreen/view.py b/src/sakia/gui/navigation/homescreen/view.py
similarity index 100%
rename from src/sakia/gui/homescreen/view.py
rename to src/sakia/gui/navigation/homescreen/view.py
diff --git a/src/sakia/gui/toolbar/__init__.py b/src/sakia/gui/navigation/identities/__init__.py
similarity index 100%
rename from src/sakia/gui/toolbar/__init__.py
rename to src/sakia/gui/navigation/identities/__init__.py
diff --git a/src/sakia/gui/identities/controller.py b/src/sakia/gui/navigation/identities/controller.py
similarity index 97%
rename from src/sakia/gui/identities/controller.py
rename to src/sakia/gui/navigation/identities/controller.py
index 99af1567690596df61672dcaf709d2e046c7bdbc..7722bfbb6d5315d13360905869991cc4bbb3fb6a 100644
--- a/src/sakia/gui/identities/controller.py
+++ b/src/sakia/gui/navigation/identities/controller.py
@@ -1,8 +1,8 @@
-from ..component.controller import ComponentController
+from sakia.gui.component.controller import ComponentController
 from .model import IdentitiesModel
 from .view import IdentitiesView
 from sakia.tools.decorators import once_at_a_time, asyncify
-from ..widgets.context_menu import ContextMenu
+from sakia.gui.widgets.context_menu import ContextMenu
 from PyQt5.QtGui import QCursor
 from sakia.core.registry import Identity, BlockchainState
 from duniterpy.documents.block import BlockUID
diff --git a/src/sakia/gui/identities/identities.ui b/src/sakia/gui/navigation/identities/identities.ui
similarity index 100%
rename from src/sakia/gui/identities/identities.ui
rename to src/sakia/gui/navigation/identities/identities.ui
diff --git a/src/sakia/gui/identities/model.py b/src/sakia/gui/navigation/identities/model.py
similarity index 97%
rename from src/sakia/gui/identities/model.py
rename to src/sakia/gui/navigation/identities/model.py
index 9c41c995d9cafd767dd31b82666c7db40e8fe74d..c2737855d3427d4718b4319cb3ca9cd1eb2eb637 100644
--- a/src/sakia/gui/identities/model.py
+++ b/src/sakia/gui/navigation/identities/model.py
@@ -1,5 +1,5 @@
 from PyQt5.QtCore import Qt
-from ..component.model import ComponentModel
+from sakia.gui.component.model import ComponentModel
 from .table_model import IdentitiesFilterProxyModel, IdentitiesTableModel
 
 
diff --git a/src/sakia/gui/identities/table_model.py b/src/sakia/gui/navigation/identities/table_model.py
similarity index 100%
rename from src/sakia/gui/identities/table_model.py
rename to src/sakia/gui/navigation/identities/table_model.py
diff --git a/src/sakia/gui/identities/view.py b/src/sakia/gui/navigation/identities/view.py
similarity index 100%
rename from src/sakia/gui/identities/view.py
rename to src/sakia/gui/navigation/identities/view.py
diff --git a/src/sakia/gui/transfer/__init__.py b/src/sakia/gui/navigation/informations/__init__.py
similarity index 100%
rename from src/sakia/gui/transfer/__init__.py
rename to src/sakia/gui/navigation/informations/__init__.py
diff --git a/src/sakia/gui/informations/controller.py b/src/sakia/gui/navigation/informations/controller.py
similarity index 97%
rename from src/sakia/gui/informations/controller.py
rename to src/sakia/gui/navigation/informations/controller.py
index ee56073afb16ab91303ad38831b3b44a74f4b1b6..206c7246e15ed59bebb56ac8ade013b5f2b937e9 100644
--- a/src/sakia/gui/informations/controller.py
+++ b/src/sakia/gui/navigation/informations/controller.py
@@ -1,4 +1,4 @@
-from ..component.controller import ComponentController
+from sakia.gui.component.controller import ComponentController
 from .model import InformationsModel
 from .view import InformationsView
 from sakia.tools.decorators import asyncify
diff --git a/src/sakia/gui/informations/informations.ui b/src/sakia/gui/navigation/informations/informations.ui
similarity index 100%
rename from src/sakia/gui/informations/informations.ui
rename to src/sakia/gui/navigation/informations/informations.ui
diff --git a/src/sakia/gui/informations/model.py b/src/sakia/gui/navigation/informations/model.py
similarity index 99%
rename from src/sakia/gui/informations/model.py
rename to src/sakia/gui/navigation/informations/model.py
index 94b930fd93b44859097f9b5d19fbba25446bb8aa..f7272c1df7e996852763f42a40a00a3831343d3c 100644
--- a/src/sakia/gui/informations/model.py
+++ b/src/sakia/gui/navigation/informations/model.py
@@ -1,4 +1,4 @@
-from ..component.model import ComponentModel
+from sakia.gui.component.model import ComponentModel
 from sakia.tools.exceptions import NoPeerAvailable
 from PyQt5.QtCore import QLocale, QDateTime, pyqtSignal
 from sakia.core.money import Referentials
diff --git a/src/sakia/gui/informations/view.py b/src/sakia/gui/navigation/informations/view.py
similarity index 100%
rename from src/sakia/gui/informations/view.py
rename to src/sakia/gui/navigation/informations/view.py
diff --git a/src/sakia/gui/navigation/model.py b/src/sakia/gui/navigation/model.py
index 8a7f49ee67ce95416a308c9eaa0e830153270181..9ddee1e69b29e52862fc77e729ea6d37be10d4be 100644
--- a/src/sakia/gui/navigation/model.py
+++ b/src/sakia/gui/navigation/model.py
@@ -1,4 +1,4 @@
-from ..component.model import ComponentModel
+from sakia.gui.component.model import ComponentModel
 from sakia.models.generic_tree import GenericTreeModel
 from PyQt5.QtCore import pyqtSignal
 
diff --git a/src/sakia/gui/txhistory/__init__.py b/src/sakia/gui/navigation/network/__init__.py
similarity index 100%
rename from src/sakia/gui/txhistory/__init__.py
rename to src/sakia/gui/navigation/network/__init__.py
diff --git a/src/sakia/gui/network/controller.py b/src/sakia/gui/navigation/network/controller.py
similarity index 97%
rename from src/sakia/gui/network/controller.py
rename to src/sakia/gui/navigation/network/controller.py
index 7da849789dd5955c452707036e4b1d03524d0582..65145dc4414303472826ac09fc5ef1792ea97e5a 100644
--- a/src/sakia/gui/network/controller.py
+++ b/src/sakia/gui/navigation/network/controller.py
@@ -1,4 +1,4 @@
-from ..component.controller import ComponentController
+from sakia.gui.component.controller import ComponentController
 from .model import NetworkModel
 from .view import NetworkView
 from PyQt5.QtWidgets import QAction, QMenu
diff --git a/src/sakia/gui/network/model.py b/src/sakia/gui/navigation/network/model.py
similarity index 97%
rename from src/sakia/gui/network/model.py
rename to src/sakia/gui/navigation/network/model.py
index f337e4289d0e1fad01d283b703c0c3253f4b0b75..f395bfdab4f69b50b7c0d8a84bebcc1c6b4fdebd 100644
--- a/src/sakia/gui/network/model.py
+++ b/src/sakia/gui/navigation/network/model.py
@@ -1,4 +1,4 @@
-from ..component.model import ComponentModel
+from sakia.gui.component.model import ComponentModel
 from .table_model import NetworkTableModel, NetworkFilterProxyModel
 from PyQt5.QtCore import QModelIndex, Qt
 
diff --git a/src/sakia/gui/network/network.ui b/src/sakia/gui/navigation/network/network.ui
similarity index 100%
rename from src/sakia/gui/network/network.ui
rename to src/sakia/gui/navigation/network/network.ui
diff --git a/src/sakia/gui/network/table_model.py b/src/sakia/gui/navigation/network/table_model.py
similarity index 100%
rename from src/sakia/gui/network/table_model.py
rename to src/sakia/gui/navigation/network/table_model.py
diff --git a/src/sakia/gui/network/view.py b/src/sakia/gui/navigation/network/view.py
similarity index 100%
rename from src/sakia/gui/network/view.py
rename to src/sakia/gui/navigation/network/view.py
diff --git a/src/sakia/gui/user_information/__init__.py b/src/sakia/gui/navigation/txhistory/__init__.py
similarity index 100%
rename from src/sakia/gui/user_information/__init__.py
rename to src/sakia/gui/navigation/txhistory/__init__.py
diff --git a/src/sakia/gui/txhistory/controller.py b/src/sakia/gui/navigation/txhistory/controller.py
similarity index 94%
rename from src/sakia/gui/txhistory/controller.py
rename to src/sakia/gui/navigation/txhistory/controller.py
index 8e528b168a801593c8c0f0c4971f51d2260cc4ed..92920fad0761bb95bc611afcf6c656f937962530 100644
--- a/src/sakia/gui/txhistory/controller.py
+++ b/src/sakia/gui/navigation/txhistory/controller.py
@@ -3,12 +3,12 @@ import logging
 from PyQt5.QtCore import QTime, pyqtSignal
 from PyQt5.QtGui import QCursor
 
-from ..component.controller import ComponentController
+from sakia.gui.component.controller import ComponentController
 from .view import TxHistoryView
 from .model import TxHistoryModel
-from ...tools.decorators import asyncify, once_at_a_time
-from ..widgets import toast
-from ..widgets.context_menu import ContextMenu
+from sakia.tools.decorators import asyncify, once_at_a_time
+from sakia.gui.widgets import toast
+from sakia.gui.widgets.context_menu import ContextMenu
 
 
 class TxHistoryController(ComponentController):
diff --git a/src/sakia/gui/txhistory/model.py b/src/sakia/gui/navigation/txhistory/model.py
similarity index 100%
rename from src/sakia/gui/txhistory/model.py
rename to src/sakia/gui/navigation/txhistory/model.py
diff --git a/src/sakia/gui/txhistory/table_model.py b/src/sakia/gui/navigation/txhistory/table_model.py
similarity index 98%
rename from src/sakia/gui/txhistory/table_model.py
rename to src/sakia/gui/navigation/txhistory/table_model.py
index a0cb25ce0182a950bdbde505582fec2f4c953a7b..969a7250e92e950ea4abdb818708f3d03f62f19c 100644
--- a/src/sakia/gui/txhistory/table_model.py
+++ b/src/sakia/gui/navigation/txhistory/table_model.py
@@ -8,10 +8,10 @@ import datetime
 import logging
 import asyncio
 import math
-from ...core.transfer import Transfer, TransferState
-from ...core.net.network import MAX_CONFIRMATIONS
-from ...tools.exceptions import NoPeerAvailable
-from ...tools.decorators import asyncify, once_at_a_time, cancel_once_task
+from sakia.core.transfer import Transfer, TransferState
+from sakia.core.net.network import MAX_CONFIRMATIONS
+from sakia.tools.exceptions import NoPeerAvailable
+from sakia.tools.decorators import asyncify, once_at_a_time, cancel_once_task
 from PyQt5.QtCore import QAbstractTableModel, Qt, QVariant, QSortFilterProxyModel, \
     QDateTime, QLocale, QModelIndex
 
diff --git a/src/sakia/gui/txhistory/txhistory.ui b/src/sakia/gui/navigation/txhistory/txhistory.ui
similarity index 100%
rename from src/sakia/gui/txhistory/txhistory.ui
rename to src/sakia/gui/navigation/txhistory/txhistory.ui
diff --git a/src/sakia/gui/txhistory/view.py b/src/sakia/gui/navigation/txhistory/view.py
similarity index 100%
rename from src/sakia/gui/txhistory/view.py
rename to src/sakia/gui/navigation/txhistory/view.py
diff --git a/src/sakia/gui/navigation/view.py b/src/sakia/gui/navigation/view.py
index a822e992c19fb117bda9e10bbf926fa602fcd5ab..7fa673f43068a32dbba8ddbac05e1766e9fd78a4 100644
--- a/src/sakia/gui/navigation/view.py
+++ b/src/sakia/gui/navigation/view.py
@@ -1,7 +1,7 @@
 from PyQt5.QtWidgets import QFrame, QSizePolicy
 from PyQt5.QtCore import pyqtSignal
 from .navigation_uic import Ui_Navigation
-from ...models.generic_tree import GenericTreeModel
+from sakia.models.generic_tree import GenericTreeModel
 
 
 class NavigationView(QFrame, Ui_Navigation):
diff --git a/src/sakia/gui/sub/__init__.py b/src/sakia/gui/sub/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/sakia/gui/search_user/controller.py b/src/sakia/gui/sub/search_user/controller.py
similarity index 95%
rename from src/sakia/gui/search_user/controller.py
rename to src/sakia/gui/sub/search_user/controller.py
index 1963b41e0168e15eaac92119072f6ff9461c0e1f..7dcd7d42e0ea46370867740c11195f9c313bbacb 100644
--- a/src/sakia/gui/search_user/controller.py
+++ b/src/sakia/gui/sub/search_user/controller.py
@@ -1,8 +1,8 @@
 from PyQt5.QtCore import pyqtSignal
-from ..component.controller import ComponentController
+from sakia.gui.component.controller import ComponentController
 from .model import SearchUserModel
 from .view import SearchUserView
-from ...tools.decorators import asyncify
+from sakia.tools.decorators import asyncify
 from sakia.core.registry import Identity
 
 
diff --git a/src/sakia/gui/search_user/model.py b/src/sakia/gui/sub/search_user/model.py
similarity index 97%
rename from src/sakia/gui/search_user/model.py
rename to src/sakia/gui/sub/search_user/model.py
index d26d5451041afa99892a04592634ede5ea5a395a..8887ec7322997ab3de49934b982227992f56b400 100644
--- a/src/sakia/gui/search_user/model.py
+++ b/src/sakia/gui/sub/search_user/model.py
@@ -1,5 +1,5 @@
 from sakia.core.registry import BlockchainState
-from ..component.model import ComponentModel
+from sakia.gui.component.model import ComponentModel
 from duniterpy.api import errors, bma
 from sakia.tools.exceptions import NoPeerAvailable
 
diff --git a/src/sakia/gui/search_user/search_user.ui b/src/sakia/gui/sub/search_user/search_user.ui
similarity index 100%
rename from src/sakia/gui/search_user/search_user.ui
rename to src/sakia/gui/sub/search_user/search_user.ui
diff --git a/src/sakia/gui/search_user/view.py b/src/sakia/gui/sub/search_user/view.py
similarity index 100%
rename from src/sakia/gui/search_user/view.py
rename to src/sakia/gui/sub/search_user/view.py
diff --git a/src/sakia/gui/sub/user_information/__init__.py b/src/sakia/gui/sub/user_information/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/sakia/gui/user_information/controller.py b/src/sakia/gui/sub/user_information/controller.py
similarity index 98%
rename from src/sakia/gui/user_information/controller.py
rename to src/sakia/gui/sub/user_information/controller.py
index a2210059c484ad5b828569d4743b5a757ee86e29..080326d643f42a327da7df8e3c9f2a858e2b2a1a 100644
--- a/src/sakia/gui/user_information/controller.py
+++ b/src/sakia/gui/sub/user_information/controller.py
@@ -1,4 +1,4 @@
-from ..component.controller import ComponentController
+from sakia.gui.component.controller import ComponentController
 from .view import UserInformationView
 from .model import UserInformationModel
 from sakia.tools.decorators import asyncify
diff --git a/src/sakia/gui/user_information/model.py b/src/sakia/gui/sub/user_information/model.py
similarity index 100%
rename from src/sakia/gui/user_information/model.py
rename to src/sakia/gui/sub/user_information/model.py
diff --git a/src/sakia/gui/user_information/user_information.ui b/src/sakia/gui/sub/user_information/user_information.ui
similarity index 100%
rename from src/sakia/gui/user_information/user_information.ui
rename to src/sakia/gui/sub/user_information/user_information.ui
diff --git a/src/sakia/gui/user_information/view.py b/src/sakia/gui/sub/user_information/view.py
similarity index 98%
rename from src/sakia/gui/user_information/view.py
rename to src/sakia/gui/sub/user_information/view.py
index 90013359a34aabc0e68b4adf3720940b1508b68f..1f5d663d60ebb936d3810ba55fde7a3eb4c49e08 100644
--- a/src/sakia/gui/user_information/view.py
+++ b/src/sakia/gui/sub/user_information/view.py
@@ -1,7 +1,7 @@
 from PyQt5.QtCore import QLocale, QDateTime
 from PyQt5.QtWidgets import QWidget
 from .user_information_uic import Ui_UserInformationWidget
-from ..widgets.busy import Busy
+from sakia.gui.widgets.busy import Busy
 
 
 class UserInformationView(QWidget, Ui_UserInformationWidget):
diff --git a/src/sakia/gui/widgets/context_menu.py b/src/sakia/gui/widgets/context_menu.py
index fe34ff8db721241803a13ba2cc38adfbf2b3cfd4..7aa990c8234a55959c9d03fef0bb21f8d6c53706 100644
--- a/src/sakia/gui/widgets/context_menu.py
+++ b/src/sakia/gui/widgets/context_menu.py
@@ -3,14 +3,14 @@ from PyQt5.QtCore import QObject, pyqtSignal
 from duniterpy.documents import Block, Membership
 import logging
 
-from ..user_information.controller import UserInformationController
-from ..contact import ConfigureContactDialog
-from ..transfer.controller import TransferController
-from ..certification.controller import CertificationController
-from ...tools.decorators import asyncify
-from ...core.transfer import Transfer, TransferState
-from ...core.registry import Identity
-from ...tools.exceptions import MembershipNotFoundError
+from sakia.gui.sub.user_information.controller import UserInformationController
+from sakia.gui.contact import ConfigureContactDialog
+from sakia.gui.dialogs.transfer.controller import TransferController
+from sakia.gui.dialogs.certification.controller import CertificationController
+from sakia.tools.decorators import asyncify
+from sakia.core.transfer import Transfer, TransferState
+from sakia.core.registry import Identity
+from sakia.tools.exceptions import MembershipNotFoundError
 
 
 class ContextMenu(QObject):