diff --git a/Core/module.h b/Core/module.h
index 9cffe8b6fafafdccc58e405b13bc98c1d315dea4..07507d0a4c103f79cd2992451e4b75fd2c139e15 100644
--- a/Core/module.h
+++ b/Core/module.h
@@ -1,31 +1,32 @@
 #ifndef MODULE_H
 #define MODULE_H
 
-
 #include <QObject>
-#include "skywardhubcore.h"
-#include "moduleeventshandler.h"
+
 #include "Core/xmlobject.h"
+#include "moduleeventshandler.h"
+#include "skywardhubcore.h"
 
-class Module {
-  public:
+class Module
+{
+public:
     Module();
     virtual ~Module();
 
-    virtual void initialize(const XmlObject &params);
-    virtual QWidget* toWidget() = 0;
-    virtual XmlObject toXmlObject() = 0;
-    virtual void fromXmlObject(const XmlObject &xmlObject) = 0;
+    virtual void initialize(const XmlObject& params);
+    virtual QWidget* toWidget()                            = 0;
+    virtual XmlObject toXmlObject()                        = 0;
+    virtual void fromXmlObject(const XmlObject& xmlObject) = 0;
 
-    //ModulesManagerProxy& getModuleManager();
+    // ModulesManagerProxy& getModuleManager();
     SkywardHubCoreProxy& getCore();
     ModuleEventsHandler* getModuleEventsHandler();
 
-  protected:
-    //virtual void onManagerSetted(ModulesManager *manager);
+protected:
+    // virtual void onManagerSetted(ModulesManager *manager);
 
-  private:
+private:
     SkywardHubCoreProxy coreProxy;
     ModuleEventsHandler eventsHandler;
 };
-#endif // MODULE_H
+#endif  // MODULE_H
diff --git a/Modules/Mavlink/mavlinkmodule.cpp b/Modules/Mavlink/mavlinkmodule.cpp
index 9f229c79535e1c34f6a5f61952113629df0f4a21..9ff74b90a39f9690ca12fac033c68c2eed2beddf 100644
--- a/Modules/Mavlink/mavlinkmodule.cpp
+++ b/Modules/Mavlink/mavlinkmodule.cpp
@@ -8,22 +8,13 @@
 #include "Modules/skywardhubstrings.h"
 #include "ui_mavlinkmodule.h"
 
-MavlinkModule::MavlinkModule(QWidget* parent)
-    : DefaultModule(parent), ui(new Ui::MavlinkModule), mavlinkReader(this),
-      serialPort(this)
+MavlinkModule::MavlinkModule(QWidget *parent)
+    : DefaultModule(parent), mavlinkReader(this), serialPort(this)
 {
-    ui->setupUi(this);
+    setupUi();
     defaultContextMenuSetup();
-
     initializeSerialPortView();
 
-    ui->startStopButtonLayout->insertWidget(0, &startSerialStreamToggleButton);
-    connect(&startSerialStreamToggleButton, &ToggleButton::toggled, this,
-            &MavlinkModule::onStartStreamToggled);
-    connect(ui->openLogFolderButton, &QPushButton::clicked, this,
-            &MavlinkModule::onOpenLogFolderClick);
-
-    qRegisterMetaType<ModuleMessage>();
     connect(&mavlinkReader, &MavlinkReader::msgReceived, this,
             &MavlinkModule::onMsgReceived);
     connect(&linkQualityTimer, &QTimer::timeout, this,
@@ -33,89 +24,54 @@ MavlinkModule::MavlinkModule(QWidget* parent)
 
     getCore()->getModuleMessagesBroker()->subscribe(
         {SkywardHubStrings::commandsTopic + "/*"}, this,
-        [this](const ModuleMessage& msg) { onCommandReceived(msg); });
+        [this](const ModuleMessage &msg) { onCommandReceived(msg); });
 }
 
 MavlinkModule::~MavlinkModule()
 {
-    mavlinkReader.stopReading();
-    delete ui;
     onStopClicked();
+
+    delete portsLabel;
+    delete portsComboBox;
+    delete baudrateLabel;
+    delete baudrateComboBox;
+    delete startToggleButton;
+    delete rateLabel;
+    delete logCheckBox;
+    delete openLogFolderButton;
 }
 
-QWidget* MavlinkModule::toWidget() { return this; }
+QWidget *MavlinkModule::toWidget() { return this; }
 
 XmlObject MavlinkModule::toXmlObject()
 {
     XmlObject obj(getName(ModuleId::MAVLINK));
-    obj.addAttribute("BaudRateIndex",
-                     QString::number(ui->comboBoxBaudRate->currentIndex()));
+    obj.addAttribute("serial_port", portsComboBox->currentText());
+    obj.addAttribute("baudrate", baudrateComboBox->currentData().toInt());
+    obj.addAttribute("log_file", logCheckBox->isChecked() ? 1 : 0);
     return obj;
 }
 
-void MavlinkModule::fromXmlObject(const XmlObject& xmlObject)
+void MavlinkModule::fromXmlObject(const XmlObject &obj)
 {
-    if (xmlObject.getObjectName() == getName(ModuleId::MAVLINK))
+    if (obj.getObjectName() == getName(ModuleId::MAVLINK))
     {
-        bool ok;
-        int index = xmlObject.getAttribute("BaudRateIndex").toInt(&ok);
-        if (ok)
-        {
-            ui->comboBoxBaudRate->setCurrentIndex(index);
-        }
+        QString serialPort = obj.getAttribute("serial_port");
+        int baudrate;
+        obj.getAttribute("baudrate", baudrate);
+        int logFile;
+        obj.getAttribute("log_file", logFile);
+
+        portsComboBox->setCurrentText(serialPort);
+        baudrateComboBox->setCurrentText(QString::number(baudrate));
+        logCheckBox->setChecked(logFile != 0);
     }
 }
 
 void MavlinkModule::closePort()
 {
     if (serialPort.isOpen())
-    {
         serialPort.close();
-    }
-}
-
-void MavlinkModule::initializeSerialPortView()
-{
-    // Fill the baud rate combo box
-    ui->comboBoxBaudRate->addItem("115200", QSerialPort::Baud115200);
-    ui->comboBoxBaudRate->addItem("19200", QSerialPort::Baud19200);
-    ui->comboBoxBaudRate->addItem("9600", QSerialPort::Baud9600);
-
-    // Check available port
-    const auto serialPortInfos = QSerialPortInfo::availablePorts();
-
-    for (auto serialPortInfo = serialPortInfos.rbegin();
-         serialPortInfo != serialPortInfos.rend(); serialPortInfo++)
-    {
-        QVariant portName(serialPortInfo->portName());
-        ui->comboBoxSerialPort->addItem(serialPortInfo->portName(), portName);
-    }
-
-    ui->comboBoxSerialPort->setCurrentIndex(0);
-}
-
-bool MavlinkModule::startReadingOnSerialPort()
-{
-    QString portName = ui->comboBoxSerialPort->currentData().toString();
-    bool baudrateOk;
-    int baudRate = ui->comboBoxBaudRate->currentData().toInt(&baudrateOk);
-
-    // Check if the parameters are ok
-    if (!baudrateOk)
-        return false;
-
-    // The serial port should not be already open
-    if (serialPort.isOpen())
-        return true;
-
-    // Open the serial port
-    QSerialPortInfo port(portName);
-    serialPort.setPort(port);
-    serialPort.setBaudRate(baudRate);
-    serialPort.setDataBits(QSerialPort::Data8);
-    serialPort.setParity(QSerialPort::NoParity);
-    serialPort.setStopBits(QSerialPort::OneStop);
-    return serialPort.open(QIODevice::ReadWrite);
 }
 
 void MavlinkModule::onStartClicked()
@@ -128,7 +84,7 @@ void MavlinkModule::onStartClicked()
         mavlinkCommandAdapter.setSerialPort(&serialPort);
 
         // TODO: Allow the checkbox to start and stop the logging
-        if (ui->logEnabledCheckBox->isChecked())
+        if (logCheckBox->isChecked())
             mavlinkReader.openLogFile();
 
         mavlinkReader.startReading();
@@ -147,7 +103,7 @@ void MavlinkModule::onStopClicked()
     closePort();
 }
 
-void MavlinkModule::onMsgReceived(const ModuleMessage& msg)
+void MavlinkModule::onMsgReceived(const ModuleMessage &msg)
 {
     msgArrived++;
     getCore()->getModuleMessagesBroker()->publish(msg);
@@ -164,17 +120,8 @@ void MavlinkModule::onStartStreamToggled(bool state)
 void MavlinkModule::onLinkQualityTimerTick()
 {
     float ratio = (float)msgArrived / linkQualityPeriod * 1000.0;
-    updateLinkSignalIndicator(msgArrived, ratio);
-    msgArrived = 0;
-}
-
-void MavlinkModule::updateLinkSignalIndicator(int msgArrived, float ratio)
-{
-    ui->rateText->setText(QString::number(ratio));
-    ModuleMessage linkQuality(SkywardHubStrings::mavlink_quality_link_topic);
-    linkQuality.setField("ReceivedMsgNumber", {QString::number(msgArrived)});
-    linkQuality.setField("ReceivedRatio", {QString::number(ratio)});
-    getCore()->getModuleMessagesBroker()->publish(linkQuality);
+    msgArrived  = 0;
+    rateLabel->setText("Rate: " + QString::number(ratio) + " msg/s");
 }
 
 void MavlinkModule::onOpenLogFolderClick()
@@ -192,7 +139,7 @@ void MavlinkModule::onOpenLogFolderClick()
     }
 }
 
-void MavlinkModule::onCommandReceived(const ModuleMessage& msg)
+void MavlinkModule::onCommandReceived(const ModuleMessage &msg)
 {
     mavlink_message_t encoded_mvl_msg;
     if (!mavlinkCommandAdapter.encodeCommand(msg, encoded_mvl_msg))
@@ -218,3 +165,96 @@ void MavlinkModule::onCommandReceived(const ModuleMessage& msg)
         getCore()->getModuleMessagesBroker()->publish(confirmationMsg);
     }
 }
+
+void MavlinkModule::setupUi()
+{
+    QHBoxLayout *outerLayout = new QHBoxLayout;
+    outerLayout->setContentsMargins(6, 0, 6, 0);
+
+    portsLabel = new QLabel("Available ports:");
+    portsLabel->setSizePolicy(
+        QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
+    outerLayout->addWidget(portsLabel);
+
+    portsComboBox = new QComboBox;
+    portsComboBox->setSizePolicy(
+        QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
+    outerLayout->addWidget(portsComboBox);
+
+    baudrateLabel = new QLabel("Baudrate:");
+    baudrateLabel->setSizePolicy(
+        QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
+    outerLayout->addWidget(baudrateLabel);
+
+    baudrateComboBox = new QComboBox;
+    baudrateComboBox->setSizePolicy(
+        QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
+    outerLayout->addWidget(baudrateComboBox);
+
+    startToggleButton = new ToggleButton;
+    startToggleButton->setSizePolicy(
+        QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
+    outerLayout->addWidget(startToggleButton);
+    connect(startToggleButton, &ToggleButton::toggled, this,
+            &MavlinkModule::onStartStreamToggled);
+
+    spacer = new QSpacerItem(0, 10000, QSizePolicy::Expanding,
+                             QSizePolicy::Expanding);
+    outerLayout->addSpacerItem(spacer);
+
+    rateLabel = new QLabel("Rate: 0 msg/s");
+    rateLabel->setSizePolicy(
+        QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
+    outerLayout->addWidget(rateLabel);
+
+    logCheckBox = new QCheckBox("Enable log");
+    logCheckBox->setSizePolicy(
+        QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
+    outerLayout->addWidget(logCheckBox);
+
+    openLogFolderButton = new QPushButton("Log folder");
+    openLogFolderButton->setSizePolicy(
+        QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
+    outerLayout->addWidget(openLogFolderButton);
+    connect(openLogFolderButton, &QPushButton::clicked, this,
+            &MavlinkModule::onOpenLogFolderClick);
+
+    setLayout(outerLayout);
+}
+
+void MavlinkModule::initializeSerialPortView()
+{
+    const auto serialPortInfos = QSerialPortInfo::availablePorts();
+    for (auto serialPortInfo : serialPortInfos)
+        portsComboBox->addItem(serialPortInfo.portName());
+
+    // portsComboBox->setCurrentIndex(0);
+
+    baudrateComboBox->addItem("115200", QSerialPort::Baud115200);
+    baudrateComboBox->addItem("19200", QSerialPort::Baud19200);
+    baudrateComboBox->addItem("9600", QSerialPort::Baud9600);
+}
+
+bool MavlinkModule::startReadingOnSerialPort()
+{
+    QString portName = portsComboBox->currentText();
+    bool baudrateOk;
+    int baudRate = baudrateComboBox->currentData().toInt(&baudrateOk);
+
+    // Check if the parameters are ok
+    if (!baudrateOk)
+        return false;
+
+    // The serial port should not be already open
+    if (serialPort.isOpen())
+        return true;
+
+    // Open the serial port
+    QSerialPortInfo port(portName);
+    serialPort.setPort(port);
+    serialPort.setBaudRate(baudRate);
+    serialPort.setDataBits(QSerialPort::Data8);
+    serialPort.setParity(QSerialPort::NoParity);
+    serialPort.setStopBits(QSerialPort::OneStop);
+    return serialPort.open(QIODevice::ReadWrite);
+}
diff --git a/Modules/Mavlink/mavlinkmodule.h b/Modules/Mavlink/mavlinkmodule.h
index ed1931e66593aef1bd729ed6c1b9a4d6bdfae1ab..e8e74e8c74f12922ccba06a2b635b8318e5006ce 100644
--- a/Modules/Mavlink/mavlinkmodule.h
+++ b/Modules/Mavlink/mavlinkmodule.h
@@ -40,31 +40,39 @@ public slots:
     void onLinkQualityTimerTick();
 
 protected:
-    void initializeSerialPortView();
-
     mavlink_message_t parseMavlinkMsg(char *buffer, int readCount);
 
     void closePort();
     void updateLinkSignalIndicator();
 
-    void updateLinkSignalIndicator(int msgArrived, float ratio);
     void onOpenLogFolderClick();
 
 private slots:
-    bool startReadingOnSerialPort();
     void onStartStreamToggled(bool state);
 
 private:
-    Ui::MavlinkModule *ui;
+    void setupUi();
+    void initializeSerialPortView();
+    bool startReadingOnSerialPort();
 
     ToggleButton startSerialStreamToggleButton;
     MavlinkReader mavlinkReader;
     MavlinkCommandAdapter mavlinkCommandAdapter;
     QSerialPort serialPort;
 
+    QLabel *portsLabel;
+    QComboBox *portsComboBox;
+    QLabel *baudrateLabel;
+    QComboBox *baudrateComboBox;
+    ToggleButton *startToggleButton;
+    QSpacerItem *spacer;
+    QLabel *rateLabel;
+    QCheckBox *logCheckBox;
+    QPushButton *openLogFolderButton;
+
     QTimer linkQualityTimer;
-    int linkQualityPeriod = 2000;  // [ms]
-    int msgArrived        = 0;
+    const int linkQualityPeriod = 2000;  // [ms]
+    int msgArrived              = 0;
     bool portOpen;
 };
 
diff --git a/Modules/Mavlink/mavlinkmodule.ui b/Modules/Mavlink/mavlinkmodule.ui
deleted file mode 100644
index c2aeaa9efb8ecde91c19e53bc0eebd4eb404712f..0000000000000000000000000000000000000000
--- a/Modules/Mavlink/mavlinkmodule.ui
+++ /dev/null
@@ -1,131 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>MavlinkModule</class>
- <widget class="QWidget" name="MavlinkModule">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>596</width>
-    <height>91</height>
-   </rect>
-  </property>
-  <property name="sizePolicy">
-   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-    <horstretch>0</horstretch>
-    <verstretch>0</verstretch>
-   </sizepolicy>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout" stretch="0">
-   <item>
-    <layout class="QGridLayout" name="gridLayout_2">
-     <item row="1" column="0">
-      <widget class="QComboBox" name="comboBoxSerialPort"/>
-     </item>
-     <item row="0" column="3">
-      <widget class="QCheckBox" name="logEnabledCheckBox">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="text">
-        <string>Enable Log</string>
-       </property>
-       <property name="checked">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="3">
-      <widget class="QPushButton" name="openLogFolderButton">
-       <property name="text">
-        <string>Log Folder</string>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="2">
-      <widget class="QLabel" name="startStopLabel">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="text">
-        <string>Start/Stop</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignBottom|Qt::AlignHCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="QComboBox" name="comboBoxBaudRate"/>
-     </item>
-     <item row="0" column="0">
-      <widget class="QLabel" name="availablePortsLabel">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="text">
-        <string>Available ports</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignBottom|Qt::AlignHCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <widget class="QLabel" name="baudrateLabel">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="text">
-        <string>Baudrate</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignBottom|Qt::AlignHCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="2">
-      <layout class="QHBoxLayout" name="startStopButtonLayout"/>
-     </item>
-     <item row="0" column="4">
-      <widget class="QLabel" name="rateLabel">
-       <property name="text">
-        <string>Rate</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="4">
-      <widget class="QLabel" name="rateText">
-       <property name="text">
-        <string/>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignCenter</set>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/Modules/Splitter/splittermodule.cpp b/Modules/Splitter/splittermodule.cpp
index 0b1d7e300c65d0755fa8e200ca9d38f64dac6df6..5c691be1c1cc00970947269899fcde338e1f79d2 100644
--- a/Modules/Splitter/splittermodule.cpp
+++ b/Modules/Splitter/splittermodule.cpp
@@ -5,23 +5,17 @@
 
 #include "Components/ContextMenuSeparator/contextmenuseparator.h"
 #include "Core/modulesmanager.h"
-#include "ui_splittermodule.h"
 
-SplitterModule::SplitterModule(Qt::Orientation orientation)
-    : DefaultModule(), ui(new Ui::SplitterModule)
+SplitterModule::SplitterModule(Qt::Orientation orientation) : DefaultModule()
 {
-    ui->setupUi(this);
+    setupUi(orientation);
     defaultContextMenuSetup();
-    buildUI(orientation);
 }
 
 SplitterModule::~SplitterModule()
 {
-    delete ui;
     while (!childList.isEmpty())
-    {
         delete childList.takeFirst();
-    }
 }
 
 QWidget* SplitterModule::toWidget() { return this; }
@@ -30,17 +24,15 @@ XmlObject SplitterModule::toXmlObject()
 {
     XmlObject obj(getName(ModuleId::SPLITTER));
     QString orientation;
-    if (splitter.orientation() == Qt::Horizontal)
-    {
+    if (splitter->orientation() == Qt::Horizontal)
         orientation = "Horizontal";
-    }
     else
         orientation = "Vertical";
 
     obj.addAttribute("Orientation", orientation);
 
     QString sizesString = "";
-    for (int i : splitter.sizes())
+    for (int i : splitter->sizes())
     {
         sizesString.append(QString::number(i) + ",");
     }
@@ -64,9 +56,9 @@ void SplitterModule::fromXmlObject(const XmlObject& xmlObject)
         if (orientation != "")
         {
             if (orientation == "Horizontal")
-                setOrientation(Qt::Horizontal);
+                splitter->setOrientation(Qt::Horizontal);
             else
-                setOrientation(Qt::Vertical);
+                splitter->setOrientation(Qt::Vertical);
         }
 
         QStringList sizes = xmlObject.getAttribute("Sizes").split(",");
@@ -106,7 +98,7 @@ void SplitterModule::fromXmlObject(const XmlObject& xmlObject)
         }
 
         if (!intSizes.isEmpty())
-            splitter.setSizes(intSizes);
+            splitter->setSizes(intSizes);
     }
 }
 
@@ -116,17 +108,15 @@ void SplitterModule::initialize(const XmlObject& params)
     if (params.getAttribute("Orientation", orientation))
     {
         if (orientation == Qt::Vertical)
-        {
-            setOrientation(Qt::Vertical);
-        }
+            splitter->setOrientation(Qt::Vertical);
         else
-            setOrientation(Qt::Horizontal);
+            splitter->setOrientation(Qt::Horizontal);
     }
 }
 
 void SplitterModule::addModule(Module* module)
 {
-    int count = splitter.count();
+    int count = splitter->count();
     addModule(module, count);
 }
 
@@ -147,45 +137,30 @@ void SplitterModule::addModule(Module* module, int position)
         childList.insert(position, module);
     else
         childList.append(module);
-    splitter.insertWidget(position, module->toWidget());
+
+    splitter->insertWidget(position, module->toWidget());
 }
 
 void SplitterModule::replace(Module* oldModule, Module* newModule)
 {
     if (oldModule != nullptr && newModule != nullptr)
     {
-        int i = splitter.indexOf(oldModule->toWidget());
+        int i = splitter->indexOf(oldModule->toWidget());
         addModule(newModule, i);
-        // oldModule->toWidget()->deleteLater();
     }
 }
 
-void SplitterModule::setOrientation(Qt::Orientation orientation)
-{
-    splitter.setOrientation(orientation);
-}
-
 Qt::Orientation SplitterModule::getOrientation() const
 {
-    return splitter.orientation();
+    return splitter->orientation();
 }
 
 void SplitterModule::swapOrientation()
 {
     if (getOrientation() == Qt::Horizontal)
-        setOrientation(Qt::Vertical);
+        splitter->setOrientation(Qt::Vertical);
     else
-        setOrientation(Qt::Horizontal);
-}
-
-void SplitterModule::buildUI(Qt::Orientation orientation)
-{
-    setOrientation(orientation);
-    splitter.setChildrenCollapsible(false);
-    splitter.setHandleWidth(0);
-    ui->centralGrid->addWidget(&splitter);
-    addModule(getCore()->getModulesManager()->instantiateDefaultModule());
-    addModule(getCore()->getModulesManager()->instantiateDefaultModule());
+        splitter->setOrientation(Qt::Horizontal);
 }
 
 void SplitterModule::addCustomActionsToMenu()
@@ -214,10 +189,27 @@ void SplitterModule::onModuleDelete(Module* module)
         childList.removeAt(index);
     }
 
-    if (splitter.count() == 1)
+    if (splitter->count() == 1)
     {
         // When this method is called, the last module has not been deleted yet,
         // so we have to use "deleteLater" to correctly chain the deletation of
         // module and then the splitter this->deleteLater();
     }
 }
+
+void SplitterModule::setupUi(Qt::Orientation orientation)
+{
+    QVBoxLayout* outerLayout = new QVBoxLayout;
+    outerLayout->setContentsMargins(0, 0, 0, 0);
+
+    splitter = new QSplitter();
+    splitter->setOrientation(orientation);
+    splitter->setChildrenCollapsible(false);
+    splitter->setHandleWidth(0);
+    outerLayout->addWidget(splitter);
+
+    addModule(getCore()->getModulesManager()->instantiateDefaultModule());
+    addModule(getCore()->getModulesManager()->instantiateDefaultModule());
+
+    setLayout(outerLayout);
+}
diff --git a/Modules/Splitter/splittermodule.h b/Modules/Splitter/splittermodule.h
index 73276c0ae5ca99d02ed25b4d7b3795462f16931f..c7b93744b8e7700c8817295b2df1436074074b87 100644
--- a/Modules/Splitter/splittermodule.h
+++ b/Modules/Splitter/splittermodule.h
@@ -1,47 +1,42 @@
 #ifndef SPLITTERMODULE_H
 #define SPLITTERMODULE_H
 
-#include <QWidget>
 #include <QSplitter>
+#include <QWidget>
 
 #include "Core/module.h"
 #include "Modules/DefaultModule/defaultmodule.h"
 
-namespace Ui {
-class SplitterModule;
-}
-
-class SplitterModule : public DefaultModule {
+class SplitterModule : public DefaultModule
+{
     Q_OBJECT
 
-  public:
+public:
     explicit SplitterModule(Qt::Orientation orientation = Qt::Horizontal);
     ~SplitterModule() override;
 
     QWidget *toWidget() override;
+
     XmlObject toXmlObject() override;
     void fromXmlObject(const XmlObject &xmlObject) override;
 
     void initialize(const XmlObject &params) override;
     void addCustomActionsToMenu() override;
 
-
     void addModule(Module *module);
     void addModule(Module *module, int position);
     void replace(Module *oldModule, Module *newModule);
-    void setOrientation(Qt::Orientation orientation);
     Qt::Orientation getOrientation() const;
 
     void swapOrientation();
 
-  protected:
-    void buildUI(Qt::Orientation orientation = Qt::Horizontal);
+protected:
+    void setupUi(Qt::Orientation orientation = Qt::Horizontal);
     void onModuleDelete(Module *module);
 
-  private:
-    Ui::SplitterModule *ui;
-    QSplitter splitter;
-    QList<Module*> childList;
+private:
+    QSplitter *splitter;
+    QList<Module *> childList;
 };
 
-#endif // SPLITTERMODULE_H
+#endif  // SPLITTERMODULE_H
diff --git a/Modules/Splitter/splittermodule.ui b/Modules/Splitter/splittermodule.ui
deleted file mode 100644
index cadbebfe17121f94cd63f2c5d19960725a64c9fe..0000000000000000000000000000000000000000
--- a/Modules/Splitter/splittermodule.ui
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>SplitterModule</class>
- <widget class="QWidget" name="SplitterModule">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>400</width>
-    <height>300</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <property name="spacing">
-    <number>0</number>
-   </property>
-   <property name="leftMargin">
-    <number>0</number>
-   </property>
-   <property name="topMargin">
-    <number>0</number>
-   </property>
-   <property name="rightMargin">
-    <number>0</number>
-   </property>
-   <property name="bottomMargin">
-    <number>0</number>
-   </property>
-   <item>
-    <layout class="QGridLayout" name="centralGrid">
-     <property name="spacing">
-      <number>0</number>
-     </property>
-    </layout>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/Modules/Tabs/tabsmodule.cpp b/Modules/Tabs/tabsmodule.cpp
index d6daaeaa53ea6baf7c273f69ab0802534ec53fe1..656fd5f2a31db6f21232488f19c8349fcc0d9513 100644
--- a/Modules/Tabs/tabsmodule.cpp
+++ b/Modules/Tabs/tabsmodule.cpp
@@ -8,7 +8,6 @@
 
 TabsModule::TabsModule(QWidget* parent) : DefaultModule{parent}
 {
-
     setupUi();
     defaultContextMenuSetup();
 
diff --git a/SkywardHub.pro b/SkywardHub.pro
index bd2e71e719ca89dc814b4eb93b197b42ecff0079..fe27039ddda1a52cfbbb8cd810e92c534f83ddca 100644
--- a/SkywardHub.pro
+++ b/SkywardHub.pro
@@ -128,14 +128,12 @@ FORMS += \
     Modules/Graph/graphmodule.ui \
     Modules/MainWindow/skywardhubmainwindow.ui \
     Modules/MainWindow/window.ui \
-    Modules/Mavlink/mavlinkmodule.ui \
     Modules/Mavlink/mavlinkrocketmsgtestingmodule.ui \
     Modules/OutgoingMessagesViewer/outgoingmessagesviewermodule.ui \
     Modules/SkywardHub/deployerpathpicker.ui \
     Modules/SkywardHub/prefabdialog.ui \
     Modules/SkywardHub/prefabviewelement.ui \
     Modules/SkywardHub/skywardhubmodule.ui \
-    Modules/Splitter/splittermodule.ui \
     Modules/StateViewer/stateviewermodule.ui \
     Modules/Test/testmodule.ui \
     Modules/TimerController/timercontrollermodule.ui \