diff --git a/GUI/coregui/Models/ApplicationModels.cpp b/GUI/coregui/Models/ApplicationModels.cpp
index 0ab0eb5275ab552f0eaa2cc5dd5a51db4e0b5b7a..b06e57f6642f81a2362c83c983cc89a8cb34e512 100644
--- a/GUI/coregui/Models/ApplicationModels.cpp
+++ b/GUI/coregui/Models/ApplicationModels.cpp
@@ -118,7 +118,6 @@ void ApplicationModels::resetModels()
     m_instrumentModel->clear();
     SessionItem *instrument = m_instrumentModel->insertNewItem(Constants::InstrumentType);
     instrument->setItemName("Default GISAS");
-    m_instrumentModel->insertNewItem(Constants::DetectorContainerType, m_instrumentModel->indexOfItem(instrument));
 
 //    m_realDataModel->insertNewItem(Constants::RealDataType);
 //    m_realDataModel->insertNewItem(Constants::RealDataType);
diff --git a/GUI/coregui/Models/GUIObjectBuilder.cpp b/GUI/coregui/Models/GUIObjectBuilder.cpp
index 144d5d4e6c51c0d68704e57746c5340983987264..74f23ef483efefe5f61b5414d0d7ff33c594e7c5 100644
--- a/GUI/coregui/Models/GUIObjectBuilder.cpp
+++ b/GUI/coregui/Models/GUIObjectBuilder.cpp
@@ -50,6 +50,7 @@
 #include "TransformFromDomain.h"
 #include "TransformationItem.h"
 #include "InstrumentItem.h"
+#include "DetectorItems.h"
 #include "Units.h"
 #include "VectorItem.h"
 
@@ -111,13 +112,11 @@ SessionItem* GUIObjectBuilder::populateInstrumentModel(
     TransformFromDomain::setItemFromSample(&beamItem, simulation);
 
     // detector
-    DetectorContainerItem* detectorItem = dynamic_cast<DetectorContainerItem*>(instrumentModel->insertNewItem(
-        Constants::DetectorContainerType, instrumentModel->indexOfItem(instrumentItem)));
-    TransformFromDomain::setItemFromSample(detectorItem, simulation);
+    auto& detectorItem = instrumentItem->item<DetectorContainerItem>(InstrumentItem::P_DETECTOR);
+    TransformFromDomain::setItemFromSample(&detectorItem, simulation);
 
     // detector masks
-    TransformFromDomain::setDetectorMasks(detectorItem, simulation);
-
+    TransformFromDomain::setDetectorMasks(&detectorItem, simulation);
 
     return instrumentItem;
 }
diff --git a/GUI/coregui/Models/InstrumentItem.cpp b/GUI/coregui/Models/InstrumentItem.cpp
index 826b9c8b2f971747ab25bdf6d4e13f2c6da4c236..09f4aa69f99a9455d4cd0d6b47e86da126a95df5 100644
--- a/GUI/coregui/Models/InstrumentItem.cpp
+++ b/GUI/coregui/Models/InstrumentItem.cpp
@@ -24,7 +24,7 @@
 
 const QString InstrumentItem::P_IDENTIFIER = "Identifier";
 const QString InstrumentItem::P_BEAM = "Beam";
-const QString InstrumentItem::P_DETECTOR = "DetectorType";
+const QString InstrumentItem::P_DETECTOR = "Data tag";
 
 InstrumentItem::InstrumentItem()
     : SessionItem(Constants::InstrumentType)
@@ -34,10 +34,11 @@ InstrumentItem::InstrumentItem()
     addProperty(P_IDENTIFIER, GUIHelpers::createUuid())->setVisible(false);
 
     addGroupProperty(P_BEAM, Constants::BeamType);
+    addGroupProperty(P_DETECTOR, Constants::DetectorContainerType);
 
-    const QString T_DATA = "Data tag";
-    registerTag(T_DATA, 0, -1, QStringList() << Constants::DetectorContainerType);
-    setDefaultTag(T_DATA);
+//    const QString T_DATA = "Data tag";
+//    registerTag(T_DATA, 0, -1, QStringList() << Constants::DetectorContainerType);
+    setDefaultTag(P_DETECTOR);
 }
 
 BeamItem *InstrumentItem::beamItem() const
diff --git a/GUI/coregui/Models/ModelPath.cpp b/GUI/coregui/Models/ModelPath.cpp
index 66cdba8dae46ca9b2e552961b6ad23c3d978a8ea..5de7f351f539b2d736599bf197537092b0001f85 100644
--- a/GUI/coregui/Models/ModelPath.cpp
+++ b/GUI/coregui/Models/ModelPath.cpp
@@ -17,6 +17,7 @@
 #include "ModelPath.h"
 #include "SessionModel.h"
 #include "JobItem.h"
+#include "InstrumentItem.h"
 
 QString ModelPath::getPathFromIndex(const QModelIndex& index)
 {
@@ -88,7 +89,7 @@ bool ModelPath::isValidItem(SessionModel* model, SessionItem* item, const QModel
 bool ModelPath::isTranslatable(const SessionItem* item, const QString& par_name)
 {
     Q_UNUSED(item);
-    if (par_name.contains(Constants::DetectorContainerType))
+    if (par_name.contains(InstrumentItem::P_DETECTOR))
         return false;
     if (par_name.contains(Constants::DistributionSigmaFactor))
         return false;
diff --git a/GUI/coregui/Views/InstrumentView.cpp b/GUI/coregui/Views/InstrumentView.cpp
index 11c2d3c872990b33a7c6cc4881bd6a6daf690a31..62714ee7d9d2eff7fe8b3fb02095f36200e58986 100644
--- a/GUI/coregui/Views/InstrumentView.cpp
+++ b/GUI/coregui/Views/InstrumentView.cpp
@@ -111,8 +111,6 @@ void InstrumentView::onAddInstrument()
 {
     SessionItem *instrument = m_instrumentModel->insertNewItem(Constants::InstrumentType);
     instrument->setItemName(getNewInstrumentName("Default GISAS"));
-    m_instrumentModel->insertNewItem(
-        Constants::DetectorContainerType, m_instrumentModel->indexOfItem(instrument));
     QModelIndex itemIndex = m_instrumentModel->indexOfItem(instrument);
     m_instrumentSelector->getSelectionModel()->clearSelection();
     m_instrumentSelector->getSelectionModel()->select(itemIndex, QItemSelectionModel::Select);
diff --git a/Tests/UnitTests/GUI/TestSessionModel.h b/Tests/UnitTests/GUI/TestSessionModel.h
index 11e0d2b45eaf224522f963c2bf03fcb59d08cf4c..f6c0113689f445f2789d9ac2165321917a405948 100644
--- a/Tests/UnitTests/GUI/TestSessionModel.h
+++ b/Tests/UnitTests/GUI/TestSessionModel.h
@@ -75,11 +75,9 @@ inline void TestSessionModel::test_InstrumentModel_CreateCopy()
     InstrumentModel *model1 = new InstrumentModel();
     SessionItem *instrument1 = model1->insertNewItem(Constants::InstrumentType);
     instrument1->setItemName("instrument1");
-    model1->insertNewItem(Constants::DetectorContainerType, model1->indexOfItem(instrument1));
 
     SessionItem *instrument2 = model1->insertNewItem(Constants::InstrumentType);
     instrument2->setItemName("instrument2");
-    model1->insertNewItem(Constants::DetectorContainerType, model1->indexOfItem(instrument2));
 
     QString buffer1;
     QXmlStreamWriter writer1(&buffer1);
@@ -101,11 +99,9 @@ inline void TestSessionModel::test_InstrumentModel_CreatePartialCopy()
     InstrumentModel *model1 = new InstrumentModel();
     SessionItem *instrument1 = model1->insertNewItem(Constants::InstrumentType);
     instrument1->setItemName("instrument1");
-    model1->insertNewItem(Constants::DetectorContainerType, model1->indexOfItem(instrument1));
 
     SessionItem *instrument2 = model1->insertNewItem(Constants::InstrumentType);
     instrument2->setItemName("instrument2");
-    model1->insertNewItem(Constants::DetectorContainerType, model1->indexOfItem(instrument2));
 
 //    QString buffer1;
 //    QXmlStreamWriter writer1(&buffer1);
@@ -142,8 +138,6 @@ inline void TestSessionModel::test_copyParameterizedItem()
     InstrumentModel *instrumentModel = new InstrumentModel();
     SessionItem *instrument1 = instrumentModel->insertNewItem(Constants::InstrumentType);
     instrument1->setItemName("instrument1");
-    instrumentModel->insertNewItem(Constants::DetectorContainerType, instrumentModel->indexOfItem(instrument1));
-    instrumentModel->insertNewItem(Constants::BeamType, instrumentModel->indexOfItem(instrument1));
 
     JobModel *jobModel = new JobModel();
     SessionItem *jobItem = jobModel->insertNewItem(Constants::JobItemType);