diff --git a/inc/Vivy/AudioVisualizer.h b/inc/Vivy/AudioVisualizer.h
index b2f93e7301eb891e1dc6f444d2fbc1bbc398cbd1..9b14e7b34541d99c62121d5e3a78eaa5525ac292 100644
--- a/inc/Vivy/AudioVisualizer.h
+++ b/inc/Vivy/AudioVisualizer.h
@@ -2,12 +2,6 @@
 #define VIVY_AUDIOVISUALIZER_H
 
 #include <QWidget>
-#include <QLabel>
-#include <QScrollArea>
-#include <QVBoxLayout>
-#include <QScrollBar>
-#include <QMessageBox>
-#include <QGraphicsPixmapItem>
 
 #include <Vivy/Timer.h>
 
diff --git a/inc/Vivy/MainWindow.h b/inc/Vivy/MainWindow.h
index eed9f5b4cc19849f6a001bedb323efd160e02887..91509b344f9622bcf4afbd88377107939e56230b 100644
--- a/inc/Vivy/MainWindow.h
+++ b/inc/Vivy/MainWindow.h
@@ -2,16 +2,11 @@
 #define VIVY_MAINWINDOW_H
 
 #include <QMainWindow>
-#include <QMenuBar>
-#include <QStatusBar>
-#include <QFileDialog>
-#include <QMessageBox>
-#include <QVBoxLayout>
-#include <QPixmap>
-#include <QImage>
-
 #include <Vivy/AudioVisualizer.h>
 
+class QMenu;
+class QAction;
+
 class MainWindow : public QMainWindow {
     Q_OBJECT
 
diff --git a/inc/Vivy/Timer.h b/inc/Vivy/Timer.h
index a97606c63764eb56dd1157d37682257c282bcfba..7bc6d473a5216009a28c7640319947c8a8905808 100644
--- a/inc/Vivy/Timer.h
+++ b/inc/Vivy/Timer.h
@@ -2,37 +2,30 @@
 #define VIVY_TIMER_H
 
 #include <QWidget>
-#include <QLabel>
-#include <QScrollArea>
-#include <QVBoxLayout>
-#include <QScrollBar>
-#include <QMessageBox>
-#include <QMouseEvent>
-#include <QPainter>
 #include <QColor>
-#include <QGraphicsView>
 #include <QVector>
-#include <QGraphicsLineItem>
-#include <QGraphicsPixmapItem>
+#include <QGraphicsView>
 
 #include <Vivy/TimingBar.h>
 
-class Timer : public QGraphicsView {
+class QGraphicsPixmapItem;
+
+class Timer final : public QGraphicsView {
     Q_OBJECT
 
 public:
+    static inline constexpr QColor startColour = QColor(127, 0, 127);
+    static inline constexpr QColor endColour   = QColor(0, 127, 0);
+
     Timer(QImage img, QWidget *parent = nullptr);
     ~Timer() = default;
 
-    QPainter painter;
+private:
     QGraphicsPixmapItem *bg = nullptr;
     QGraphicsScene *scene   = new QGraphicsScene;
-    QColor startColour      = QColor(127, 0, 127);
-    QColor endColour        = QColor(0, 127, 0);
     QImage img;
     QVector<QLine> lines;
 
-protected:
     void mousePressEvent(QMouseEvent *event);
 
 public slots:
diff --git a/inc/Vivy/TimingBar.h b/inc/Vivy/TimingBar.h
index 0b3420715cf47dea7908be88cbaf59c0b4ba4761..d43fddadeb3902f61c4de74f844fca976f2c6e0b 100644
--- a/inc/Vivy/TimingBar.h
+++ b/inc/Vivy/TimingBar.h
@@ -2,17 +2,8 @@
 #define VIVY_TIMING_BAR_H
 
 #include <QWidget>
-#include <QLabel>
-#include <QScrollArea>
-#include <QVBoxLayout>
-#include <QScrollBar>
-#include <QMessageBox>
-#include <QMouseEvent>
 #include <QGraphicsItem>
 #include <QGraphicsLineItem>
-#include <QPen>
-#include <QGraphicsSceneMouseEvent>
-#include <QApplication>
 
 class TimingBar : public QGraphicsLineItem {
 public:
diff --git a/src/AudioVisualizer.cc b/src/AudioVisualizer.cc
index 680b1e08495ca11c5e0eb906c5ca05d6af5fac1c..8de3f03ce05d8b200ee997ac2ddbe5144d45966d 100644
--- a/src/AudioVisualizer.cc
+++ b/src/AudioVisualizer.cc
@@ -1,5 +1,12 @@
 #include <Vivy/AudioVisualizer.h>
 
+#include <QLabel>
+#include <QScrollArea>
+#include <QVBoxLayout>
+#include <QScrollBar>
+#include <QMessageBox>
+#include <QGraphicsPixmapItem>
+
 AudioVisualizer::AudioVisualizer(QWidget *parent)
     : QWidget(parent)
 {
diff --git a/src/Main.cc b/src/Main.cc
index f9ea4198c5cf74cb258fe1c4952ad57dc723cac1..22dc17c1fdab49f3ddbaf3b96985c97c62209d3a 100644
--- a/src/Main.cc
+++ b/src/Main.cc
@@ -2,7 +2,7 @@
 #include <QApplication>
 
 int
-main(int argc, char *argv[])
+main(int argc, char **argv)
 {
     QApplication app(argc, argv);
     MainWindow window;
diff --git a/src/MainWindow.cc b/src/MainWindow.cc
index 60b558261e707c3dc07257ebf31a45a358415f52..af9926e185d31b19e2ba1d42ea48f01b0c23df00 100644
--- a/src/MainWindow.cc
+++ b/src/MainWindow.cc
@@ -4,6 +4,13 @@
 #include <cstring>
 #include <cstdio>
 #include <QStandardPaths>
+#include <QPixmap>
+#include <QVBoxLayout>
+#include <QMessageBox>
+#include <QFileDialog>
+#include <QStatusBar>
+#include <QMenuBar>
+#include <QImage>
 
 extern "C" {
 #include <libavutil/opt.h>
diff --git a/src/Timer.cc b/src/Timer.cc
index ff104249d55d390eaf7c127465782b47d23c902c..b964c9530b5c3ebb5c20c32defdb82c8020255d4 100644
--- a/src/Timer.cc
+++ b/src/Timer.cc
@@ -1,5 +1,16 @@
 #include <Vivy/Timer.h>
 
+#include <QLabel>
+#include <QGraphicsLineItem>
+#include <QGraphicsView>
+#include <QGraphicsPixmapItem>
+#include <QScrollArea>
+#include <QVBoxLayout>
+#include <QScrollBar>
+#include <QMessageBox>
+#include <QMouseEvent>
+#include <QPainter>
+
 #define TO_ADD_TO_IMAGE_HEIGHT 2 /* Used for alignement */
 
 Timer::Timer(QImage img, QWidget *parent)
diff --git a/src/TimingBar.cc b/src/TimingBar.cc
index ecb77e50dfdd861dfaf5e4e8239bb2f86dba5245..a650270669bbaaa530225542676c98c87174098f 100644
--- a/src/TimingBar.cc
+++ b/src/TimingBar.cc
@@ -1,5 +1,15 @@
 #include <Vivy/TimingBar.h>
 
+#include <QLabel>
+#include <QScrollArea>
+#include <QPen>
+#include <QMessageBox>
+#include <QMouseEvent>
+#include <QGraphicsSceneMouseEvent>
+#include <QApplication>
+#include <QVBoxLayout>
+#include <QScrollBar>
+
 #define BAR_WIDTH      4
 #define BAR_DEMI_WIDTH ((int)(BAR_WIDTH / 2))