diff --git a/GUI/Model/BaseItem/JobRealBase.cpp b/GUI/Model/BaseItem/JobRealBase.cpp
deleted file mode 100644
index 453d4a78e66af7f03a604e17c7577baa268c8266..0000000000000000000000000000000000000000
--- a/GUI/Model/BaseItem/JobRealBase.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-//  ************************************************************************************************
-//
-//  BornAgain: simulate and fit reflection and scattering
-//
-//! @file      GUI/Model/BaseItem/JobRealBase.cpp
-//! @brief     Implements class JobRealBase
-//!
-//! @homepage  http://www.bornagainproject.org
-//! @license   GNU General Public License v3 or higher (see COPYING)
-//! @copyright Forschungszentrum Jülich GmbH 2022
-//! @authors   Scientific Computing Group at MLZ (see CITATION, AUTHORS)
-//
-//  ************************************************************************************************
-
-#include "GUI/Model/BaseItem/JobRealBase.h"
-
-JobRealBase::JobRealBase(QObject* parent)
-    : QObject(parent)
-{
-}
-
-JobRealBase::~JobRealBase() = default;
diff --git a/GUI/Model/BaseItem/JobRealBase.h b/GUI/Model/BaseItem/JobRealBase.h
deleted file mode 100644
index f0e518e33eb00ae17327575513193d3e82696748..0000000000000000000000000000000000000000
--- a/GUI/Model/BaseItem/JobRealBase.h
+++ /dev/null
@@ -1,32 +0,0 @@
-//  ************************************************************************************************
-//
-//  BornAgain: simulate and fit reflection and scattering
-//
-//! @file      GUI/Model/BaseItem/JobRealBase.h
-//! @brief     Implements class JobRealBase
-//!
-//! @homepage  http://www.bornagainproject.org
-//! @license   GNU General Public License v3 or higher (see COPYING)
-//! @copyright Forschungszentrum Jülich GmbH 2022
-//! @authors   Scientific Computing Group at MLZ (see CITATION, AUTHORS)
-//
-//  ************************************************************************************************
-
-#ifndef BORNAGAIN_GUI_MODEL_BASEITEM_JOBREALBASE_H
-#define BORNAGAIN_GUI_MODEL_BASEITEM_JOBREALBASE_H
-
-#include "Base/Util/Assert.h"
-#include "Wrap/WinDllMacros.h"
-#include <QObject>
-
-//! This class serves as base class for JobItem and RealItem for passing them as function
-//! arguments.
-
-class JobRealBase : public QObject {
-    Q_OBJECT
-public:
-    explicit JobRealBase(QObject* parent = nullptr);
-    ~JobRealBase() override;
-};
-
-#endif // BORNAGAIN_GUI_MODEL_BASEITEM_JOBREALBASE_H
diff --git a/GUI/Model/Data/RealItem.cpp b/GUI/Model/Data/RealItem.cpp
index e3cab3f599ed7741e662a95e6a4b8943545689d4..d7828bcf0f05496e657487782bc7c233912a9d30 100644
--- a/GUI/Model/Data/RealItem.cpp
+++ b/GUI/Model/Data/RealItem.cpp
@@ -47,7 +47,7 @@ const QString PresentationType("PresentationType");
 
 
 RealItem::RealItem()
-    : JobRealBase()
+    : QObject()
 {
 }
 
diff --git a/GUI/Model/Data/RealItem.h b/GUI/Model/Data/RealItem.h
index f835d18f50a379693d375b375ee1ed3311aca89f..e7f03274190315f76e47eac23df20d66e96a3bd9 100644
--- a/GUI/Model/Data/RealItem.h
+++ b/GUI/Model/Data/RealItem.h
@@ -15,7 +15,6 @@
 #ifndef BORNAGAIN_GUI_MODEL_DATA_REALITEM_H
 #define BORNAGAIN_GUI_MODEL_DATA_REALITEM_H
 
-#include "GUI/Model/BaseItem/JobRealBase.h"
 #include "GUI/Model/Data/DataItem.h"
 #include "GUI/Support/IO/AbstractDataLoader.h"
 
@@ -30,7 +29,7 @@ class SpecularDataItem;
 //! Provides access to experimental data, for display and fitting.
 //! Owns an AbstractDataLoader.
 
-class BA_CORE_API_ RealItem : public JobRealBase {
+class BA_CORE_API_ RealItem : public QObject {
     Q_OBJECT
 
     friend class TestView;
diff --git a/GUI/Model/Job/JobItem.cpp b/GUI/Model/Job/JobItem.cpp
index 28b2b1dd530b933190cc7c6d76f666f1d2bb4e56..4fe9d79fbd7f5e01b72cb3ec0896c84d6a0a56a4 100644
--- a/GUI/Model/Job/JobItem.cpp
+++ b/GUI/Model/Job/JobItem.cpp
@@ -63,7 +63,7 @@ const QString FitSuite("FitSuite");
 } // namespace
 
 JobItem::JobItem()
-    : JobRealBase()
+    : QObject()
     , m_simulationOptionsItem(std::make_unique<SimulationOptionsItem>())
     , m_parameterContainer(std::make_unique<ParameterContainerItem>())
     , m_sampleItem(std::make_unique<SampleItem>())
diff --git a/GUI/Model/Job/JobItem.h b/GUI/Model/Job/JobItem.h
index e79ffd48633c268fea7debe4146398280678e65d..aeab9f5b5dff40ff7bbfdcfc7a857a6adf61bb55 100644
--- a/GUI/Model/Job/JobItem.h
+++ b/GUI/Model/Job/JobItem.h
@@ -15,11 +15,11 @@
 #ifndef BORNAGAIN_GUI_MODEL_JOB_JOBITEM_H
 #define BORNAGAIN_GUI_MODEL_JOB_JOBITEM_H
 
-#include "GUI/Model/BaseItem/JobRealBase.h"
 #include "GUI/Model/CatDevice/InstrumentItemCatalog.h"
 #include "GUI/Model/Descriptor/SelectionProperty.h"
 #include "GUI/Support/Data/JobStatus.h"
 #include "GUI/Support/Data/SimulationOptionsItem.h"
+#include "Wrap/WinDllMacros.h"
 #include <QDateTime>
 #include <optional>
 
@@ -35,7 +35,7 @@ class RealItem;
 class SampleItem;
 class SimulationResult;
 
-class BA_CORE_API_ JobItem : public JobRealBase {
+class BA_CORE_API_ JobItem : public QObject {
     Q_OBJECT
 
 public:
diff --git a/GUI/Model/Job/ParameterTreeItems.cpp b/GUI/Model/Job/ParameterTreeItems.cpp
index d9d32af6b5d4a8742f7d58bc3ffe1aaa90297ef7..ad91c02e075f607138d0ed0b2b7126cf6154a1a2 100644
--- a/GUI/Model/Job/ParameterTreeItems.cpp
+++ b/GUI/Model/Job/ParameterTreeItems.cpp
@@ -13,6 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Job/ParameterTreeItems.h"
+#include "Base/Util/Assert.h"
 #include "GUI/Model/Job/JobItem.h"
 #include "GUI/Model/Sample/MaterialItem.h"
 #include "GUI/Model/Sample/MaterialModel.h"
diff --git a/GUI/Model/Model/FitParameterHelper.cpp b/GUI/Model/Model/FitParameterHelper.cpp
index b129e143c303fd8dd585b6a76e7908f7ad0dd9f9..4212ab1ab10e36522cb0c8ecc21f15e93de5a541 100644
--- a/GUI/Model/Model/FitParameterHelper.cpp
+++ b/GUI/Model/Model/FitParameterHelper.cpp
@@ -13,6 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Model/FitParameterHelper.h"
+#include "Base/Util/Assert.h"
 #include "GUI/Model/Job/JobItem.h"
 #include "GUI/Model/Job/ParameterTreeItems.h"
 
diff --git a/GUI/Model/Model/FitParameterModel.cpp b/GUI/Model/Model/FitParameterModel.cpp
index 0ad59c9b8ea81d4495921da4254a7adc19010583..369f34f63053bc67c07eed8887c862a04435ecf3 100644
--- a/GUI/Model/Model/FitParameterModel.cpp
+++ b/GUI/Model/Model/FitParameterModel.cpp
@@ -13,6 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Model/FitParameterModel.h"
+#include "Base/Util/Assert.h"
 #include "GUI/Model/Job/FitParameterContainerItem.h"
 #include "GUI/Model/Job/FitParameterItem.h"
 #include "GUI/Model/Job/FitParameterLinkItem.h"
diff --git a/GUI/View/Common/DataAccessWidget.cpp b/GUI/View/Common/DataAccessWidget.cpp
index ca6cd6664a2da171862c84a324c981359e886cde..e8725a97543f32a05353735e0de9e7d7766d43fd 100644
--- a/GUI/View/Common/DataAccessWidget.cpp
+++ b/GUI/View/Common/DataAccessWidget.cpp
@@ -24,7 +24,7 @@ DataAccessWidget::DataAccessWidget(QWidget* parent)
 }
 DataAccessWidget::~DataAccessWidget() = default;
 
-void DataAccessWidget::setJobOrRealItem(JobRealBase* item)
+void DataAccessWidget::setJobOrRealItem(QObject* item)
 {
     m_item = item;
     ASSERT(jobItem() || realItem());
@@ -53,7 +53,7 @@ RealItem* DataAccessWidget::realItem() const
     return dynamic_cast<RealItem*>(m_item);
 }
 
-JobRealBase* DataAccessWidget::jobRealBase() const
+QObject* DataAccessWidget::jobRealBase() const
 {
     return m_item;
 }
diff --git a/GUI/View/Common/DataAccessWidget.h b/GUI/View/Common/DataAccessWidget.h
index 5531a460eee6d69423b9dcb9b348dde2f62dbc18..5ad533fc21a13587bfda76f870f8f01e8ce9cb82 100644
--- a/GUI/View/Common/DataAccessWidget.h
+++ b/GUI/View/Common/DataAccessWidget.h
@@ -24,7 +24,7 @@
 //! as a list of items that is required for simultaneous, synchronous work while plotting and
 //! changing their properties.
 
-class JobRealBase;
+class QObject;
 
 class DataAccessWidget : public QWidget {
     Q_OBJECT
@@ -32,7 +32,7 @@ public:
     explicit DataAccessWidget(QWidget* parent = nullptr);
     ~DataAccessWidget() override;
 
-    virtual void setJobOrRealItem(JobRealBase* item);
+    virtual void setJobOrRealItem(QObject* item);
 
     virtual void setFourierItem(IntensityDataItem* fftItem);
 
@@ -40,7 +40,7 @@ public:
 
     JobItem* jobItem() const;
     RealItem* realItem() const;
-    JobRealBase* jobRealBase() const;
+    QObject* jobRealBase() const;
 
     // Access to concrete items:
 
@@ -112,7 +112,7 @@ private:
     template <class T>
     QList<T*> allDataItems() const;
 
-    JobRealBase* m_item;
+    QObject* m_item;
     IntensityDataItem* m_fftItem;
 };
 
diff --git a/GUI/View/Common/ItemComboWidget.cpp b/GUI/View/Common/ItemComboWidget.cpp
index 7b6957b1a4cf6917051a6f835cf8f891faaa2741..1ffe132fb73f93d0f08ddebd0c3a76e432e237a7 100644
--- a/GUI/View/Common/ItemComboWidget.cpp
+++ b/GUI/View/Common/ItemComboWidget.cpp
@@ -84,7 +84,7 @@ void ItemComboWidget::setToolbarVisible(bool value)
     m_toolbar->setVisible(value);
 }
 
-void ItemComboWidget::setJobOrRealItem(JobRealBase* job_or_real_item)
+void ItemComboWidget::setJobOrRealItem(QObject* job_or_real_item)
 {
     if (!job_or_real_item) {
         m_stackedWidget->setCurrentWidget(m_blankWidget);
diff --git a/GUI/View/Common/ItemComboWidget.h b/GUI/View/Common/ItemComboWidget.h
index a33eddc42969feeebd5adfdae73f55adf0b5bf36..746e9e91a161bb3e082be1e8ef2ada0e59f1b817 100644
--- a/GUI/View/Common/ItemComboWidget.h
+++ b/GUI/View/Common/ItemComboWidget.h
@@ -23,7 +23,7 @@
 class ItemComboToolbar;
 
 //! The ItemComboWidget class combines stack of widgets with QComboBox controller to switch between
-//! widgets. It is used in the case when one SessionItem can be presented with different widgets.
+//! widgets. It is used in the case when corresponding item can be presented with different widgets.
 
 //! For example, in JobDatafieldWidget the results of the job can be presented with either
 //! IntensityDataWidget or FitDataWidget, depending from the JobView's activity type.
@@ -47,7 +47,7 @@ public:
 
     void setToolbarVisible(bool value);
 
-    void setJobOrRealItem(JobRealBase* job_or_real_item) override;
+    void setJobOrRealItem(QObject* job_or_real_item) override;
 
 protected:
     virtual QStringList activePresentationList() const;
diff --git a/GUI/View/Common/ItemStackPresenter.h b/GUI/View/Common/ItemStackPresenter.h
index 44ddf4784890cac84cd77f0bd187bb1d54fa481a..75af26baccf31ec9e1df587c9050fca4fef6b2f0 100644
--- a/GUI/View/Common/ItemStackPresenter.h
+++ b/GUI/View/Common/ItemStackPresenter.h
@@ -16,7 +16,6 @@
 #define BORNAGAIN_GUI_VIEW_COMMON_ITEMSTACKPRESENTER_H
 
 #include "Base/Util/Assert.h"
-#include "GUI/Model/BaseItem/JobRealBase.h"
 #include "GUI/View/Common/ItemStackWidget.h"
 #include <QMap>
 #include <QStackedWidget>
@@ -34,9 +33,7 @@ public:
 
     //! Shows the widget for given item (and hides previous one).
     //! If no widget yet exists, it will be created.
-    void setItem(JobRealBase *item, QObject* model = nullptr);
-
-    void setModel(QObject* model = nullptr);
+    void setItem(QObject *item, QObject* model = nullptr);
 
     T* currentWidget();
     T* itemWidget(QObject* item);
@@ -52,7 +49,7 @@ private:
 };
 
 template <class T>
-void ItemStackPresenter<T>::setItem(JobRealBase* item, QObject* model)
+void ItemStackPresenter<T>::setItem(QObject* item, QObject* model)
 {
     if (!item) {
         hideWidgets();
diff --git a/GUI/View/Fit/FitParameterWidget.cpp b/GUI/View/Fit/FitParameterWidget.cpp
index 7d5008fe0f76a001524a407a010f1efea5650ff1..351f4f406c63adae751da075829e38c30893eef9 100644
--- a/GUI/View/Fit/FitParameterWidget.cpp
+++ b/GUI/View/Fit/FitParameterWidget.cpp
@@ -68,7 +68,7 @@ FitParameterWidget::FitParameterWidget(QWidget* parent)
     m_infoLabel->setText("Drop parameter(s) to fit here");
 }
 
-void FitParameterWidget::setJobOrRealItem(JobRealBase* job_item)
+void FitParameterWidget::setJobOrRealItem(QObject* job_item)
 {
     DataAccessWidget::setJobOrRealItem(job_item);
     ASSERT(jobItem());
diff --git a/GUI/View/Fit/FitParameterWidget.h b/GUI/View/Fit/FitParameterWidget.h
index 50b178a37671b1d7c2b20b7e6d43690c443c544c..aedcc990e49193b78d1bc71db7086c3da9fb82cd 100644
--- a/GUI/View/Fit/FitParameterWidget.h
+++ b/GUI/View/Fit/FitParameterWidget.h
@@ -32,7 +32,7 @@ class FitParameterWidget : public DataAccessWidget {
 public:
     FitParameterWidget(QWidget* parent = nullptr);
 
-    void setJobOrRealItem(JobRealBase* job_item) override;
+    void setJobOrRealItem(QObject* job_item) override;
 
     void setParameterTuningWidget(ParameterTuningWidget* tuningWidget);
 
diff --git a/GUI/View/Fit/ParameterTuningWidget.cpp b/GUI/View/Fit/ParameterTuningWidget.cpp
index 9df475d050b6da10a4481fc93260d74dd37e248e..2eb0769c3468281950619bfced3cdd95a2ff36fa 100644
--- a/GUI/View/Fit/ParameterTuningWidget.cpp
+++ b/GUI/View/Fit/ParameterTuningWidget.cpp
@@ -70,7 +70,7 @@ ParameterTuningWidget::ParameterTuningWidget(QWidget* parent)
             &ParameterTuningWidget::onCustomContextMenuRequested);
 }
 
-void ParameterTuningWidget::setJobOrRealItem(JobRealBase* job_item)
+void ParameterTuningWidget::setJobOrRealItem(QObject* job_item)
 {
     DataAccessWidget::setJobOrRealItem(job_item);
     m_sliderSettingsWidget->setJobOrRealItem(job_item);
diff --git a/GUI/View/Fit/ParameterTuningWidget.h b/GUI/View/Fit/ParameterTuningWidget.h
index 181bc90ba29f931ac4f937ee0016b3a86ba52788..2d98764f9672cbc0b25ebe3100f206861580e7dc 100644
--- a/GUI/View/Fit/ParameterTuningWidget.h
+++ b/GUI/View/Fit/ParameterTuningWidget.h
@@ -35,7 +35,7 @@ class ParameterTuningWidget : public DataAccessWidget {
 public:
     explicit ParameterTuningWidget(QWidget* parent = nullptr);
 
-    void setJobOrRealItem(JobRealBase* job_item) override;
+    void setJobOrRealItem(QObject* job_item) override;
     void setModel(QObject *jobModel);
     QItemSelectionModel* selectionModel();
 
diff --git a/GUI/View/Fit/RunFitControlWidget.cpp b/GUI/View/Fit/RunFitControlWidget.cpp
index 5451c66c1ee8f6882fe31892478e9cd6c5462333..8834c620ecc93040a12d8dddcd18eb948274407e 100644
--- a/GUI/View/Fit/RunFitControlWidget.cpp
+++ b/GUI/View/Fit/RunFitControlWidget.cpp
@@ -90,7 +90,7 @@ RunFitControlWidget::RunFitControlWidget(QWidget* parent)
     setEnabled(false);
 }
 
-void RunFitControlWidget::setJobOrRealItem(JobRealBase* job_item)
+void RunFitControlWidget::setJobOrRealItem(QObject* job_item)
 {
     DataAccessWidget::setJobOrRealItem(job_item);
     ASSERT(jobItem());
diff --git a/GUI/View/Fit/RunFitControlWidget.h b/GUI/View/Fit/RunFitControlWidget.h
index aa59ffc6e5912f82bdb51c0e438c0fbea020204c..16c458b5bd98f1ea30aea47267bbb75872c5404e 100644
--- a/GUI/View/Fit/RunFitControlWidget.h
+++ b/GUI/View/Fit/RunFitControlWidget.h
@@ -30,7 +30,7 @@ class RunFitControlWidget : public DataAccessWidget {
 public:
     RunFitControlWidget(QWidget* parent = nullptr);
 
-    void setJobOrRealItem(JobRealBase* job_item) override;
+    void setJobOrRealItem(QObject* job_item) override;
 
 signals:
     void startFittingPushed();
diff --git a/GUI/View/Fit/SliderSettingsWidget.cpp b/GUI/View/Fit/SliderSettingsWidget.cpp
index 063228c6e828e786b99c44ebcb7be45320f03a4d..727d79a709537e972e643152311c850fdad4c05d 100644
--- a/GUI/View/Fit/SliderSettingsWidget.cpp
+++ b/GUI/View/Fit/SliderSettingsWidget.cpp
@@ -68,7 +68,7 @@ SliderSettingsWidget::SliderSettingsWidget(QWidget* parent)
     setLayout(hbox);
 }
 
-void SliderSettingsWidget::setJobOrRealItem(JobRealBase* job_item)
+void SliderSettingsWidget::setJobOrRealItem(QObject* job_item)
 {
     DataAccessWidget::setJobOrRealItem(job_item);
 
diff --git a/GUI/View/Fit/SliderSettingsWidget.h b/GUI/View/Fit/SliderSettingsWidget.h
index 6d35b2d1fb418e6efd7b2ba05fd3ca3f3b386efd..aa116612927148e5d3cbd55cb3083bc9c4431441 100644
--- a/GUI/View/Fit/SliderSettingsWidget.h
+++ b/GUI/View/Fit/SliderSettingsWidget.h
@@ -25,7 +25,7 @@ class SliderSettingsWidget : public DataAccessWidget {
 public:
     SliderSettingsWidget(QWidget* parent = nullptr);
 
-    void setJobOrRealItem(JobRealBase* job_item) override;
+    void setJobOrRealItem(QObject* job_item) override;
 
 signals:
     void sliderRangeFactorChanged(int value);
diff --git a/GUI/View/Import/RealDataMaskWidget.cpp b/GUI/View/Import/RealDataMaskWidget.cpp
index d62c48199c110b938423b07659f8202eebc4cd88..c84e5ba0ce40b5b82074ceb2bd5d243a81dd6b62 100644
--- a/GUI/View/Import/RealDataMaskWidget.cpp
+++ b/GUI/View/Import/RealDataMaskWidget.cpp
@@ -55,7 +55,7 @@ RealDataMaskWidget::RealDataMaskWidget(QWidget* parent)
     m_editorPropertyPanel->setPanelHidden(true);
 }
 
-void RealDataMaskWidget::setJobOrRealItem(JobRealBase* job_or_real_item)
+void RealDataMaskWidget::setJobOrRealItem(QObject* job_or_real_item)
 {
     DataAccessWidget::setJobOrRealItem(job_or_real_item);
     m_editorPropertyPanel->setJobOrRealItem(job_or_real_item);
diff --git a/GUI/View/Import/RealDataMaskWidget.h b/GUI/View/Import/RealDataMaskWidget.h
index c2b76886acaff95c16ff92ab6ba8113f46e224f3..dd4e8474d462b42879b688404c04d45d73a4881f 100644
--- a/GUI/View/Import/RealDataMaskWidget.h
+++ b/GUI/View/Import/RealDataMaskWidget.h
@@ -29,7 +29,7 @@ class RealDataMaskWidget : public DataAccessWidget {
 public:
     RealDataMaskWidget(QWidget* parent = nullptr);
 
-    void setJobOrRealItem(JobRealBase* job_or_real_item) override;
+    void setJobOrRealItem(QObject* job_or_real_item) override;
 
     QList<QAction*> actionList() override;
 
diff --git a/GUI/View/Import/SpecularDataImportWidget.cpp b/GUI/View/Import/SpecularDataImportWidget.cpp
index 967f6f88d30f93b078ad244d819943b8509e4421..45dfef7e8fd19463855d36157f06a7bbd14fe7a1 100644
--- a/GUI/View/Import/SpecularDataImportWidget.cpp
+++ b/GUI/View/Import/SpecularDataImportWidget.cpp
@@ -72,7 +72,7 @@ SpecularDataImportWidget::SpecularDataImportWidget(QWidget* parent)
         m_ui->plotToolbar->addAction(action);
 }
 
-void SpecularDataImportWidget::setJobOrRealItem(JobRealBase* real_item)
+void SpecularDataImportWidget::setJobOrRealItem(QObject* real_item)
 {
     DataAccessWidget::setJobOrRealItem(real_item);
     ASSERT(realItem());
diff --git a/GUI/View/Import/SpecularDataImportWidget.h b/GUI/View/Import/SpecularDataImportWidget.h
index fdbeb4dc7b03726c3f707416dad11cec15e821f9..a5ae8a6290b62c74aeb04fad4dd6229084efa018 100644
--- a/GUI/View/Import/SpecularDataImportWidget.h
+++ b/GUI/View/Import/SpecularDataImportWidget.h
@@ -40,7 +40,7 @@ class SpecularDataImportWidget : public DataAccessWidget {
 public:
     SpecularDataImportWidget(QWidget* parent = nullptr);
 
-    void setJobOrRealItem(JobRealBase* real_item) override;
+    void setJobOrRealItem(QObject* real_item) override;
 
     QList<QAction*> actionList() override;
 
diff --git a/GUI/View/Job/JobListViewDelegate.cpp b/GUI/View/Job/JobListViewDelegate.cpp
index 84ee994aba829e76864d107cf2803be111477743..c08329f109b18bea3ad783184b42d380fd693493 100644
--- a/GUI/View/Job/JobListViewDelegate.cpp
+++ b/GUI/View/Job/JobListViewDelegate.cpp
@@ -13,6 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Job/JobListViewDelegate.h"
+#include "Base/Util/Assert.h"
 #include "GUI/Model/Job/JobItem.h"
 #include "GUI/View/Job/JobListModel.h"
 #include <QApplication>
diff --git a/GUI/View/Mask/MaskEditorPropertyPanel.cpp b/GUI/View/Mask/MaskEditorPropertyPanel.cpp
index 6875cc66e02fd48e839845f2b4dc49520327b408..ed782a8d1350e7b736dfec0d5e250f4584b880f4 100644
--- a/GUI/View/Mask/MaskEditorPropertyPanel.cpp
+++ b/GUI/View/Mask/MaskEditorPropertyPanel.cpp
@@ -80,7 +80,7 @@ MaskEditorPropertyPanel::MaskEditorPropertyPanel(QWidget* parent)
     setLayout(mainLayout);
 }
 
-void MaskEditorPropertyPanel::setJobOrRealItem(JobRealBase* job_or_real_item)
+void MaskEditorPropertyPanel::setJobOrRealItem(QObject* job_or_real_item)
 {
     DataAccessWidget::setJobOrRealItem(job_or_real_item);
     m_propertyPanel->setJobOrRealItem(job_or_real_item);
diff --git a/GUI/View/Mask/MaskEditorPropertyPanel.h b/GUI/View/Mask/MaskEditorPropertyPanel.h
index cdf7df280a9b747d40420f4f16108c0b61f498aa..61e40846d7ad8667092349ecf3ba11b6f99e54eb 100644
--- a/GUI/View/Mask/MaskEditorPropertyPanel.h
+++ b/GUI/View/Mask/MaskEditorPropertyPanel.h
@@ -35,7 +35,7 @@ class MaskEditorPropertyPanel : public DataAccessWidget {
 public:
     MaskEditorPropertyPanel(QWidget* parent = nullptr);
 
-    void setJobOrRealItem(JobRealBase* job_or_real_item) override;
+    void setJobOrRealItem(QObject* job_or_real_item) override;
 
     QSize sizeHint() const override;
     QSize minimumSizeHint() const override;
diff --git a/GUI/View/Plot2D/IntensityDataCanvas.cpp b/GUI/View/Plot2D/IntensityDataCanvas.cpp
index 0e5a1fc78053667de85c9ee2ad91f414e564400b..674ddbf13b53acdfc8d253d2e362b71f41c3d47f 100644
--- a/GUI/View/Plot2D/IntensityDataCanvas.cpp
+++ b/GUI/View/Plot2D/IntensityDataCanvas.cpp
@@ -56,7 +56,7 @@ IntensityDataCanvas::IntensityDataCanvas(QWidget* parent)
             &IntensityDataCanvas::onMousePress, Qt::UniqueConnection);
 }
 
-void IntensityDataCanvas::setJobOrRealItem(JobRealBase* job_or_real_Item)
+void IntensityDataCanvas::setJobOrRealItem(QObject* job_or_real_Item)
 {
     DataAccessWidget::setJobOrRealItem(job_or_real_Item);
     m_colorMapCanvas->setIntensityItem(currentIntensityDataItem());
diff --git a/GUI/View/Plot2D/IntensityDataCanvas.h b/GUI/View/Plot2D/IntensityDataCanvas.h
index 3d2b95a77c5b462446a13c7ba981d630b7dcbe47..3aa14e6622ed2b94e3b43483c965b154d65277cb 100644
--- a/GUI/View/Plot2D/IntensityDataCanvas.h
+++ b/GUI/View/Plot2D/IntensityDataCanvas.h
@@ -29,7 +29,7 @@ class IntensityDataCanvas : public DataAccessWidget {
 public:
     explicit IntensityDataCanvas(QWidget* parent = nullptr);
 
-    void setJobOrRealItem(JobRealBase* job_or_real_Item) override;
+    void setJobOrRealItem(QObject* job_or_real_Item) override;
     void setFourierItem(IntensityDataItem* fftItem) override;
 
     QSize sizeHint() const override;
diff --git a/GUI/View/Plot2D/IntensityDataWidget.cpp b/GUI/View/Plot2D/IntensityDataWidget.cpp
index 047052b39c14fa1b8a7478d82b689b88a853c7c0..d218909e212832bab9511c712ecb2d26cb44d55e 100644
--- a/GUI/View/Plot2D/IntensityDataWidget.cpp
+++ b/GUI/View/Plot2D/IntensityDataWidget.cpp
@@ -49,7 +49,7 @@ IntensityDataWidget::IntensityDataWidget(QWidget* parent)
     m_propertyWidget->setVisible(false);
 }
 
-void IntensityDataWidget::setJobOrRealItem(JobRealBase* job_or_real_item)
+void IntensityDataWidget::setJobOrRealItem(QObject* job_or_real_item)
 {
     JobItem* oldJob = jobItem();
     DataAccessWidget::setJobOrRealItem(job_or_real_item);
diff --git a/GUI/View/Plot2D/IntensityDataWidget.h b/GUI/View/Plot2D/IntensityDataWidget.h
index 051bf2f5c3b562f9416ef45cca1bb03e9d64ca8b..10f8c383358c5baa36a3d939d8b5ee6027e535fb 100644
--- a/GUI/View/Plot2D/IntensityDataWidget.h
+++ b/GUI/View/Plot2D/IntensityDataWidget.h
@@ -30,7 +30,7 @@ class IntensityDataWidget : public DataAccessWidget {
 public:
     IntensityDataWidget(QWidget* parent = nullptr);
 
-    void setJobOrRealItem(JobRealBase* job_or_real_item) override;
+    void setJobOrRealItem(QObject* job_or_real_item) override;
 
     QList<QAction*> actionList() override;
 
diff --git a/GUI/View/PlotComparison/FitComparisonWidget.cpp b/GUI/View/PlotComparison/FitComparisonWidget.cpp
index e56b2160d44f767340b2d052e84cf63962933165..8b1ef87f70f0a73a7b787ea1d69066baf5921989 100644
--- a/GUI/View/PlotComparison/FitComparisonWidget.cpp
+++ b/GUI/View/PlotComparison/FitComparisonWidget.cpp
@@ -82,7 +82,7 @@ FitComparisonWidget::FitComparisonWidget(QWidget* parent)
             &FitComparisonWidget::onResetViewAction, Qt::UniqueConnection);
 }
 
-void FitComparisonWidget::setJobOrRealItem(JobRealBase* job_item)
+void FitComparisonWidget::setJobOrRealItem(QObject* job_item)
 {
     JobItem* oldJob = jobItem();
 
diff --git a/GUI/View/PlotComparison/FitComparisonWidget.h b/GUI/View/PlotComparison/FitComparisonWidget.h
index 81b407dda3821ddc6f01d81a8da6fa496f58f549..640330302a27697fda90050b57f6fb17b0f5a370 100644
--- a/GUI/View/PlotComparison/FitComparisonWidget.h
+++ b/GUI/View/PlotComparison/FitComparisonWidget.h
@@ -32,7 +32,7 @@ class FitComparisonWidget : public DataAccessWidget {
 public:
     explicit FitComparisonWidget(QWidget* parent = nullptr);
 
-    void setJobOrRealItem(JobRealBase* job_item) override;
+    void setJobOrRealItem(QObject* job_item) override;
 
     QList<QAction*> actionList() override;
 
diff --git a/GUI/View/PlotComparison/FitComparisonWidget1D.cpp b/GUI/View/PlotComparison/FitComparisonWidget1D.cpp
index c420bf0a278532180d790e30a36be3114139886c..97041e61085fadfc8ebb8b0f2b91328937919337 100644
--- a/GUI/View/PlotComparison/FitComparisonWidget1D.cpp
+++ b/GUI/View/PlotComparison/FitComparisonWidget1D.cpp
@@ -77,7 +77,7 @@ FitComparisonWidget1D::FitComparisonWidget1D(QWidget* parent)
             &FitComparisonWidget1D::onResetViewAction, Qt::UniqueConnection);
 }
 
-void FitComparisonWidget1D::setJobOrRealItem(JobRealBase* job_item)
+void FitComparisonWidget1D::setJobOrRealItem(QObject* job_item)
 {
     JobItem* oldJob = jobItem();
 
diff --git a/GUI/View/PlotComparison/FitComparisonWidget1D.h b/GUI/View/PlotComparison/FitComparisonWidget1D.h
index d9de7f27361c7aaa9cd08cf9ecf16dd7ece4ca36..582f15eb18089197c602904cc5dca26a6c18afdb 100644
--- a/GUI/View/PlotComparison/FitComparisonWidget1D.h
+++ b/GUI/View/PlotComparison/FitComparisonWidget1D.h
@@ -33,7 +33,7 @@ class FitComparisonWidget1D : public DataAccessWidget {
 public:
     explicit FitComparisonWidget1D(QWidget* parent = nullptr);
 
-    void setJobOrRealItem(JobRealBase* job_item) override;
+    void setJobOrRealItem(QObject* job_item) override;
 
     QList<QAction*> actionList() override;
 
diff --git a/GUI/View/PlotComparison/FitFlowWidget.cpp b/GUI/View/PlotComparison/FitFlowWidget.cpp
index 5770f5474e5841c30231f7c9b624ec54efcef793..16bd1dabdd66f8c57e0290092e8fa651b66d810f 100644
--- a/GUI/View/PlotComparison/FitFlowWidget.cpp
+++ b/GUI/View/PlotComparison/FitFlowWidget.cpp
@@ -31,7 +31,7 @@ FitFlowWidget::FitFlowWidget(QWidget* parent)
     setLayout(layout);
 }
 
-void FitFlowWidget::setJobOrRealItem(JobRealBase* job_item)
+void FitFlowWidget::setJobOrRealItem(QObject* job_item)
 {
     DataAccessWidget::setJobOrRealItem(job_item);
     ASSERT(jobItem());
diff --git a/GUI/View/PlotComparison/FitFlowWidget.h b/GUI/View/PlotComparison/FitFlowWidget.h
index 61af4630d488db6f259012cd7277ba943faf750b..3426dccab4e91a9646c076b70b0754ecd6859276 100644
--- a/GUI/View/PlotComparison/FitFlowWidget.h
+++ b/GUI/View/PlotComparison/FitFlowWidget.h
@@ -28,7 +28,7 @@ class FitFlowWidget : public DataAccessWidget {
 public:
     explicit FitFlowWidget(QWidget* parent = nullptr);
 
-    void setJobOrRealItem(JobRealBase* job_item) override;
+    void setJobOrRealItem(QObject* job_item) override;
 
 private:
     void onIterationCountChanged(int iter);
diff --git a/GUI/View/PlotSpecular/SpecularDataCanvas.cpp b/GUI/View/PlotSpecular/SpecularDataCanvas.cpp
index d266b06488429ef795dd5740b7a52e5f532b8d8e..d25405b075d9c9c76a581a4547a37173639acf1e 100644
--- a/GUI/View/PlotSpecular/SpecularDataCanvas.cpp
+++ b/GUI/View/PlotSpecular/SpecularDataCanvas.cpp
@@ -40,7 +40,7 @@ SpecularDataCanvas::SpecularDataCanvas(QWidget* parent)
     enableDeprecatedOnMousePress(true); // true for legacy reasons
 }
 
-void SpecularDataCanvas::setJobOrRealItem(JobRealBase* job_or_real_Item)
+void SpecularDataCanvas::setJobOrRealItem(QObject* job_or_real_Item)
 {
     DataAccessWidget::setJobOrRealItem(job_or_real_Item);
     m_plot_canvas->setSpecularItems({currentSpecularDataItem()});
diff --git a/GUI/View/PlotSpecular/SpecularDataCanvas.h b/GUI/View/PlotSpecular/SpecularDataCanvas.h
index e192588e5c251ee5d2a87ca6ab4ff399fb44f9e2..1b969e3fca1694ab2f2f3601b6b13f492bdf5b54 100644
--- a/GUI/View/PlotSpecular/SpecularDataCanvas.h
+++ b/GUI/View/PlotSpecular/SpecularDataCanvas.h
@@ -27,7 +27,7 @@ class SpecularDataCanvas : public DataAccessWidget {
 public:
     explicit SpecularDataCanvas(QWidget* parent = nullptr);
 
-    void setJobOrRealItem(JobRealBase* job_or_real_Item) override;
+    void setJobOrRealItem(QObject* job_or_real_Item) override;
 
     QSize sizeHint() const override;
     QSize minimumSizeHint() const override;
diff --git a/GUI/View/PlotSpecular/SpecularDataWidget.cpp b/GUI/View/PlotSpecular/SpecularDataWidget.cpp
index 5551979da965b5eb8c443b6ada120792d90f5c19..fef672c8dae45cb885b1793999916980871b1eb6 100644
--- a/GUI/View/PlotSpecular/SpecularDataWidget.cpp
+++ b/GUI/View/PlotSpecular/SpecularDataWidget.cpp
@@ -43,7 +43,7 @@ SpecularDataWidget::SpecularDataWidget(QWidget* parent)
     m_propertyWidget->setVisible(false);
 }
 
-void SpecularDataWidget::setJobOrRealItem(JobRealBase* job_or_real_Item)
+void SpecularDataWidget::setJobOrRealItem(QObject* job_or_real_Item)
 {
     DataAccessWidget::setJobOrRealItem(job_or_real_Item);
     m_specular_canvas->setJobOrRealItem(job_or_real_Item);
diff --git a/GUI/View/PlotSpecular/SpecularDataWidget.h b/GUI/View/PlotSpecular/SpecularDataWidget.h
index 33ca2ad0070b89121b59ec138ebaaf422de1a491..16d985738d5a58801e48719c80bc959f5f3b9df1 100644
--- a/GUI/View/PlotSpecular/SpecularDataWidget.h
+++ b/GUI/View/PlotSpecular/SpecularDataWidget.h
@@ -27,7 +27,7 @@ class SpecularDataWidget : public DataAccessWidget {
 public:
     SpecularDataWidget(QWidget* parent = nullptr);
 
-    void setJobOrRealItem(JobRealBase* job_or_real_Item) override;
+    void setJobOrRealItem(QObject* job_or_real_Item) override;
 
     QList<QAction*> actionList() override;
 
diff --git a/GUI/View/PlotUtil/DataPropertyWidget.cpp b/GUI/View/PlotUtil/DataPropertyWidget.cpp
index b497ce325dccb9f3259b8a8a49afc28ef969ba44..0f6c0965c1a508498b58606f419bbf7d70208b55 100644
--- a/GUI/View/PlotUtil/DataPropertyWidget.cpp
+++ b/GUI/View/PlotUtil/DataPropertyWidget.cpp
@@ -27,7 +27,7 @@ DataPropertyWidget::DataPropertyWidget(QWidget* parent)
     m_mainLayout->setSpacing(5);
 }
 
-void DataPropertyWidget::setJobOrRealItem(JobRealBase* job_or_real_Item)
+void DataPropertyWidget::setJobOrRealItem(QObject* job_or_real_Item)
 {
     DataAccessWidget::setJobOrRealItem(job_or_real_Item);
     createPanelElements();
diff --git a/GUI/View/PlotUtil/DataPropertyWidget.h b/GUI/View/PlotUtil/DataPropertyWidget.h
index bd3e2e51a5f513b12c97241f1eac171693181b6b..7d8ed32d407530a873814c9acc86d80d9fecd36f 100644
--- a/GUI/View/PlotUtil/DataPropertyWidget.h
+++ b/GUI/View/PlotUtil/DataPropertyWidget.h
@@ -26,7 +26,7 @@ class DataPropertyWidget : public DataAccessWidget {
 public:
     explicit DataPropertyWidget(QWidget* parent = nullptr);
 
-    void setJobOrRealItem(JobRealBase* job_or_real_Item) override;
+    void setJobOrRealItem(QObject* job_or_real_Item) override;
 
 signals:
     void axesRangeResetRequested();
diff --git a/GUI/View/Projection/IntensityDataProjectionsWidget.cpp b/GUI/View/Projection/IntensityDataProjectionsWidget.cpp
index cb88ce449ee66f60a0368b5d897b95e506ed1e93..405dcfb65e572285662042d2e36c0aac49c2019f 100644
--- a/GUI/View/Projection/IntensityDataProjectionsWidget.cpp
+++ b/GUI/View/Projection/IntensityDataProjectionsWidget.cpp
@@ -53,7 +53,7 @@ IntensityDataProjectionsWidget::IntensityDataProjectionsWidget(QWidget* parent)
     setup_connections();
 }
 
-void IntensityDataProjectionsWidget::setJobOrRealItem(JobRealBase* job_or_real_item)
+void IntensityDataProjectionsWidget::setJobOrRealItem(QObject* job_or_real_item)
 {
     DataAccessWidget::setJobOrRealItem(job_or_real_item);
     m_propertyPanel->setJobOrRealItem(job_or_real_item);
diff --git a/GUI/View/Projection/IntensityDataProjectionsWidget.h b/GUI/View/Projection/IntensityDataProjectionsWidget.h
index 4426a65acdbb41c9d8f856120fd8886588c383b2..f4025cbeb8ce58de32aa092f9d5d32f500770658 100644
--- a/GUI/View/Projection/IntensityDataProjectionsWidget.h
+++ b/GUI/View/Projection/IntensityDataProjectionsWidget.h
@@ -32,7 +32,7 @@ class IntensityDataProjectionsWidget : public DataAccessWidget {
 public:
     IntensityDataProjectionsWidget(QWidget* parent = nullptr);
 
-    void setJobOrRealItem(JobRealBase* job_or_real_item) override;
+    void setJobOrRealItem(QObject* job_or_real_item) override;
 
     QList<QAction*> actionList() override;