diff --git a/GUI/Model/Model/JobModel.cpp b/GUI/Model/Model/JobModel.cpp
index 2e0c218a665ddc507d8357307f967c42ec413d77..9208e65125f7ee573625e1290d7ea918c795a0d6 100644
--- a/GUI/Model/Model/JobModel.cpp
+++ b/GUI/Model/Model/JobModel.cpp
@@ -13,22 +13,14 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Model/JobModel.h"
-#include "GUI/Model/Data/IntensityDataItem.h"
-#include "GUI/Model/Data/RealItem.h"
-#include "GUI/Model/Data/SpecularDataItem.h"
 #include "GUI/Model/Device/InstrumentItems.h"
 #include "GUI/Model/Device/PointwiseAxisItem.h"
 #include "GUI/Model/Job/FitSuiteItem.h"
-#include "GUI/Model/Job/JobItem.h"
-#include "GUI/Model/Model/JobQueueData.h"
 #include "GUI/Model/Model/ParameterTreeUtils.h"
 #include "GUI/Model/Model/SessionXML.h"
 #include "GUI/Model/Sample/ItemWithMaterial.h"
 #include "GUI/Model/Sample/MultiLayerItem.h"
-
-#include "GUI/Support/Data/SessionFlags.h"
 #include "GUI/Support/XML/UtilXML.h"
-
 #include "GUI/Util/Error.h"
 
 namespace {
@@ -46,19 +38,13 @@ const QString JobNameAttribute("name");
 
 JobModel::JobModel(QObject* parent)
     : SessionModel(GUI::Session::XML::JobModelTag, parent)
-    , m_queue_data(nullptr)
 {
-    m_queue_data = new JobQueueData(this);
-    connect(m_queue_data, &JobQueueData::focusRequest, this, &JobModel::focusRequest);
-    connect(m_queue_data, &JobQueueData::globalProgress, this, &JobModel::globalProgress);
+    m_queue_data = std::make_unique<JobQueueData>(this);
+    connect(m_queue_data.get(), &JobQueueData::focusRequest, this, &JobModel::focusRequest);
+    connect(m_queue_data.get(), &JobQueueData::globalProgress, this, &JobModel::globalProgress);
     setObjectName(GUI::Session::XML::JobModelTag);
 }
 
-JobModel::~JobModel()
-{    
-    delete m_queue_data;
-}
-
 JobItem* JobModel::getJobItemForIdentifier(const QString& identifier)
 {
     for (auto* jobItem : jobItems())
diff --git a/GUI/Model/Model/JobModel.h b/GUI/Model/Model/JobModel.h
index e99481475e6e8a25d40bdd81aaeb6bf27af52800..ace8c12564ae5b972665e01a58121be17332d952 100644
--- a/GUI/Model/Model/JobModel.h
+++ b/GUI/Model/Model/JobModel.h
@@ -16,10 +16,10 @@
 #define BORNAGAIN_GUI_MODEL_MODEL_JOBMODEL_H
 
 #include "GUI/Model/Model/SessionModel.h"
+#include "GUI/Model/Model/JobQueueData.h"
+#include "GUI/Model/Job/JobItem.h"
 
 class InstrumentItem;
-class JobItem;
-class JobQueueData;
 class MultiLayerItem;
 class RealItem;
 class DataItem;
@@ -32,7 +32,6 @@ class JobModel : public SessionModel {
 
 public:
     explicit JobModel(QObject* parent = nullptr);
-    ~JobModel() override;
 
     JobItem* getJobItemForIdentifier(const QString& identifier);
 
@@ -66,7 +65,7 @@ signals:
 private:
     //! generates numbered job name with new/unused number
     QString generateJobName();
-    JobQueueData* m_queue_data;
+    std::unique_ptr<JobQueueData> m_queue_data;
 #ifdef NEW_JOB_MODEL
     std::vector<std::unique_ptr<JobItem>> m_jobItems;
 #endif