diff --git a/src/Ass/Ass.hh b/src/Ass/Ass.hh
index 2437996df1143f723b00d486c08546fb5af484a4..f1b3da97a78306ba00d3d032b6774d119f52d2bc 100644
--- a/src/Ass/Ass.hh
+++ b/src/Ass/Ass.hh
@@ -5,5 +5,16 @@
 #include "Line.hh"
 #include "Syl.hh"
 #include "Style.hh"
+#include "AssFactory.hh"
+#include <memory.h>
+
+namespace Vivy::Ass
+{
+using StylePtr = AssFactory::StylePtr;
+using LinePtr  = AssFactory::LinePtr;
+
+using StyleWeakPtr = AssFactory::StyleWeakPtr;
+using LineWeakPtr  = AssFactory::LineWeakPtr;
+}
 
 #endif // VIVY_ASS_ASS_H
diff --git a/src/Ass/AssFactory.cc b/src/Ass/AssFactory.cc
index 7bcf561c099c61fc9df9eb3a286f7708b42b509d..28f1322ef50e3cb0063c3a6163cc27aab38af386 100644
--- a/src/Ass/AssFactory.cc
+++ b/src/Ass/AssFactory.cc
@@ -2,6 +2,8 @@
 
 #include <stdexcept>
 
+using namespace Vivy::Ass;
+
 bool
 AssFactory::initFromStorage() noexcept
 {
diff --git a/src/Ass/AssFactory.hh b/src/Ass/AssFactory.hh
index c4b98cd09daaa44dddbcb19039aafc8308aa8938..74a0976661a81cdec642f341bafe612875553657 100644
--- a/src/Ass/AssFactory.hh
+++ b/src/Ass/AssFactory.hh
@@ -17,6 +17,8 @@
  *
  */
 
+namespace Vivy::Ass
+{
 class AssFactory final {
     VIVY_UNMOVABLE_OBJECT(AssFactory)
 
@@ -28,7 +30,9 @@ public:
     };
 
     using LinePtr        = std::shared_ptr<Line>;
+    using LineWeakPtr    = std::weak_ptr<Line>;
     using StylePtr       = std::shared_ptr<Style>;
+    using StyleWeakPtr   = std::weak_ptr<Style>;
     using SectionContent = QMap<QString, QVariant>;
 
 private:
@@ -60,4 +64,6 @@ public:
     QList<LinePtr> getLines() const noexcept;
 };
 
+}
+
 #endif // VIVY_ASS_FACTORY_H
diff --git a/src/Ass/Char.cc b/src/Ass/Char.cc
index 9ba0f77ffa1463a58b2d236271a6f616d09b5e54..e768c6bbf4e3552c3aecdd0538871a1d6c586d96 100644
--- a/src/Ass/Char.cc
+++ b/src/Ass/Char.cc
@@ -1,6 +1,8 @@
 #include "Char.hh"
 #include "Syl.hh"
 
+using namespace Vivy::Ass;
+
 Char::Char(Syl *const syl, const QChar /*unused*/)
     : parentLine(syl->parentLine)
     , parentSyl(syl)
diff --git a/src/Ass/Char.hh b/src/Ass/Char.hh
index 6488e64e680fea1e95df5d57de9de1f233dab6d8..bd300d5b981d8340d10bb89a23587b1ce90c2a08 100644
--- a/src/Ass/Char.hh
+++ b/src/Ass/Char.hh
@@ -4,6 +4,8 @@
 #include <QChar>
 #include <QtGlobal>
 
+namespace Vivy::Ass
+{
 class Line;
 class Syl;
 
@@ -24,5 +26,6 @@ public:
     Char &operator=(const Char &) = delete;
     ~Char() noexcept              = default;
 };
+}
 
 #endif // VIVY_ASS_CHAR_H
diff --git a/src/Ass/Line.cc b/src/Ass/Line.cc
index 7a1fdfcdff6e681bfd9838496bf2593fc2706d97..1b7b8c6a21de97616d506a86d87aff64a9832b0a 100644
--- a/src/Ass/Line.cc
+++ b/src/Ass/Line.cc
@@ -1,5 +1,7 @@
 #include "Line.hh"
 
+using namespace Vivy::Ass;
+
 Line::Line(const QString & /*unused*/)
 {
 }
diff --git a/src/Ass/Line.hh b/src/Ass/Line.hh
index 3f447ec8c29a476eba4d4f787c466ab720f81921..c4b1a39be5a0234ad7adc11dcdb708e0f07dc6e3 100644
--- a/src/Ass/Line.hh
+++ b/src/Ass/Line.hh
@@ -5,6 +5,8 @@
 #include <QtGlobal>
 #include "Syl.hh"
 
+namespace Vivy::Ass
+{
 class Line {
 private:
     quint64 start{ 0 };
@@ -24,4 +26,6 @@ public:
     void setEnd(quint64 s) noexcept;
 };
 
+}
+
 #endif // VIVY_ASS_LINE_H
diff --git a/src/Ass/Style.cc b/src/Ass/Style.cc
index 859de90d5f56a2195a7b6569e20917ce93949bad..16db98ee32cff6d2ac98acf3b21744d2485a7946 100644
--- a/src/Ass/Style.cc
+++ b/src/Ass/Style.cc
@@ -1,5 +1,7 @@
 #include "Style.hh"
 
+using namespace Vivy::Ass;
+
 Style::Style(const QString & /*unused*/)
 {
 }
diff --git a/src/Ass/Style.hh b/src/Ass/Style.hh
index f7056890eac38d459755bb0f8196cd66fcd220bd..82e6c4be083466d8b01545d7779e93b624fdc96b 100644
--- a/src/Ass/Style.hh
+++ b/src/Ass/Style.hh
@@ -5,7 +5,8 @@
 #include <QVector>
 #include <QtGlobal>
 
-// class or struct, that is the question
+namespace Vivy::Ass
+{
 struct Color {
     union {
         quint8 a, r, g, b;
@@ -40,4 +41,6 @@ public:
     ~Style() noexcept               = default;
 };
 
+}
+
 #endif
diff --git a/src/Ass/Syl.cc b/src/Ass/Syl.cc
index 9fbe6d343f83b412dd80c96f6751b83ffd468834..5f1bb9612cadb8bd2cfa78a58439c0072e816784 100644
--- a/src/Ass/Syl.cc
+++ b/src/Ass/Syl.cc
@@ -1,5 +1,7 @@
 #include "Syl.hh"
 
+using namespace Vivy::Ass;
+
 Syl::Syl(Line *const line, const QString & /*unused*/)
     : parentLine(line)
 {
diff --git a/src/Ass/Syl.hh b/src/Ass/Syl.hh
index 6cac6bfc3140db005a6123c236416426e0d364ff..cb5c522b0dc7390fc5bb37753c613495d704f7bf 100644
--- a/src/Ass/Syl.hh
+++ b/src/Ass/Syl.hh
@@ -6,6 +6,8 @@
 #include <QVector>
 #include <QtGlobal>
 
+namespace Vivy::Ass
+{
 class Line;
 
 class Syl {
@@ -24,4 +26,6 @@ public:
     ~Syl() noexcept             = default;
 };
 
+}
+
 #endif
diff --git a/src/AudioVisualizer.cc b/src/AudioVisualizer.cc
index f557a9b0056ab63ca5941aba5b4ffb034f595a8f..840d770aa44f99d2ac31eafe89279ede49a8da91 100644
--- a/src/AudioVisualizer.cc
+++ b/src/AudioVisualizer.cc
@@ -8,6 +8,8 @@
 #include <QScrollBar>
 #include <QVBoxLayout>
 
+using namespace Vivy;
+
 AudioVisualizer::AudioVisualizer(QWidget *parent) noexcept
     : QWidget(parent)
 {
diff --git a/src/AudioVisualizer.hh b/src/AudioVisualizer.hh
index 41163786a54a36fbd213fee9e56581cb7a894a71..8a267183e353dca5756b1a215336db8c239fa6b7 100644
--- a/src/AudioVisualizer.hh
+++ b/src/AudioVisualizer.hh
@@ -9,6 +9,8 @@
 #include <QWidget>
 #include <QString>
 
+namespace Vivy
+{
 class AudioVisualizer final : public QWidget {
     Q_OBJECT
 
@@ -22,4 +24,6 @@ public slots:
     void printSpectrum(QImage) noexcept;
 };
 
+}
+
 #endif // VIVY_AUDIOVISUALIZER_H
diff --git a/src/DialogHelp.cc b/src/DialogHelp.cc
index 9d27ca16bc4f6c624bf3c16ebae2769fe5d71b94..f3e34eb171371e77f22379afe497ae1e09a7bff9 100644
--- a/src/DialogHelp.cc
+++ b/src/DialogHelp.cc
@@ -6,6 +6,8 @@
 #include <QDialog>
 #include <QPixmap>
 
+using namespace Vivy;
+
 DialogHelp::DialogHelp(QWidget *parent) noexcept
     : QMessageBox(parent)
 {
diff --git a/src/DialogHelp.hh b/src/DialogHelp.hh
index 33cd2ff19b6bd824327b17066f9b4edf3a7ca3a0..1ab9c7d9f3eff84d837438671f09b3b9a9ba917c 100644
--- a/src/DialogHelp.hh
+++ b/src/DialogHelp.hh
@@ -8,6 +8,8 @@
 #include <QMessageBox>
 #include <QWidget>
 
+namespace Vivy
+{
 class DialogHelp final : public QMessageBox {
     Q_OBJECT
 
@@ -34,4 +36,6 @@ private:
     // clang-format on
 };
 
+}
+
 #endif // VIVY_DIALOGHELP_H
diff --git a/src/Document/CRTPSubDocument.hh b/src/Document/CRTPSubDocument.hh
index 1052983dd0695371877ad8f3939c3b8e380bf45c..17628256bd655494ef453a9e48b6c67e2e58b0d0 100644
--- a/src/Document/CRTPSubDocument.hh
+++ b/src/Document/CRTPSubDocument.hh
@@ -12,6 +12,8 @@
 
 /* Types for the different documents */
 
+namespace Vivy
+{
 enum class AudioDocumentType : quint64 {
     MP3 = Vivy::Utils::to_underlying(Vivy::Utils::DocumentType::MP3),
     OGG = Vivy::Utils::to_underlying(Vivy::Utils::DocumentType::OGG),
@@ -103,7 +105,9 @@ class AssSubDocument final : public CRTPSubDocument<AssDocumentType, AssSubDocum
     friend CRTPSubDocument<AssDocumentType, AssSubDocument>;
 
 private:
-    QVector<std::shared_ptr<Line>> lines;
+    QVector<Ass::LinePtr> lines;
 };
 
+}
+
 #endif // VIVY_CRTP_DOCUMENT_H
diff --git a/src/Document/VivyDocument.cc b/src/Document/VivyDocument.cc
index 730fa96061a5d26077ae4cec9d71da428242ab18..caf5b2850fa0d63148a203197f31377bbff573ab 100644
--- a/src/Document/VivyDocument.cc
+++ b/src/Document/VivyDocument.cc
@@ -5,6 +5,8 @@
 #include <QString>
 #include <QStringList>
 
+using namespace Vivy;
+
 VivyDocument::VivyDocument(const QString &name, bool default_)
     : documentName(name)
     , untouchedDefault(default_)
diff --git a/src/Document/VivyDocument.hh b/src/Document/VivyDocument.hh
index f517a8ac9e63de8172b7cef9a166cddd38e8ce59..3811148fd26977076bca064e06460bed81db9dfd 100644
--- a/src/Document/VivyDocument.hh
+++ b/src/Document/VivyDocument.hh
@@ -12,6 +12,8 @@
 #include <QString>
 #include <QDir>
 
+namespace Vivy
+{
 class VivyDocument {
 public:
     enum Capabilities : quint64 {
@@ -62,4 +64,6 @@ public:
     void setAssSubDocument(const QString) noexcept;
 };
 
+}
+
 #endif // VIVY_DOCUMENT_H
diff --git a/src/Document/VivyDocumentStore.cc b/src/Document/VivyDocumentStore.cc
index 834674b94c71838a6ec48255bcdcf6666a6a4184..788f2f2e1b7b16e29b7ed577f91babba8f957e60 100644
--- a/src/Document/VivyDocumentStore.cc
+++ b/src/Document/VivyDocumentStore.cc
@@ -3,6 +3,8 @@
 
 #include <stdexcept>
 
+using namespace Vivy;
+
 std::weak_ptr<VivyDocument>
 VivyDocumentStore::loadDocument(const QString &file)
 {
diff --git a/src/Document/VivyDocumentStore.hh b/src/Document/VivyDocumentStore.hh
index 03d80a8224c1c3bed654972c34934db4f7db6e12..09205af6481222a18f7805f78642a911361e714e 100644
--- a/src/Document/VivyDocumentStore.hh
+++ b/src/Document/VivyDocumentStore.hh
@@ -8,6 +8,8 @@
 #include <QString>
 #include <memory>
 
+namespace Vivy
+{
 class VivyDocumentStore final {
     VIVY_UNMOVABLE_OBJECT(VivyDocumentStore)
 
@@ -35,4 +37,6 @@ private:
     static inline const QString newDocumentBaseName = "Untitled ";
 };
 
+}
+
 #endif // VIVY_DOCUMENTSTORE_H
diff --git a/src/Main.cc b/src/Main.cc
index f38c9179a6f428972484bb6315f968a6417e8285..a47f666cb968d8660d79a11b5ea67ce82d941b27 100644
--- a/src/Main.cc
+++ b/src/Main.cc
@@ -4,5 +4,5 @@
 int
 main(int argc, char **argv) noexcept
 {
-    return VivyApplication(argc, argv).exec();
+    return Vivy::VivyApplication(argc, argv).exec();
 }
diff --git a/src/MainWindow.cc b/src/MainWindow.cc
index 37b5135ff0e6733c10420bda5543e75f359f5780..43b18086a61c39e9e7204e2de4fc1e59d241db67 100644
--- a/src/MainWindow.cc
+++ b/src/MainWindow.cc
@@ -34,6 +34,8 @@
 
 #define ACTION_ADD_SHORTCUT(action, shortcut) action##Act->setShortcut(shortcut);
 
+using namespace Vivy;
+
 MainWindow::MainWindow(QWidget *parent) noexcept
     : QMainWindow(parent)
 {
diff --git a/src/MainWindow.hh b/src/MainWindow.hh
index df16b421e26ff0d587cb62e20848a7eb0a6f9715..a2784f4308294ed9660f4972339b19fff7d16a3b 100644
--- a/src/MainWindow.hh
+++ b/src/MainWindow.hh
@@ -12,6 +12,9 @@
 class QMenu;
 class QAction;
 class QTabWidget;
+
+namespace Vivy
+{
 class VivyApplication;
 
 class MainWindow final : public QMainWindow {
@@ -40,4 +43,6 @@ private slots:
     void openDialogHelp() noexcept;
 };
 
+}
+
 #endif // VIVY_MAINWINDOW_H
diff --git a/src/TimingBar.cc b/src/TimingBar.cc
index f06780335387760a26aa4cf08b17bd0868e95869..9353c174b4b778aff7fcc129f627b6863d69891a 100644
--- a/src/TimingBar.cc
+++ b/src/TimingBar.cc
@@ -10,6 +10,8 @@
 #include <QScrollBar>
 #include <QVBoxLayout>
 
+using namespace Vivy;
+
 TimingBar::TimingBar(QLine line, QColor color) noexcept
     : QGraphicsLineItem(line)
 {
diff --git a/src/TimingBar.hh b/src/TimingBar.hh
index 7942b7d24867ec9e022e21e3d373217c865cfe66..3dcd5fd0819682a7f81a768266b809ffecdd1e83 100644
--- a/src/TimingBar.hh
+++ b/src/TimingBar.hh
@@ -9,6 +9,8 @@
 #include <QGraphicsItem>
 #include <QGraphicsLineItem>
 
+namespace Vivy
+{
 class TimingBar final : public QGraphicsLineItem {
 public:
     explicit TimingBar(QLine, QColor) noexcept;
@@ -27,4 +29,6 @@ protected:
     */
 };
 
+}
+
 #endif // VIVY_TIMING_BAR_H
diff --git a/src/TimingScene.cc b/src/TimingScene.cc
index f540fd86abeda396f5183963eb34b9e1216f534a..3d61703f7833f8d6fd3e87510e86b2627887ef9c 100644
--- a/src/TimingScene.cc
+++ b/src/TimingScene.cc
@@ -13,6 +13,8 @@
 #include <QScrollBar>
 #include <QVBoxLayout>
 
+using namespace Vivy;
+
 TimingScene::TimingScene(QWidget *parent) noexcept
     : QGraphicsScene(parent)
 {
diff --git a/src/TimingScene.hh b/src/TimingScene.hh
index b14b33eb5ef39c5fe3d5c64c717e5c35e37693a2..53bb00adb220b4ac63afcba919bb40130291e968 100644
--- a/src/TimingScene.hh
+++ b/src/TimingScene.hh
@@ -1,7 +1,7 @@
 #ifndef VIVY_TIMING_SCENE_H
 #define VIVY_TIMING_SCENE_H
 
-#include "Ass/Line.hh"
+#include "Ass/Ass.hh"
 #include "TimingBar.hh"
 
 #include <QWidget>
@@ -13,6 +13,8 @@
 
 class QGraphicsPixmapItem;
 
+namespace Vivy
+{
 class TimingScene final : public QGraphicsScene {
     Q_OBJECT
 
@@ -32,7 +34,7 @@ private:
     QGraphicsPixmapItem *backgroundImg{ nullptr };
     QImage img;
     quint64 soundLength{ 0 };
-    std::weak_ptr<Line> currentLine{};
+    Ass::LineWeakPtr currentLine{};
     TimingMode timingMode{ TimingMode::Line };
 
 public:
@@ -46,6 +48,8 @@ private:
 public slots:
 };
 
+}
+
 //Only if combinaisons of mode is allowed, it shouldn't be here
 //Q_DECLARE_OPERATORS_FOR_FLAGS(TimingScene::TimingModes)
 
diff --git a/src/TimingView.cc b/src/TimingView.cc
index b17b6eda6569b51be6fb2919c3daafe8260665d5..b176c3d2f879f4ac5f67f098cb7ced74f10abf95 100644
--- a/src/TimingView.cc
+++ b/src/TimingView.cc
@@ -15,6 +15,8 @@
 
 #define TO_ADD_TO_IMAGE_HEIGHT 2 /* Used for alignement */
 
+using namespace Vivy;
+
 TimingView::TimingView(QImage img, quint64 soundLength, QWidget *parent) noexcept
     : QGraphicsView(parent)
 {
diff --git a/src/TimingView.hh b/src/TimingView.hh
index 6aa50a6357ffdb73bbd607650b98aef02ebe904a..be10d5b924a6b2a3189a079469e929c859ca372f 100644
--- a/src/TimingView.hh
+++ b/src/TimingView.hh
@@ -15,6 +15,8 @@
 
 class QGraphicsPixmapItem;
 
+namespace Vivy
+{
 class TimingView final : public QGraphicsView {
     Q_OBJECT
 
@@ -32,4 +34,6 @@ public slots:
     void mousePressEvent(QMouseEvent *event) noexcept;
 };
 
+}
+
 #endif // VIVY_TIMING_VIEW_H
diff --git a/src/Utils.cc b/src/Utils.cc
index 6fab4a1824834a24de9fb203ace710047420dfc1..b49fa9ee2ee3e2ce33226cba8797f5d028ca754a 100644
--- a/src/Utils.cc
+++ b/src/Utils.cc
@@ -2,20 +2,22 @@
 
 #include <QFileInfo>
 
+using namespace Vivy;
+
 bool
-Vivy::Utils::detectDocumentType(const QFileInfo &file, DocumentType *type)
+Utils::detectDocumentType(const QFileInfo &file, DocumentType *type)
 {
     const QString suffix = file.suffix();
 
-    if (Vivy::Utils::audioFileSuffix.contains(suffix, Qt::CaseInsensitive)) {
+    if (Utils::audioFileSuffix.contains(suffix, Qt::CaseInsensitive)) {
         *type = DocumentType::Audio;
         return true;
     }
-    if (Vivy::Utils::videoFileSuffix.contains(suffix, Qt::CaseInsensitive)) {
+    if (Utils::videoFileSuffix.contains(suffix, Qt::CaseInsensitive)) {
         *type = DocumentType::Video;
         return true;
     }
-    if (Vivy::Utils::assFileSuffix.contains(suffix, Qt::CaseInsensitive)) {
+    if (Utils::assFileSuffix.contains(suffix, Qt::CaseInsensitive)) {
         *type = DocumentType::ASS;
         return true;
     }
diff --git a/src/VivyApplication.cc b/src/VivyApplication.cc
index bbcb1a5b824ca6fc1a0082a1aba6c2ce0afabf53..a5fe158a8d05d63de5eb02951c23334d222dcc72 100644
--- a/src/VivyApplication.cc
+++ b/src/VivyApplication.cc
@@ -1,6 +1,8 @@
 #include "VivyApplication.hh"
 #include "MainWindow.hh"
 
+using namespace Vivy;
+
 VivyApplication::VivyApplication(int argc, char **argv)
     : QApplication(argc, argv)
 {
diff --git a/src/VivyApplication.hh b/src/VivyApplication.hh
index fe22263ffb04f351ce7181effb54e774873ec5d8..a9c86f1af90abf19288fd7f1a54fb7a3e4cf5343 100644
--- a/src/VivyApplication.hh
+++ b/src/VivyApplication.hh
@@ -12,6 +12,8 @@
 #include "Document/VivyDocumentStore.hh"
 #include <memory>
 
+namespace Vivy
+{
 class MainWindow;
 
 class VivyApplication : public QApplication {
@@ -28,4 +30,6 @@ public:
     int exec() noexcept;
 };
 
+}
+
 #endif // VIVY_APPLICATION_H
diff --git a/src/VivyDocumentView.cc b/src/VivyDocumentView.cc
index d1beff35d2795957da7485b45eafaa1b3dc6d524..368468f9c2372dce029917c81ffeb4b936968808 100644
--- a/src/VivyDocumentView.cc
+++ b/src/VivyDocumentView.cc
@@ -4,6 +4,8 @@
 
 #include <QVBoxLayout>
 
+using namespace Vivy;
+
 VivyDocumentView::VivyDocumentView(std::weak_ptr<VivyDocument> docWeak, QWidget *parent) noexcept
     : QWidget(parent)
     , document(docWeak)
diff --git a/src/VivyDocumentView.hh b/src/VivyDocumentView.hh
index a3acfbe795c7d897c10595adebac4032443498b5..a1c016022b9c6c68c5fc99eb18c08b947a699e0e 100644
--- a/src/VivyDocumentView.hh
+++ b/src/VivyDocumentView.hh
@@ -10,6 +10,8 @@
 
 #include <QWidget>
 
+namespace Vivy
+{
 class VivyDocumentView final : public QWidget {
     Q_OBJECT
 
@@ -25,4 +27,6 @@ private:
     void loadAudioView(std::shared_ptr<VivyDocument>) noexcept;
 };
 
+}
+
 #endif // VIVY_DOCUMENTVIEW_H