diff --git a/GUI/Model/Files/DatafilesSet.cpp b/GUI/Model/Files/DatafilesSet.cpp
index 96d5faeff334203dc9309589912ebe8307c09760..5dedd6ffe2b0229d61c0d0c20b674cf65e673f2e 100644
--- a/GUI/Model/Files/DatafilesSet.cpp
+++ b/GUI/Model/Files/DatafilesSet.cpp
@@ -14,7 +14,6 @@
 
 #include "GUI/Model/Files/DatafilesSet.h"
 #include "Base/Util/Assert.h"
-#include "GUI/Model/Device/DatafileItem.h"
 #include "GUI/Support/XML/UtilXML.h"
 
 namespace {
@@ -26,11 +25,7 @@ const QString CurrentIndex("CurrentIndex");
 } // namespace Tag
 } // namespace
 
-DatafilesSet::DatafilesSet()
-{
-    setObjectName("DatafilesSet");
-}
-
+DatafilesSet::DatafilesSet() = default;
 DatafilesSet::~DatafilesSet() = default;
 
 void DatafilesSet::writeTo(QXmlStreamWriter* w) const
@@ -65,7 +60,7 @@ void DatafilesSet::readFrom(QXmlStreamReader* r)
         if (tag == Tag::RealData) {
             auto* item = new DatafileItem;
             item->readFrom(r);
-            push_back(item);
+            add_item(item);
             XML::gotoEndElementOfTag(r, tag);
 
             // selected index
@@ -99,14 +94,6 @@ void DatafilesSet::readDatafiles(const QString& projectDir, MessageService* mess
     dataFilesCleaner.recollectDataNames(dataItems());
 }
 
-QStringList DatafilesSet::itemNames() const
-{
-    QStringList result;
-    for (DatafileItem* dfi : *this)
-        result.append(dfi->name());
-    return result;
-}
-
 QVector<DataItem*> DatafilesSet::dataItems() const
 {
     QVector<DataItem*> result;
diff --git a/GUI/Model/Files/DatafilesSet.h b/GUI/Model/Files/DatafilesSet.h
index 03f3a110efc2cd7c46ff79e93984f38c09508af4..8607554d88d1181231615cc5a618576eebdc7738 100644
--- a/GUI/Model/Files/DatafilesSet.h
+++ b/GUI/Model/Files/DatafilesSet.h
@@ -15,33 +15,27 @@
 #ifndef BORNAGAIN_GUI_MODEL_FILES_DATAFILESSET_H
 #define BORNAGAIN_GUI_MODEL_FILES_DATAFILESSET_H
 
-#include "Base/Types/VectorWC.h"
+#include "GUI/Model/Device/DatafileItem.h"
 #include "GUI/Model/Files/DatafilesCleaner.h"
+#include "GUI/Model/Type/SetWithModel.h"
 #include <QObject>
 #include <QXmlStreamWriter>
 
 class DataItem;
-class DatafileItem;
 class MessageService;
 
 //! The DatafilesSet class is a model to store all imported DatafileItem's.
-class DatafilesSet : public QObject, public VectorWC<DatafileItem> {
-    Q_OBJECT
+class DatafilesSet : public SetWithModel<DatafileItem> {
 public:
-    explicit DatafilesSet();
-    ~DatafilesSet();
+    DatafilesSet();
+    virtual ~DatafilesSet();
 
     void readFrom(QXmlStreamReader* r);
     void readDatafiles(const QString& projectDir, MessageService* messageService);
 
-    QStringList itemNames() const;
     void writeTo(QXmlStreamWriter* w) const;
     void writeDatafiles(const QString& projectDir) const;
 
-signals:
-    void setChanged() const;
-    void currentModified() const;
-
 private:
     QVector<DataItem*> dataItems() const;
 
diff --git a/GUI/Model/FromCore/ItemizeSimulation.cpp b/GUI/Model/FromCore/ItemizeSimulation.cpp
index 16a8858398a5c26b5ed2a05cb0043f215053f598..7b485a422c6cc0201a8b3d42700f653b0b7600a1 100644
--- a/GUI/Model/FromCore/ItemizeSimulation.cpp
+++ b/GUI/Model/FromCore/ItemizeSimulation.cpp
@@ -36,7 +36,6 @@
 #include "GUI/Model/Detector/OffspecDetectorItem.h"
 #include "GUI/Model/Detector/ResolutionFunctionItems.h"
 #include "GUI/Model/Device/BackgroundItems.h"
-#include "GUI/Model/Device/InstrumentItems.h"
 #include "GUI/Model/Device/InstrumentsSet.h"
 #include "GUI/Model/Mask/MaskItems.h"
 #include "GUI/Model/Mask/MasksSet.h"
diff --git a/GUI/Model/Project/ProjectDocument.cpp b/GUI/Model/Project/ProjectDocument.cpp
index fa4ebbf669323c5521b8a10576a41cfb89a54141..ba531bac46d0b47cb61b0b49daeab1800fb1cc00 100644
--- a/GUI/Model/Project/ProjectDocument.cpp
+++ b/GUI/Model/Project/ProjectDocument.cpp
@@ -15,14 +15,12 @@
 #include "GUI/Model/Project/ProjectDocument.h"
 #include "GUI/Model/Device/BackgroundItems.h"
 #include "GUI/Model/Device/DatafileItem.h"
-#include "GUI/Model/Device/InstrumentItems.h"
 #include "GUI/Model/Device/InstrumentsSet.h"
 #include "GUI/Model/Files/DatafilesSet.h"
 #include "GUI/Model/Material/MaterialItem.h"
 #include "GUI/Model/Project/LinkInstrumentManager.h"
 #include "GUI/Model/Project/ProjectUtil.h"
 #include "GUI/Model/Sample/ItemWithMaterial.h"
-#include "GUI/Model/Sample/SampleItem.h"
 #include "GUI/Model/Sample/SamplesSet.h"
 #include "GUI/Model/Tune/JobsSet.h"
 #include "GUI/Support/Data/ID.h"
diff --git a/GUI/Model/Type/SetWithModel.h b/GUI/Model/Type/SetWithModel.h
index 0ec2bbfc9daaf1f969279242fdeb812369f5ee4d..356cc2707f48280dfb89df8d545a0209c91d8a67 100644
--- a/GUI/Model/Type/SetWithModel.h
+++ b/GUI/Model/Type/SetWithModel.h
@@ -23,6 +23,7 @@
 #include "GUI/Model/Type/ModelForSet.h"
 #include <QObject>
 #include <QStringList>
+#include <vector>
 
 //! Non-templated base class for SetWithModel, needed to support Qt signals.
 
@@ -63,10 +64,19 @@ public:
         m_qmodel->endRemoveRows();
         emit SetBase::setChanged();
     }
-    void add_item(T* e)
+    void add_item(T* t)
     {
         m_qmodel->beginInsertRows({}, size(), size());
-        m_vec.push_back(e);
+        m_vec.push_back(t);
+        m_idx = m_vec.size() - 1;
+        m_qmodel->endInsertRows();
+        emit SetBase::setChanged();
+    }
+    void add_items(std::vector<T*> v)
+    {
+        m_qmodel->beginInsertRows({}, size(), size());
+        for (T* t : v)
+            m_vec.push_back(t);
         m_idx = m_vec.size() - 1;
         m_qmodel->endInsertRows();
         emit SetBase::setChanged();
diff --git a/GUI/View/Data/DatafileEditor.cpp b/GUI/View/Data/DatafileEditor.cpp
index 38d5136571ab89395b1c2e7e9776329cfaec3b86..a4c8e586b06cd0e74ed8276148c331512e71dd84 100644
--- a/GUI/View/Data/DatafileEditor.cpp
+++ b/GUI/View/Data/DatafileEditor.cpp
@@ -14,7 +14,6 @@
 
 #include "GUI/View/Data/DatafileEditor.h"
 #include "GUI/Model/Device/DatafileItem.h"
-#include "GUI/Model/Device/InstrumentItems.h"
 #include "GUI/Model/Device/InstrumentsSet.h"
 #include "GUI/Model/Project/LinkInstrumentManager.h"
 #include "GUI/Model/Project/ProjectDocument.h"
diff --git a/GUI/View/Data/DatafilesQListView.cpp b/GUI/View/Data/DatafilesQListView.cpp
index 19ab0e859425dbbe7e58bb0018da45e14390a6ac..f447bf37742b759af47e35829078ec33654aeb3a 100644
--- a/GUI/View/Data/DatafilesQListView.cpp
+++ b/GUI/View/Data/DatafilesQListView.cpp
@@ -15,25 +15,16 @@
 #include "GUI/View/Data/DatafilesQListView.h"
 #include "GUI/Model/Files/DatafilesSet.h"
 #include "GUI/Model/Project/ProjectDocument.h"
-#include "GUI/View/Data/DatafilesQModel.h"
 #include "GUI/View/Widget/ListItemDelegate.h"
 
-DatafilesQListView::DatafilesQListView(DatafilesQModel* model)
+DatafilesQListView::DatafilesQListView(DatafilesSet* set)
 {
     setMinimumWidth(200);
     setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
     setSelectionMode(QAbstractItemView::NoSelection);
     setItemDelegate(new ListItemDelegate(this));
-    setModel(model);
+    setModel(set->model());
 
-    connect(this, &QListView::clicked, [this](const QModelIndex& qi) {
-        gDoc->datafilesModifier()->setCurrentIndex(qi.row());
-        emit gDoc->datafiles()->setChanged();
-    });
-
-    disconnect(gDoc->datafiles(), &DatafilesSet::setChanged, nullptr, nullptr);
-    connect(gDoc->datafiles(), &DatafilesSet::setChanged, [this, model] {
-        setCurrentIndex(model->index(gDoc->datafiles()->currentIndex(), 0));
-        repaint();
-    });
+    connect(this, &QListView::clicked,
+            [this, set](const QModelIndex& qi) { set->setCurrentIndex(qi.row()); });
 }
diff --git a/GUI/View/Data/DatafilesQListView.h b/GUI/View/Data/DatafilesQListView.h
index d80c1d28707faa89951ca3dd9ee9574d59813986..06cad4ac0223631f6a326e4b976f77fd97601adf 100644
--- a/GUI/View/Data/DatafilesQListView.h
+++ b/GUI/View/Data/DatafilesQListView.h
@@ -17,12 +17,12 @@
 
 #include <QListView>
 
-class DatafilesQModel;
+class DatafilesSet;
 
 //! List view to select one datafile (left side of layer-oriented datafile editor)
 class DatafilesQListView : public QListView {
 public:
-    DatafilesQListView(DatafilesQModel*);
+    DatafilesQListView(DatafilesSet*);
 };
 
 #endif // BORNAGAIN_GUI_VIEW_DATA_DATAFILESQLISTVIEW_H
diff --git a/GUI/View/Data/DatafilesQModel.cpp b/GUI/View/Data/DatafilesQModel.cpp
deleted file mode 100644
index 7062c54d81b388cf3378e2f1a5cc53745f7ade7e..0000000000000000000000000000000000000000
--- a/GUI/View/Data/DatafilesQModel.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-//  ************************************************************************************************
-//
-//  BornAgain: simulate and fit reflection and scattering
-//
-//! @file      GUI/View/Data/DatafilesQModel.cpp
-//! @brief     Implements class DatafilesQModel.
-//!
-//! @homepage  http://www.bornagainproject.org
-//! @license   GNU General Public License v3 or higher (see COPYING)
-//! @copyright Forschungszentrum Jülich GmbH 2021
-//! @authors   Scientific Computing Group at MLZ (see CITATION, AUTHORS)
-//
-//  ************************************************************************************************
-
-#include "GUI/View/Data/DatafilesQModel.h"
-#include "GUI/Model/Device/DatafileItem.h"
-#include "GUI/Model/Files/DatafilesSet.h"
-#include "GUI/Model/Project/ProjectDocument.h"
-#include <QColor>
-
-DatafilesQModel::DatafilesQModel(QObject* parent)
-    : QAbstractListModel(parent) // parent needed to ensure end of life
-{
-}
-
-DatafilesSet* DatafilesQModel::set()
-{
-    return gDoc->datafilesModifier();
-}
-
-const DatafilesSet* DatafilesQModel::set() const
-{
-    return gDoc->datafiles();
-}
-
-int DatafilesQModel::rowCount(const QModelIndex&) const
-{
-    return set()->size();
-}
-
-QVariant DatafilesQModel::data(const QModelIndex& index, int role) const
-{
-    if (!index.isValid())
-        return {};
-    size_t row = index.row();
-    if (row >= set()->size())
-        return {};
-    const DatafileItem* t = set()->at(row);
-
-    switch (role) {
-    case Qt::DisplayRole:
-        return t->name();
-    case Qt::ToolTipRole:
-        return t->description();
-    case Qt::BackgroundRole:
-        return row == set()->currentIndex() ? QColor(Qt::cyan) : QColor(Qt::white);
-    default:
-        return {};
-    }
-}
-
-void DatafilesQModel::deleteItem()
-{
-    const size_t row = set()->currentIndex();
-    ASSERT(row != size_t(-1));
-    beginRemoveRows({}, row, row);
-    set()->delete_current();
-    endRemoveRows();
-
-    emit set()->setChanged();
-}
-
-void DatafilesQModel::pushItem(DatafileItem* t)
-{
-    if (!t)
-        return;
-    const size_t row = set()->size();
-    beginInsertRows({}, row, row);
-    set()->push_back(t);
-    endInsertRows();
-
-    emit set()->setChanged();
-}
-
-void DatafilesQModel::pushItems(const std::vector<DatafileItem*>& v)
-{
-    for (DatafileItem* t : v)
-        pushItem(t);
-}
diff --git a/GUI/View/Data/DatafilesQModel.h b/GUI/View/Data/DatafilesQModel.h
deleted file mode 100644
index 0351b4e55e4d6c7b5def43bccc17cc652e9c9e47..0000000000000000000000000000000000000000
--- a/GUI/View/Data/DatafilesQModel.h
+++ /dev/null
@@ -1,41 +0,0 @@
-//  ************************************************************************************************
-//
-//  BornAgain: simulate and fit reflection and scattering
-//
-//! @file      GUI/View/Data/DatafilesQModel.h
-//! @brief     Defines class DatafilesQModel.
-//!
-//! @homepage  http://www.bornagainproject.org
-//! @license   GNU General Public License v3 or higher (see COPYING)
-//! @copyright Forschungszentrum Jülich GmbH 2021
-//! @authors   Scientific Computing Group at MLZ (see CITATION, AUTHORS)
-//
-//  ************************************************************************************************
-
-#ifndef BORNAGAIN_GUI_VIEW_DATA_DATAFILESQMODEL_H
-#define BORNAGAIN_GUI_VIEW_DATA_DATAFILESQMODEL_H
-
-#include <QAbstractListModel>
-
-class DatafileItem;
-class DatafilesSet;
-
-//! Tree representation of DatafilesSet, for use in DatafilesSelector.
-
-class DatafilesQModel : public QAbstractListModel {
-public:
-    explicit DatafilesQModel(QObject* parent);
-
-    int rowCount(const QModelIndex&) const override;
-    QVariant data(const QModelIndex& index, int role) const override;
-
-    void deleteItem();
-    void pushItem(DatafileItem*);
-    void pushItems(const std::vector<DatafileItem*>&);
-
-private:
-    DatafilesSet* set();
-    const DatafilesSet* set() const;
-};
-
-#endif // BORNAGAIN_GUI_VIEW_DATA_DATAFILESQMODEL_H
diff --git a/GUI/View/Device/ScanEditor.cpp b/GUI/View/Device/ScanEditor.cpp
index 0da52bf7e05c53834e71d8d9ee1967a044b2e33b..a968bd7289c07b73bc12fad4e2d3e23815cb1a4c 100644
--- a/GUI/View/Device/ScanEditor.cpp
+++ b/GUI/View/Device/ScanEditor.cpp
@@ -18,7 +18,6 @@
 #include "GUI/Model/Axis/PointwiseAxisItem.h"
 #include "GUI/Model/Beam/BeamWavelengthItem.h"
 #include "GUI/Model/Beam/SourceItems.h"
-#include "GUI/Model/Device/InstrumentItems.h"
 #include "GUI/Model/Device/InstrumentsSet.h"
 #include "GUI/Model/Project/ProjectDocument.h"
 #include "GUI/View/Device/AlphaScanEditor.h"
diff --git a/GUI/View/Data/DatafilesSelector.cpp b/GUI/View/List/DatafilesSelector.cpp
similarity index 83%
rename from GUI/View/Data/DatafilesSelector.cpp
rename to GUI/View/List/DatafilesSelector.cpp
index a44ec6b315a8350a966296654af1a4796236daee..2b1ac18fb12151d31be7d806045e7ffccf40206a 100644
--- a/GUI/View/Data/DatafilesSelector.cpp
+++ b/GUI/View/List/DatafilesSelector.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/View/Data/DatafilesSelector.cpp
+//! @file      GUI/View/List/DatafilesSelector.cpp
 //! @brief     Implements class DatafilesSelector.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,14 +12,13 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/View/Data/DatafilesSelector.h"
+#include "GUI/View/List/DatafilesSelector.h"
 #include "Base/Util/Assert.h"
 #include "GUI/Model/Data/DataItem.h"
 #include "GUI/Model/Device/DatafileItem.h"
 #include "GUI/Model/Files/DatafilesSet.h"
 #include "GUI/View/Data/DatafileEditor.h"
 #include "GUI/View/Data/DatafilesQListView.h"
-#include "GUI/View/Data/DatafilesQModel.h"
 #include "GUI/View/Frame/StackedFrames.h"
 #include "GUI/View/Loader/DataLoader.h"
 #include "GUI/View/Manager/ProjectManager.h"
@@ -31,8 +30,8 @@
 #include <QSplitter>
 
 DatafilesSelector::DatafilesSelector()
-    : m_qlistmodel(new DatafilesQModel(this))
-    , m_qlistview(new DatafilesQListView(m_qlistmodel))
+    : m_set(gDoc->datafilesModifier())
+    , m_qlistview(new DatafilesQListView(m_set))
     , m_editor(new DatafileEditor)
 {
     setMinimumWidth(200);
@@ -68,7 +67,7 @@ void DatafilesSelector::setToolbarActions(QToolBar* toolbar)
     import1dData_action->setIcon(QIcon(":/images/shape-square-plus.svg"));
     import1dData_action->setToolTip("Import 1D data");
     connect(import1dData_action, &QAction::triggered,
-            [this] { m_qlistmodel->pushItems(RW::importData1D()); });
+            [this] { m_set->add_items(RW::importData1D()); });
 
     auto* import2dData_action = new QAction(this);
     toolbar->addAction(import2dData_action);
@@ -76,15 +75,15 @@ void DatafilesSelector::setToolbarActions(QToolBar* toolbar)
     import2dData_action->setIcon(QIcon(":/images/shape-square-plus.svg"));
     import2dData_action->setToolTip("Import 2D data");
     connect(import2dData_action, &QAction::triggered,
-            [this] { m_qlistmodel->pushItems(RW::importData2D()); });
+            [this] { m_set->add_items(RW::importData2D()); });
 
     m_rm_action = ActionFactory::createRemoveAction("data file");
     toolbar->addAction(m_rm_action);
-    connect(m_rm_action, &QAction::triggered, m_qlistmodel, &DatafilesQModel::deleteItem);
+    connect(m_rm_action, &QAction::triggered, m_set, &DatafilesSet::delete_current);
 }
 
 void DatafilesSelector::updateActions()
 {
-    bool enabled = gDoc->datafiles()->currentIndex() != size_t(-1);
+    bool enabled = m_set->currentIndex() != size_t(-1);
     m_rm_action->setEnabled(enabled);
 }
diff --git a/GUI/View/Data/DatafilesSelector.h b/GUI/View/List/DatafilesSelector.h
similarity index 81%
rename from GUI/View/Data/DatafilesSelector.h
rename to GUI/View/List/DatafilesSelector.h
index 4cdd16cc9239e40379246f202d31635ac2302daa..978cb5260665ae9791519bee8a82cdaeb2f25f66 100644
--- a/GUI/View/Data/DatafilesSelector.h
+++ b/GUI/View/List/DatafilesSelector.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/View/Data/DatafilesSelector.h
+//! @file      GUI/View/List/DatafilesSelector.h
 //! @brief     Defines class DatafilesSelector.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,14 +12,14 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_VIEW_DATA_DATAFILESSELECTOR_H
-#define BORNAGAIN_GUI_VIEW_DATA_DATAFILESSELECTOR_H
+#ifndef BORNAGAIN_GUI_VIEW_LIST_DATAFILESSELECTOR_H
+#define BORNAGAIN_GUI_VIEW_LIST_DATAFILESSELECTOR_H
 
 #include <QWidget>
 
 class DatafileEditor;
 class DatafilesQListView;
-class DatafilesQModel;
+class DatafilesSet;
 class QToolBar;
 
 //! For viewing and selecting loaded datafiles.
@@ -38,11 +38,11 @@ private:
     void setToolbarActions(QToolBar* toolbar);
     void updateActions();
 
-    DatafilesQModel* m_qlistmodel;
+    DatafilesSet* m_set;
     DatafilesQListView* m_qlistview;
     DatafileEditor* m_editor;
 
     QAction* m_rm_action;
 };
 
-#endif // BORNAGAIN_GUI_VIEW_DATA_DATAFILESSELECTOR_H
+#endif // BORNAGAIN_GUI_VIEW_LIST_DATAFILESSELECTOR_H
diff --git a/GUI/View/Views/DataView.cpp b/GUI/View/Views/DataView.cpp
index e87c2da6e6406081c86409983ee9f77ffe793ceb..f5c2eac59d25c6798147421d413a2bf1fda267ac 100644
--- a/GUI/View/Views/DataView.cpp
+++ b/GUI/View/Views/DataView.cpp
@@ -17,8 +17,8 @@
 #include "GUI/Model/Device/DatafileItem.h"
 #include "GUI/Model/Files/DatafilesSet.h"
 #include "GUI/Model/Project/ProjectDocument.h"
-#include "GUI/View/Data/DatafilesSelector.h"
 #include "GUI/View/Frame/StackedFrames.h"
+#include "GUI/View/List/DatafilesSelector.h"
 #include <QSplitter>
 #include <QVBoxLayout>
 
diff --git a/GUI/View/Views/SimulationView.cpp b/GUI/View/Views/SimulationView.cpp
index 0fd05d85e6ba7f113058463e6d8d617c5c313a6f..0c63dd6c8a40e8da5720b84d1eb3ad75f5381b46 100644
--- a/GUI/View/Views/SimulationView.cpp
+++ b/GUI/View/Views/SimulationView.cpp
@@ -15,12 +15,10 @@
 #include "GUI/View/Views/SimulationView.h"
 #include "GUI/Model/Data/DataItem.h"
 #include "GUI/Model/Device/DatafileItem.h"
-#include "GUI/Model/Device/InstrumentItems.h"
 #include "GUI/Model/Device/InstrumentsSet.h"
 #include "GUI/Model/Files/DatafilesSet.h"
 #include "GUI/Model/Job/JobItem.h"
 #include "GUI/Model/Project/ProjectDocument.h"
-#include "GUI/Model/Sample/SampleItem.h"
 #include "GUI/Model/Sample/SampleValidator.h"
 #include "GUI/Model/Sample/SamplesSet.h"
 #include "GUI/Model/Tune/JobsSet.h"
diff --git a/Tests/Unit/GUI/TestDatafilesModel.cpp b/Tests/Unit/GUI/TestDatafilesModel.cpp
index cd9bf6136a349c0c142e76f4c7749b17a156ff18..d744c5e52517b5d1af982bc0452e5b9c7db91840 100644
--- a/Tests/Unit/GUI/TestDatafilesModel.cpp
+++ b/Tests/Unit/GUI/TestDatafilesModel.cpp
@@ -83,20 +83,20 @@ TEST(TestDatafilesSet, saveXMLData)
 
     // add specular DatafileItems with non-default parameters
     auto* spec1 = new DatafileItem("spec1", df1);
-    model1.push_back(spec1);
+    model1.add_item(spec1);
     auto* t1 = new SpecularInstrumentItem;
     instrument_model.add_item(t1);
     spec1->linkToInstrument(t1);
 
     // add second specular DatafileItem
     auto* spec2 = new DatafileItem("spec2", df2);
-    model1.push_back(spec2);
+    model1.add_item(spec2);
 
     // add 2D DatafileItems with non-default parameters
     auto* intensity1 = new DatafileItem("GISAS", df2);
     auto* intensity2 = new DatafileItem("Offspec", df2);
-    model1.push_back(intensity1);
-    model1.push_back(intensity2);
+    model1.add_item(intensity1);
+    model1.add_item(intensity2);
     auto* t2 = new Scatter2DInstrumentItem;
     auto* t3 = new OffspecInstrumentItem;
     instrument_model.add_item(t2);
diff --git a/Tests/Unit/GUI/Utils.cpp b/Tests/Unit/GUI/Utils.cpp
index 935bbfa6597b88de38e5c2130e1601cb69c85ccb..c4fda02fe3070262d48f0e6c17c288524d3b0c1d 100644
--- a/Tests/Unit/GUI/Utils.cpp
+++ b/Tests/Unit/GUI/Utils.cpp
@@ -54,17 +54,17 @@ Datafield UTest::GUI::makeData2D(double value, int nx, double x_min, double x_ma
     return result;
 }
 
-DatafileItem* UTest::GUI::createRealData1D(const QString& name, DatafilesSet& model, double value)
+DatafileItem* UTest::GUI::createRealData1D(const QString& name, DatafilesSet& set, double value)
 {
     auto* dfi = new DatafileItem(name, makeData1D(value));
-    model.push_back(dfi);
+    set.add_item(dfi);
     return dfi;
 }
 
-DatafileItem* UTest::GUI::createRealData2D(const QString& name, DatafilesSet& model, double value)
+DatafileItem* UTest::GUI::createRealData2D(const QString& name, DatafilesSet& set, double value)
 {
     auto* dfi = new DatafileItem(name, makeData2D(value));
-    model.push_back(dfi);
+    set.add_item(dfi);
     return dfi;
 }
 
diff --git a/Tests/Unit/GUI/Utils.h b/Tests/Unit/GUI/Utils.h
index 5ebe0b224df5bff305639382eb3bfcac237e4c36..ca117b7c787e872a7d56f9d55308811765f55640 100644
--- a/Tests/Unit/GUI/Utils.h
+++ b/Tests/Unit/GUI/Utils.h
@@ -36,10 +36,10 @@ Datafield makeData2D(double value, int nx = 5, double x_min = -1.0, double x_max
                      double y_min = 0.0, double y_max = 2.0);
 
 //! Creates real 1D data item initialized with Datafield
-DatafileItem* createRealData1D(const QString& name, DatafilesSet& model, double value);
+DatafileItem* createRealData1D(const QString& name, DatafilesSet& set, double value);
 
 //! Creates real 2D data item initialized with Datafield
-DatafileItem* createRealData2D(const QString& name, DatafilesSet& model, double value);
+DatafileItem* createRealData2D(const QString& name, DatafilesSet& set, double value);
 
 //! Helper function to test if data are the same.
 bool isTheSame(const Datafield& data1, const Datafield& data2);