diff --git a/GUI/coregui/Models/DomainObjectBuilder.cpp b/GUI/coregui/Models/DomainObjectBuilder.cpp
index 2e1de76d6160396f921968923f4476936132242f..801d9b3e4513ca880226dd78e90420791d1815ae 100644
--- a/GUI/coregui/Models/DomainObjectBuilder.cpp
+++ b/GUI/coregui/Models/DomainObjectBuilder.cpp
@@ -127,7 +127,7 @@ DomainObjectBuilder::buildInterferenceFunction(const SessionItem& item) const
     return iffItem->createInterferenceFunction();
 }
 
-std::unique_ptr<Instrument> DomainObjectBuilder::buildInstrument(const InstrumentItem& instrumentItem) const
+std::unique_ptr<Instrument> DomainObjectBuilder::buildInstrument(const GISASInstrumentItem& instrumentItem) const
 {
     auto instrument = std::make_unique<Instrument>();
 
diff --git a/GUI/coregui/Models/DomainObjectBuilder.h b/GUI/coregui/Models/DomainObjectBuilder.h
index f0a636fa5a1113680806da26b0b7ee373cdeb5d2..b1b163db2da356c53f4b9e5069fee81820faa1c4 100644
--- a/GUI/coregui/Models/DomainObjectBuilder.h
+++ b/GUI/coregui/Models/DomainObjectBuilder.h
@@ -25,7 +25,7 @@ class ParticleLayout;
 class IInterferenceFunction;
 class Beam;
 class SessionItem;
-class InstrumentItem;
+class GISASInstrumentItem;
 
 class BA_CORE_API_ DomainObjectBuilder
 {
@@ -35,7 +35,7 @@ public:
     std::unique_ptr<ParticleLayout> buildParticleLayout(const SessionItem &item) const;
     std::unique_ptr<IInterferenceFunction>
     buildInterferenceFunction(const SessionItem &item) const;
-    std::unique_ptr<Instrument> buildInstrument(const InstrumentItem& instrumentItem) const;
+    std::unique_ptr<Instrument> buildInstrument(const GISASInstrumentItem& instrumentItem) const;
 };
 
 #endif // DOMAINOBJECTBUILDER_H
diff --git a/GUI/coregui/Models/DomainSimulationBuilder.cpp b/GUI/coregui/Models/DomainSimulationBuilder.cpp
index b716f830fa24818245307a1d1f625aac67d46326..e9e6f6350a27fae7464f1debeafee810246ab9bc 100644
--- a/GUI/coregui/Models/DomainSimulationBuilder.cpp
+++ b/GUI/coregui/Models/DomainSimulationBuilder.cpp
@@ -28,7 +28,7 @@
 
 //! Creates domain simulation from sample and instrument items.
 GISASSimulation *DomainSimulationBuilder::getSimulation(const MultiLayerItem *sampleItem,
-                                                        const InstrumentItem *instrumentItem,
+                                                        const GISASInstrumentItem *instrumentItem,
                                                         const SimulationOptionsItem *optionsItem)
 {
     if(sampleItem == nullptr || instrumentItem==nullptr) {
diff --git a/GUI/coregui/Models/DomainSimulationBuilder.h b/GUI/coregui/Models/DomainSimulationBuilder.h
index a59af0c0e016200bfbf640229661edb0da7e5023..d03af4144df95a74d7521c99caac16ed02ce0a77 100644
--- a/GUI/coregui/Models/DomainSimulationBuilder.h
+++ b/GUI/coregui/Models/DomainSimulationBuilder.h
@@ -19,7 +19,7 @@
 
 class GISASSimulation;
 class MultiLayerItem;
-class InstrumentItem;
+class GISASInstrumentItem;
 class SimulationOptionsItem;
 
 //! The DomainSimulationBuilder class builds the domain simulation
@@ -28,7 +28,7 @@ class BA_CORE_API_ DomainSimulationBuilder
 {
 public:
     static GISASSimulation *getSimulation(const MultiLayerItem *sampleItem,
-                                          const InstrumentItem *instrumentItem,
+                                          const GISASInstrumentItem *instrumentItem,
                                           const SimulationOptionsItem *optionsItem = 0);
 };
 
diff --git a/GUI/coregui/Models/GUIObjectBuilder.cpp b/GUI/coregui/Models/GUIObjectBuilder.cpp
index 78e8bc5f44f475ef662011e675ada06fe8d29cf8..7c8ccf3c33f56f3150f8386e18395625c2440ace 100644
--- a/GUI/coregui/Models/GUIObjectBuilder.cpp
+++ b/GUI/coregui/Models/GUIObjectBuilder.cpp
@@ -102,7 +102,7 @@ SessionItem* GUIObjectBuilder::populateInstrumentModel(
 {
     Q_ASSERT(p_instrument_model);
 
-    InstrumentItem* p_instrument_item = dynamic_cast<InstrumentItem*>
+    GISASInstrumentItem* p_instrument_item = dynamic_cast<GISASInstrumentItem*>
             (p_instrument_model->insertNewItem(Constants::GISASInstrumentType));
 
     if(instrument_name.isEmpty()) {
@@ -112,7 +112,7 @@ SessionItem* GUIObjectBuilder::populateInstrumentModel(
     }
 
     // beam
-    auto& beam_item = p_instrument_item->item<BeamItem>(InstrumentItem::P_BEAM);
+    auto& beam_item = p_instrument_item->item<BeamItem>(GISASInstrumentItem::P_BEAM);
     TransformFromDomain::setItemFromSample(&beam_item, simulation);
 
     // detector
diff --git a/GUI/coregui/Models/InstrumentItems.cpp b/GUI/coregui/Models/InstrumentItems.cpp
index 79512e9ff917c54a83b2af454d120d3efc5504c4..0cc2d89598a80701b40f1212faf9d0ba3fac6ed4 100644
--- a/GUI/coregui/Models/InstrumentItems.cpp
+++ b/GUI/coregui/Models/InstrumentItems.cpp
@@ -23,12 +23,12 @@
 #include "MaskItems.h"
 #include "ParameterTranslators.h"
 
-const QString InstrumentItem::P_IDENTIFIER = "Identifier";
-const QString InstrumentItem::P_BEAM = "Beam";
-const QString InstrumentItem::P_DETECTOR = "Detector";
-const QString InstrumentItem::P_BACKGROUND = "Background";
+const QString GISASInstrumentItem::P_IDENTIFIER = "Identifier";
+const QString GISASInstrumentItem::P_BEAM = "Beam";
+const QString GISASInstrumentItem::P_DETECTOR = "Detector";
+const QString GISASInstrumentItem::P_BACKGROUND = "Background";
 
-InstrumentItem::InstrumentItem()
+GISASInstrumentItem::GISASInstrumentItem()
     : SessionItem(Constants::GISASInstrumentType)
 {
     setItemName(Constants::GISASInstrumentType);
@@ -44,47 +44,47 @@ InstrumentItem::InstrumentItem()
     addGroupProperty(P_BACKGROUND, Constants::BackgroundGroup);
 }
 
-BeamItem *InstrumentItem::beamItem() const
+BeamItem *GISASInstrumentItem::beamItem() const
 {
     return &item<BeamItem>(P_BEAM);
 }
 
-DetectorItem* InstrumentItem::detectorItem() const
+DetectorItem* GISASInstrumentItem::detectorItem() const
 {
     return &groupItem<DetectorItem>(P_DETECTOR);
 }
 
-GroupItem* InstrumentItem::detectorGroup()
+GroupItem* GISASInstrumentItem::detectorGroup()
 {
     return &item<GroupItem>(P_DETECTOR);
 }
 
-BackgroundItem* InstrumentItem::backgroundItem() const
+BackgroundItem* GISASInstrumentItem::backgroundItem() const
 {
     return &groupItem<BackgroundItem>(P_BACKGROUND);
 }
 
-GroupItem* InstrumentItem::backgroundGroup()
+GroupItem* GISASInstrumentItem::backgroundGroup()
 {
     return &item<GroupItem>(P_BACKGROUND);
 }
 
-void InstrumentItem::setDetectorGroup(const QString& modelType)
+void GISASInstrumentItem::setDetectorGroup(const QString& modelType)
 {
     setGroupProperty(P_DETECTOR, modelType);
 }
 
-void InstrumentItem::clearMasks()
+void GISASInstrumentItem::clearMasks()
 {
     detectorItem()->clearMasks();
 }
 
-void InstrumentItem::importMasks(MaskContainerItem* maskContainer)
+void GISASInstrumentItem::importMasks(MaskContainerItem* maskContainer)
 {
     detectorItem()->importMasks(maskContainer);
 }
 
-QStringList InstrumentItem::translateList(const QStringList& list) const
+QStringList GISASInstrumentItem::translateList(const QStringList& list) const
 {
     QStringList result;
     // Add constant background directly to simulation
diff --git a/GUI/coregui/Models/InstrumentItems.h b/GUI/coregui/Models/InstrumentItems.h
index 2d1cac5e57e088386a782c08378aed29522ba24b..864b009cbf058e7a4138539dd46292197235a545 100644
--- a/GUI/coregui/Models/InstrumentItems.h
+++ b/GUI/coregui/Models/InstrumentItems.h
@@ -23,14 +23,14 @@ class DetectorItem;
 class MaskContainerItem;
 class GroupItem;
 
-class BA_CORE_API_ InstrumentItem : public SessionItem
+class BA_CORE_API_ GISASInstrumentItem : public SessionItem
 {
 public:
     static const QString P_IDENTIFIER;
     static const QString P_BEAM;
     static const QString P_DETECTOR;
     static const QString P_BACKGROUND;
-    InstrumentItem();
+    GISASInstrumentItem();
 
     BeamItem* beamItem() const;
     DetectorItem* detectorItem() const;
diff --git a/GUI/coregui/Models/InstrumentModel.cpp b/GUI/coregui/Models/InstrumentModel.cpp
index d97daca1e934da0062b35136a1207ad0abd8f7e4..c378beaa3920e87c160a2c73bb5ee7426bf8666c 100644
--- a/GUI/coregui/Models/InstrumentModel.cpp
+++ b/GUI/coregui/Models/InstrumentModel.cpp
@@ -29,8 +29,8 @@ InstrumentModel *InstrumentModel::createCopy(SessionItem *parent)
     return result;
 }
 
-InstrumentItem *InstrumentModel::instrumentItem(const QString &instrument_name)
+GISASInstrumentItem *InstrumentModel::instrumentItem(const QString &instrument_name)
 {
-    return dynamic_cast<InstrumentItem *>(topItem(Constants::GISASInstrumentType, instrument_name));
+    return dynamic_cast<GISASInstrumentItem *>(topItem(Constants::GISASInstrumentType, instrument_name));
 }
 
diff --git a/GUI/coregui/Models/InstrumentModel.h b/GUI/coregui/Models/InstrumentModel.h
index 2ab882ba8b9fae9a9f5062f6a6f0ce0f87054800..0e0d4e651dda7d804526fc254b314752323ecbba 100644
--- a/GUI/coregui/Models/InstrumentModel.h
+++ b/GUI/coregui/Models/InstrumentModel.h
@@ -17,7 +17,7 @@
 
 #include "SessionModel.h"
 
-class InstrumentItem;
+class GISASInstrumentItem;
 
 class BA_CORE_API_ InstrumentModel : public SessionModel
 {
@@ -29,7 +29,7 @@ public:
 
     virtual InstrumentModel *createCopy(SessionItem *parent=0);
 
-    InstrumentItem *instrumentItem(const QString &instrument_name = QString());
+    GISASInstrumentItem *instrumentItem(const QString &instrument_name = QString());
 };
 
 #endif // INSTRUMENTMODEL_H
diff --git a/GUI/coregui/Models/ItemFactory.cpp b/GUI/coregui/Models/ItemFactory.cpp
index 088b79799f60b529df237c958d5658fa683dbfb7..b0d7739a95b96e80b438696fbcbd8d1a91ceb295 100644
--- a/GUI/coregui/Models/ItemFactory.cpp
+++ b/GUI/coregui/Models/ItemFactory.cpp
@@ -77,7 +77,7 @@ ItemFactory::ItemMap_t initializeItemMap() {
     result[Constants::InterferenceFunction2DParaCrystalType] = &createInstance<InterferenceFunction2DParaCrystalItem>;
     result[Constants::InterferenceFunction2DLatticeType] = &createInstance<InterferenceFunction2DLatticeItem>;
     result[Constants::InterferenceFunction1DLatticeType] = &createInstance<InterferenceFunction1DLatticeItem>;
-    result[Constants::GISASInstrumentType] = &createInstance<InstrumentItem>;
+    result[Constants::GISASInstrumentType] = &createInstance<GISASInstrumentItem>;
     result[Constants::BeamType] = &createInstance<BeamItem>;
     result[Constants::BackgroundNoneType] = &createInstance<BackgroundNoneItem>;
     result[Constants::ConstantBackgroundType] = &createInstance<ConstantBackgroundItem>;
diff --git a/GUI/coregui/Models/JobItem.cpp b/GUI/coregui/Models/JobItem.cpp
index 16505c27e7a6a16e95dc0e1096f3cf36869c7671..58c21ae27048435515c63dfedc90fbe8d53342a1 100644
--- a/GUI/coregui/Models/JobItem.cpp
+++ b/GUI/coregui/Models/JobItem.cpp
@@ -243,9 +243,9 @@ MultiLayerItem *JobItem::multiLayerItem()
 
 //! Returns InstrumentItem of this JobItem, if from_backup=true, then backup'ed version of
 //! the instrument will be used
-InstrumentItem *JobItem::instrumentItem()
+GISASInstrumentItem *JobItem::instrumentItem()
 {
-    return dynamic_cast<InstrumentItem*>(getItem(T_INSTRUMENT));
+    return dynamic_cast<GISASInstrumentItem*>(getItem(T_INSTRUMENT));
 }
 
 void JobItem::setResults(const GISASSimulation *simulation)
diff --git a/GUI/coregui/Models/JobItem.h b/GUI/coregui/Models/JobItem.h
index f05c3c4dfed83701ab8d71df360c4def934edbe9..4c36d7e9f2c1daa8577a20f006bbb9b963a7544d 100644
--- a/GUI/coregui/Models/JobItem.h
+++ b/GUI/coregui/Models/JobItem.h
@@ -19,7 +19,7 @@
 class IntensityDataItem;
 class GISASSimulation;
 class MultiLayerItem;
-class InstrumentItem;
+class GISASInstrumentItem;
 class SimulationOptionsItem;
 class FitSuiteItem;
 class ParameterContainerItem;
@@ -87,7 +87,7 @@ public:
 
     MultiLayerItem *multiLayerItem();
 
-    InstrumentItem *instrumentItem();
+    GISASInstrumentItem *instrumentItem();
 
     SimulationOptionsItem *getSimulationOptionsItem();
 
diff --git a/GUI/coregui/Models/JobItemUtils.cpp b/GUI/coregui/Models/JobItemUtils.cpp
index 66b4406a00756e71fbe19e066944bc35b4decc6d..c9b552a0e038f09ec77cf1d7a7e814d45f856329 100644
--- a/GUI/coregui/Models/JobItemUtils.cpp
+++ b/GUI/coregui/Models/JobItemUtils.cpp
@@ -70,7 +70,7 @@ void JobItemUtils::setResults(IntensityDataItem* intensityItem, const GISASSimul
 //! InstrumentItem is used to get domain's detector map for given units.
 
 void JobItemUtils::updateDataAxes(IntensityDataItem* intensityItem,
-                                  const InstrumentItem* instrumentItem)
+                                  const GISASInstrumentItem* instrumentItem)
 {
     Q_ASSERT(intensityItem);
     Q_ASSERT(instrumentItem);
@@ -145,7 +145,7 @@ AxesUnits JobItemUtils::preferableGUIAxesUnits(AxesUnits default_units)
 //! Sets axes units suitable for given instrument.
 
 void JobItemUtils::setIntensityItemAxesUnits(IntensityDataItem* intensityItem,
-                                              const InstrumentItem* instrumentItem)
+                                              const GISASInstrumentItem* instrumentItem)
 {
     DomainObjectBuilder builder;
     auto instrument = builder.buildInstrument(*instrumentItem);
@@ -192,7 +192,7 @@ void JobItemUtils::updateAxesTitle(IntensityDataItem* intensityItem)
 }
 
 void JobItemUtils::createDefaultDetectorMap(IntensityDataItem* intensityItem,
-                                            const InstrumentItem* instrumentItem)
+                                            const GISASInstrumentItem* instrumentItem)
 {
     DomainObjectBuilder builder;
     auto instrument = builder.buildInstrument(*instrumentItem);
@@ -207,7 +207,7 @@ void JobItemUtils::createDefaultDetectorMap(IntensityDataItem* intensityItem,
 }
 
 //! creates detector map from instrument description with axes corresponding to given units
-OutputData<double>* JobItemUtils::createDetectorMap(const InstrumentItem* instrumentItem,
+OutputData<double>* JobItemUtils::createDetectorMap(const GISASInstrumentItem* instrumentItem,
                                                      AxesUnits units)
 {
     DomainObjectBuilder builder;
diff --git a/GUI/coregui/Models/JobItemUtils.h b/GUI/coregui/Models/JobItemUtils.h
index 25a6f48916a029ee972019551e15dc8e9570cb87..dfb574737adc7056249456831ed95c7f23ef498d 100644
--- a/GUI/coregui/Models/JobItemUtils.h
+++ b/GUI/coregui/Models/JobItemUtils.h
@@ -20,7 +20,7 @@
 
 class GISASSimulation;
 class IntensityDataItem;
-class InstrumentItem;
+class GISASInstrumentItem;
 class JobItem;
 
 //! Contains set of convenience methods to set data to the IntensityDataItem from domain simulation.
@@ -34,7 +34,7 @@ BA_CORE_API_ void setResults(IntensityDataItem* intensityItem, const GISASSimula
 
 //! updates axes of OutputData in IntensityData item
 BA_CORE_API_ void updateDataAxes(IntensityDataItem* intensityItem,
-                                 const InstrumentItem* instrumentItem);
+                                 const GISASInstrumentItem* instrumentItem);
 
 //! loads intensity data from project directory
 BA_CORE_API_ void loadIntensityData(IntensityDataItem* intensityItem, const QString& projectDir);
@@ -52,7 +52,7 @@ BA_CORE_API_ AxesUnits axesUnitsFromName(const QString& name);
 BA_CORE_API_ AxesUnits preferableGUIAxesUnits(AxesUnits default_units);
 
 BA_CORE_API_ void setIntensityItemAxesUnits(IntensityDataItem* intensityItem,
-                                            const InstrumentItem* instrumentItem);
+                                            const GISASInstrumentItem* instrumentItem);
 
 BA_CORE_API_ void setIntensityItemAxesUnits(IntensityDataItem* intensityItem,
                                             const IDetector* detector);
@@ -60,9 +60,9 @@ BA_CORE_API_ void setIntensityItemAxesUnits(IntensityDataItem* intensityItem,
 BA_CORE_API_ void updateAxesTitle(IntensityDataItem* intensityItem);
 
 BA_CORE_API_ void createDefaultDetectorMap(IntensityDataItem* intensityItem,
-                                           const InstrumentItem* instrumentItem);
+                                           const GISASInstrumentItem* instrumentItem);
 
-BA_CORE_API_ OutputData<double>* createDetectorMap(const InstrumentItem* instrumentItem,
+BA_CORE_API_ OutputData<double>* createDetectorMap(const GISASInstrumentItem* instrumentItem,
                                                    AxesUnits units);
 }
 
diff --git a/GUI/coregui/Models/JobModel.cpp b/GUI/coregui/Models/JobModel.cpp
index d80921bae0b6ab6fe6e4719a3f266b2178a980ab..259fbd3c831d8cd120b8e58bfcbc13a1eebc1c17 100644
--- a/GUI/coregui/Models/JobModel.cpp
+++ b/GUI/coregui/Models/JobModel.cpp
@@ -71,7 +71,7 @@ JobItem *JobModel::getJobItemForIdentifier(const QString &identifier)
 
 //! Main method to add a job
 JobItem *JobModel::addJob(const MultiLayerItem *multiLayerItem,
-                          const InstrumentItem *instrumentItem,
+                          const GISASInstrumentItem *instrumentItem,
                           const RealDataItem *realDataItem,
                           const SimulationOptionsItem *optionItem)
 {
diff --git a/GUI/coregui/Models/JobModel.h b/GUI/coregui/Models/JobModel.h
index c0f381acf3f4021758b40c51b28b28b37ca47e36..93f4ee9dac5b7500037dccf87b19990d2a7ebca7 100644
--- a/GUI/coregui/Models/JobModel.h
+++ b/GUI/coregui/Models/JobModel.h
@@ -18,7 +18,7 @@
 class JobQueueData;
 class JobItem;
 class MultiLayerItem;
-class InstrumentItem;
+class GISASInstrumentItem;
 class RealDataItem;
 class SimulationOptionsItem;
 
@@ -36,7 +36,7 @@ public:
     JobItem *getJobItemForIdentifier(const QString &identifier);
 
     JobItem *addJob(const MultiLayerItem *multiLayerItem,
-                    const InstrumentItem *instrumentItem,
+                    const GISASInstrumentItem *instrumentItem,
                     const RealDataItem *realDataItem,
                     const SimulationOptionsItem *optionItem);
 
diff --git a/GUI/coregui/Models/RealDataItem.cpp b/GUI/coregui/Models/RealDataItem.cpp
index b7a2d998a6cc29ae379e00a6aa212b171be66b6a..da97a2f8e464b7f5815d9736b50ea1dc54e78822 100644
--- a/GUI/coregui/Models/RealDataItem.cpp
+++ b/GUI/coregui/Models/RealDataItem.cpp
@@ -99,7 +99,7 @@ void RealDataItem::setOutputData(OutputData<double> *data)
     item->setOutputData(data);
 }
 
-void RealDataItem::linkToInstrument(const InstrumentItem *instrument, bool make_update)
+void RealDataItem::linkToInstrument(const GISASInstrumentItem *instrument, bool make_update)
 {
     m_linkedInstrument = instrument;
     if(make_update)
diff --git a/GUI/coregui/Models/RealDataItem.h b/GUI/coregui/Models/RealDataItem.h
index 21764eda1545696774eb8a85be93901852c9da9f..dc5aa93807c730f02f7541d16cb1c002ec1d316f 100644
--- a/GUI/coregui/Models/RealDataItem.h
+++ b/GUI/coregui/Models/RealDataItem.h
@@ -19,7 +19,7 @@
 
 template <class T> class OutputData;
 class IntensityDataItem;
-class InstrumentItem;
+class GISASInstrumentItem;
 
 //! The RealDataItem class represents intensity data imported from file and intended for fitting.
 
@@ -36,12 +36,12 @@ public:
 
     void setOutputData(OutputData<double> *data);
 
-    void linkToInstrument(const InstrumentItem *instrument, bool make_update = true);
+    void linkToInstrument(const GISASInstrumentItem *instrument, bool make_update = true);
 
 private:
     void updateIntensityDataFileName();
     void updateToInstrument();
-    const InstrumentItem *m_linkedInstrument;
+    const GISASInstrumentItem *m_linkedInstrument;
 };
 
 #endif // REALDATAITEM_H
diff --git a/GUI/coregui/Models/TransformFromDomain.cpp b/GUI/coregui/Models/TransformFromDomain.cpp
index 8bc1dcd05fe9f828aed07220ee1a7e1bf35c5461..1b26fb7da4bb96cf8a1bbb5d142321d43c60142a 100644
--- a/GUI/coregui/Models/TransformFromDomain.cpp
+++ b/GUI/coregui/Models/TransformFromDomain.cpp
@@ -245,7 +245,7 @@ void TransformFromDomain::setItemFromSample(BeamItem* beam_item, const GISASSimu
     SetVectorItem(*beam_item, BeamItem::P_POLARIZATION, beam.getBlochVector());
 }
 
-void TransformFromDomain::setInstrumentDetectorFromSample(InstrumentItem* instrument_item,
+void TransformFromDomain::setInstrumentDetectorFromSample(GISASInstrumentItem* instrument_item,
                                                           const GISASSimulation& simulation)
 {
     const IDetector* p_detector = simulation.getInstrument().getDetector();
@@ -525,19 +525,19 @@ void TransformFromDomain::setItemFromSample(BeamDistributionItem* beam_distribut
     setDistribution(beam_distribution_item, parameter_distribution, group_name, unit_factor);
 }
 
-void TransformFromDomain::setBackground(InstrumentItem* instrument_item,
+void TransformFromDomain::setBackground(GISASInstrumentItem* instrument_item,
                                         const GISASSimulation& simulation)
 {
     auto p_bg = simulation.background();
     if (auto p_constant_bg = dynamic_cast<const ConstantBackground*>(p_bg)) {
         auto constant_bg_item = instrument_item->setGroupProperty(
-                                    InstrumentItem::P_BACKGROUND,
+                                    GISASInstrumentItem::P_BACKGROUND,
                                     Constants::ConstantBackgroundType);
         double value = p_constant_bg->backgroundValue();
         constant_bg_item->setItemValue(ConstantBackgroundItem::P_VALUE, value);
     }
     else if (dynamic_cast<const PoissonNoiseBackground*>(p_bg)) {
-        instrument_item->setGroupProperty(InstrumentItem::P_BACKGROUND,
+        instrument_item->setGroupProperty(GISASInstrumentItem::P_BACKGROUND,
                                           Constants::PoissonNoiseBackgroundType);
     }
 }
diff --git a/GUI/coregui/Models/TransformFromDomain.h b/GUI/coregui/Models/TransformFromDomain.h
index 2e28b704862c2aeb118d75aed0a05ae77175f5ea..b07eb45f346e96b50774434d3af1b58b4c15c7ae 100644
--- a/GUI/coregui/Models/TransformFromDomain.h
+++ b/GUI/coregui/Models/TransformFromDomain.h
@@ -39,7 +39,7 @@ class SphericalDetectorItem;
 class DetectorItem;
 class MaskContainerItem;
 class IDetector;
-class InstrumentItem;
+class GISASInstrumentItem;
 
 namespace TransformFromDomain
 {
@@ -72,7 +72,7 @@ BA_CORE_API_ bool isValidRoughness(const LayerRoughness* roughness);
 BA_CORE_API_ void setItemFromSample(BeamItem* beam_item,
                                     const GISASSimulation& simulation);
 
-BA_CORE_API_ void setInstrumentDetectorFromSample(InstrumentItem* detector_item,
+BA_CORE_API_ void setInstrumentDetectorFromSample(GISASInstrumentItem* detector_item,
                                                   const GISASSimulation& simulation);
 
 BA_CORE_API_ void setItemFromSample(SphericalDetectorItem* detector_item,
@@ -90,7 +90,7 @@ BA_CORE_API_ void setDetectorMasks(MaskContainerItem* container_item,
 BA_CORE_API_ void setItemFromSample(BeamDistributionItem* beam_distribution_item,
                                     const ParameterDistribution& parameter_distribution);
 
-BA_CORE_API_ void setBackground(InstrumentItem* instrument_item,
+BA_CORE_API_ void setBackground(GISASInstrumentItem* instrument_item,
                                 const GISASSimulation& simulation);
 }
 
diff --git a/GUI/coregui/Views/ImportDataWidgets/ImportDataAssistant.cpp b/GUI/coregui/Views/ImportDataWidgets/ImportDataAssistant.cpp
index a90e1da02605a77e8660ba3da5d4f234f2bdd27c..71b2102847c6545d0638b1cb9304301390ca5d05 100644
--- a/GUI/coregui/Views/ImportDataWidgets/ImportDataAssistant.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/ImportDataAssistant.cpp
@@ -95,7 +95,7 @@ OutputData<double> *ImportDataAssistant::createSimplifiedOutputData(const Output
     return result;
 }
 
-bool ImportDataAssistant::hasSameDimensions(const InstrumentItem *instrumentItem,
+bool ImportDataAssistant::hasSameDimensions(const GISASInstrumentItem *instrumentItem,
                                             const RealDataItem *realDataItem)
 {
     QString message;
@@ -104,7 +104,7 @@ bool ImportDataAssistant::hasSameDimensions(const InstrumentItem *instrumentItem
 
 //! Returns trues if [nxbin X nybin] of the detector is the same as in realData.
 
-bool ImportDataAssistant::hasSameDimensions(const InstrumentItem *instrumentItem,
+bool ImportDataAssistant::hasSameDimensions(const GISASInstrumentItem *instrumentItem,
                               const RealDataItem *realDataItem, QString &message)
 {
     bool isSame(true);
@@ -140,14 +140,14 @@ void ImportDataAssistant::realDataShape(const RealDataItem *realData, int &nx, i
 
 //! Returns shape of Instrument's detector axes.
 
-void ImportDataAssistant::detectorShape(const InstrumentItem *instrumentItem, int &nx, int &ny)
+void ImportDataAssistant::detectorShape(const GISASInstrumentItem *instrumentItem, int &nx, int &ny)
 {
     std::unique_ptr<IDetector2D> detector = instrumentItem ->detectorItem()->createDetector();
     nx = static_cast<int>(detector->getAxis(0).size());
     ny = static_cast<int>(detector->getAxis(1).size());
 }
 
-void ImportDataAssistant::setInstrumentShapeToData(InstrumentItem *instrumentItem,
+void ImportDataAssistant::setInstrumentShapeToData(GISASInstrumentItem *instrumentItem,
                                                    const RealDataItem *realDataItemItem)
 {
     int nxData(0), nyData(0);
diff --git a/GUI/coregui/Views/ImportDataWidgets/ImportDataAssistant.h b/GUI/coregui/Views/ImportDataWidgets/ImportDataAssistant.h
index 3bb6eff7061cf290d36173d800932dbba6cc7fac..d6b0e54b66b7586c6507374d0b5ec3f6d0317ed7 100644
--- a/GUI/coregui/Views/ImportDataWidgets/ImportDataAssistant.h
+++ b/GUI/coregui/Views/ImportDataWidgets/ImportDataAssistant.h
@@ -20,7 +20,7 @@
 
 template <class T> class OutputData;
 class RealDataItem;
-class InstrumentItem;
+class GISASInstrumentItem;
 
 //! The ImportDataAssistant class provides utility methods to import data files.
 
@@ -31,18 +31,18 @@ public:
 
     static OutputData<double> *createSimplifiedOutputData(const OutputData<double> &data);
 
-    static bool hasSameDimensions(const InstrumentItem *instrumentItem,
+    static bool hasSameDimensions(const GISASInstrumentItem *instrumentItem,
                                   const RealDataItem *realDataItem);
 
-    static bool hasSameDimensions(const InstrumentItem *instrumentItem,
+    static bool hasSameDimensions(const GISASInstrumentItem *instrumentItem,
                                   const RealDataItem *realDataItem,
                                   QString &message);
 
     static void realDataShape(const RealDataItem *realData, int &nx, int &ny);
 
-    static void detectorShape(const InstrumentItem *instrumentItem, int &nx, int &ny);
+    static void detectorShape(const GISASInstrumentItem *instrumentItem, int &nx, int &ny);
 
-    static void setInstrumentShapeToData(InstrumentItem *instrumentItem,
+    static void setInstrumentShapeToData(GISASInstrumentItem *instrumentItem,
                                          const RealDataItem *realDataItemItem);
 
 };
diff --git a/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.cpp b/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.cpp
index 617937678338569f2bbabd6c50bc204edd0f955f..99fd6f17866a151931b9698eca9cfe12d2ffd19f 100644
--- a/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.cpp
@@ -55,7 +55,7 @@ void LinkInstrumentManager::setModels(InstrumentModel *instrumentModel,
 
 //! Returns InstrumentItem for given identifier.
 
-InstrumentItem *LinkInstrumentManager::getInstrument(const QString &identifier)
+GISASInstrumentItem *LinkInstrumentManager::getInstrument(const QString &identifier)
 {
     for(int i=0; i<m_instrumentVec.size(); ++i)
         if(m_instrumentVec[i].m_identifier == identifier)
@@ -99,7 +99,7 @@ QString LinkInstrumentManager::instrumentIdentifier(int comboIndex)
 bool LinkInstrumentManager::canLinkDataToInstrument(const RealDataItem *realDataItem,
                                                     const QString &identifier)
 {
-    InstrumentItem *instrumentItem = getInstrument(identifier);
+    GISASInstrumentItem *instrumentItem = getInstrument(identifier);
 
     // linking to null instrument is possible, it means unlinking from currently linked
     if(instrumentItem == nullptr)
@@ -145,7 +145,7 @@ void LinkInstrumentManager::setOnInstrumentPropertyChange(SessionItem *instrumen
                                                           const QString &property)
 {
     Q_ASSERT(instrument);
-    if(property == SessionItem::P_NAME || property == InstrumentItem::P_IDENTIFIER) {
+    if(property == SessionItem::P_NAME || property == GISASInstrumentItem::P_IDENTIFIER) {
         updateInstrumentMap();
     }
 }
@@ -164,7 +164,7 @@ void LinkInstrumentManager::setOnRealDataPropertyChange(SessionItem *dataItem,
 
 //! Perform actions on instrument children change.
 
-void LinkInstrumentManager::onInstrumentChildChange(InstrumentItem *instrument, SessionItem *child)
+void LinkInstrumentManager::onInstrumentChildChange(GISASInstrumentItem *instrument, SessionItem *child)
 {
     if(child == nullptr)
         return;
@@ -208,7 +208,7 @@ void LinkInstrumentManager::updateLinks()
         Q_ASSERT(realDataItem);
 
         QString identifier = realDataItem->getItemValue(RealDataItem::P_INSTRUMENT_ID).toString();
-        InstrumentItem *instrumentItem = getInstrument(identifier);
+        GISASInstrumentItem *instrumentItem = getInstrument(identifier);
 
         if(!instrumentItem) {
             // if no instrument with P_INSTRUMENT_ID exists, break the link
@@ -227,7 +227,7 @@ void LinkInstrumentManager::updateInstrumentMap()
     m_instrumentVec.clear();
     m_instrumentVec.append(InstrumentInfo()); // undefined instrument
     foreach(SessionItem *item, m_instrumentModel->topItems(Constants::GISASInstrumentType)) {
-        InstrumentItem *instrumentItem = dynamic_cast<InstrumentItem *>(item);
+        GISASInstrumentItem *instrumentItem = dynamic_cast<GISASInstrumentItem *>(item);
         instrumentItem->mapper()->unsubscribe(this);
 
         instrumentItem->mapper()->setOnPropertyChange(
@@ -244,7 +244,7 @@ void LinkInstrumentManager::updateInstrumentMap()
 
         InstrumentInfo info;
         info.m_name = item->itemName();
-        info.m_identifier = item->getItemValue(InstrumentItem::P_IDENTIFIER).toString();
+        info.m_identifier = item->getItemValue(GISASInstrumentItem::P_IDENTIFIER).toString();
         info.m_instrument = instrumentItem;
         m_instrumentVec.append(info);
     }
@@ -270,7 +270,7 @@ void LinkInstrumentManager::updateRealDataMap()
 
 //! Runs through all RealDataItem and break the link, if instrument binning doesn't match the data.
 
-void LinkInstrumentManager::onInstrumentBinningChange(InstrumentItem *changedInstrument)
+void LinkInstrumentManager::onInstrumentBinningChange(GISASInstrumentItem *changedInstrument)
 {
     foreach(RealDataItem *realDataItem, linkedItems(changedInstrument)) {
         if(!ImportDataAssistant::hasSameDimensions(changedInstrument, realDataItem)) {
@@ -282,7 +282,7 @@ void LinkInstrumentManager::onInstrumentBinningChange(InstrumentItem *changedIns
 //! Runs through all RealDataItem and refresh linking to match possible change in detector
 //! axes definition.
 
-void LinkInstrumentManager::onInstrumentLayoutChange(InstrumentItem *changedInstrument)
+void LinkInstrumentManager::onInstrumentLayoutChange(GISASInstrumentItem *changedInstrument)
 {
     foreach(RealDataItem *realDataItem, linkedItems(changedInstrument))
         realDataItem->linkToInstrument(changedInstrument);
@@ -290,7 +290,7 @@ void LinkInstrumentManager::onInstrumentLayoutChange(InstrumentItem *changedInst
 
 //! Returns list of RealDataItem's linked to given instrument.
 
-QList<RealDataItem *> LinkInstrumentManager::linkedItems(InstrumentItem *instrumentItem)
+QList<RealDataItem *> LinkInstrumentManager::linkedItems(GISASInstrumentItem *instrumentItem)
 {
     QList<RealDataItem *> result;
     foreach(SessionItem *item, m_realDataModel->topItems(Constants::RealDataType)) {
@@ -299,7 +299,7 @@ QList<RealDataItem *> LinkInstrumentManager::linkedItems(InstrumentItem *instrum
         QString linkedIdentifier
             = realDataItem->getItemValue(RealDataItem::P_INSTRUMENT_ID).toString();
         QString instrumentIdentifier
-            = instrumentItem->getItemValue(InstrumentItem::P_IDENTIFIER).toString();
+            = instrumentItem->getItemValue(GISASInstrumentItem::P_IDENTIFIER).toString();
 
         if(linkedIdentifier == instrumentIdentifier)
             result.append(realDataItem);
diff --git a/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.h b/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.h
index 221b5e775e736db4c9a5e1f4549bca8595cef486..0a38e9cdf36088834a4030fbc2aa9e75840d7f15 100644
--- a/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.h
+++ b/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.h
@@ -24,7 +24,7 @@
 class InstrumentModel;
 class RealDataModel;
 class SessionItem;
-class InstrumentItem;
+class GISASInstrumentItem;
 class RealDataItem;
 class SessionModel;
 
@@ -42,20 +42,20 @@ public:
         InstrumentInfo();
         QString m_identifier;
         QString m_name;
-        InstrumentItem *m_instrument;
+        GISASInstrumentItem *m_instrument;
     };
 
     explicit LinkInstrumentManager(QObject *parent =  0);
 
     void setModels(InstrumentModel *instrumentModel, RealDataModel *realDataModel);
 
-    InstrumentItem *getInstrument(const QString &identifier);
+    GISASInstrumentItem *getInstrument(const QString &identifier);
     QStringList instrumentNames() const;
     int instrumentComboIndex(const QString &identifier);
     QString instrumentIdentifier(int comboIndex);
     bool canLinkDataToInstrument(const RealDataItem *realDataItem, const QString &identifier);
 
-    QList<RealDataItem *> linkedItems(InstrumentItem *instrumentItem);
+    QList<RealDataItem *> linkedItems(GISASInstrumentItem *instrumentItem);
 
 signals:
     void instrumentMapUpdated();
@@ -63,15 +63,15 @@ signals:
 private slots:
     void setOnInstrumentPropertyChange(SessionItem *instrument, const QString &property);
     void setOnRealDataPropertyChange(SessionItem *dataItem, const QString &property);
-    void onInstrumentChildChange(InstrumentItem *instrument, SessionItem *child);
+    void onInstrumentChildChange(GISASInstrumentItem *instrument, SessionItem *child);
     void onInstrumentRowsChange(const QModelIndex & parent, int, int);
     void onRealDataRowsChange(const QModelIndex & parent, int, int);
 
     void updateLinks();
     void updateInstrumentMap();
     void updateRealDataMap();
-    void onInstrumentBinningChange(InstrumentItem *changedInstrument);
-    void onInstrumentLayoutChange(InstrumentItem *changedInstrument);
+    void onInstrumentBinningChange(GISASInstrumentItem *changedInstrument);
+    void onInstrumentLayoutChange(GISASInstrumentItem *changedInstrument);
 
 private:
     void setInstrumentModel(InstrumentModel *model);
diff --git a/GUI/coregui/Views/InstrumentWidgets/DetectorEditorWidget.cpp b/GUI/coregui/Views/InstrumentWidgets/DetectorEditorWidget.cpp
index 7fd66c0d913fa84c3097d78a844bac631c524b0c..fd83a823512433d842a3fad063cd1b956676c729 100644
--- a/GUI/coregui/Views/InstrumentWidgets/DetectorEditorWidget.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/DetectorEditorWidget.cpp
@@ -63,7 +63,7 @@ void DetectorEditorWidget::subscribeToItem()
 
     currentItem()->mapper()->setOnPropertyChange(
         [this](const QString& name) {
-            if (name == InstrumentItem::P_DETECTOR)
+            if (name == GISASInstrumentItem::P_DETECTOR)
                 init_SubDetector_Widget();
         }, this);
 
@@ -111,7 +111,7 @@ void DetectorEditorWidget::remove_SubDetectorWidget()
     m_subDetectorWidget = 0;
 }
 
-InstrumentItem* DetectorEditorWidget::instrumentItem()
+GISASInstrumentItem* DetectorEditorWidget::instrumentItem()
 {
-    return dynamic_cast<InstrumentItem*>(currentItem());
+    return dynamic_cast<GISASInstrumentItem*>(currentItem());
 }
diff --git a/GUI/coregui/Views/InstrumentWidgets/DetectorEditorWidget.h b/GUI/coregui/Views/InstrumentWidgets/DetectorEditorWidget.h
index d55df44b17936995b362eaa71b15c551fe3c34e0..b44341112b0928de5cbd9633935ad48b4d9b42da 100644
--- a/GUI/coregui/Views/InstrumentWidgets/DetectorEditorWidget.h
+++ b/GUI/coregui/Views/InstrumentWidgets/DetectorEditorWidget.h
@@ -22,7 +22,7 @@ class DetectorItem;
 class ComponentEditor;
 class QGridLayout;
 class ColumnResizer;
-class InstrumentItem;
+class GISASInstrumentItem;
 
 class BA_CORE_API_ DetectorEditorWidget : public SessionItemWidget
 {
@@ -43,7 +43,7 @@ protected:
 private:
     void init_SubDetector_Widget();
     void remove_SubDetectorWidget();
-    InstrumentItem* instrumentItem();
+    GISASInstrumentItem* instrumentItem();
 
     ColumnResizer* m_columnResizer;
     ComponentEditor* m_detectorTypeEditor;
diff --git a/GUI/coregui/Views/InstrumentWidgets/DetectorMaskDelegate.cpp b/GUI/coregui/Views/InstrumentWidgets/DetectorMaskDelegate.cpp
index de7ce0a4b5fe0a77ac4b8e923e04104c41ad21c9..ec8bf6e59a7ac2b0c5be54189cedbf40a172c659 100644
--- a/GUI/coregui/Views/InstrumentWidgets/DetectorMaskDelegate.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/DetectorMaskDelegate.cpp
@@ -73,7 +73,7 @@ void DetectorMaskDelegate::createIntensityDataItem()
     zAxisItem.setItemValue(AmplitudeAxisItem::P_LOCK_MIN_MAX, true);
 
     // creating output data corresponding to the detector
-    auto instrument = dynamic_cast<const InstrumentItem*>(
+    auto instrument = dynamic_cast<const GISASInstrumentItem*>(
                 ModelPath::ancestor(m_detectorItem, Constants::GISASInstrumentType));
     JobItemUtils::createDefaultDetectorMap(m_intensityItem, instrument);
 
diff --git a/GUI/coregui/Views/InstrumentWidgets/InstrumentComponentsWidget.cpp b/GUI/coregui/Views/InstrumentWidgets/InstrumentComponentsWidget.cpp
index 54ca839ef833768e4ccdf6aed422bde0303664c1..15f5edb06dd583d8aa1a94823476e4040da2bcec 100644
--- a/GUI/coregui/Views/InstrumentWidgets/InstrumentComponentsWidget.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/InstrumentComponentsWidget.cpp
@@ -51,7 +51,7 @@ InstrumentComponentsWidget::InstrumentComponentsWidget(QWidget* parent)
     setStyleSheet("InstrumentComponentsWidget {background-color:transparent;}");
 }
 
-void InstrumentComponentsWidget::setInstrumentItem(InstrumentItem* instrumentItem)
+void InstrumentComponentsWidget::setInstrumentItem(GISASInstrumentItem* instrumentItem)
 {
     m_backgroundEditor->clearEditor();
     if(instrumentItem) {
diff --git a/GUI/coregui/Views/InstrumentWidgets/InstrumentComponentsWidget.h b/GUI/coregui/Views/InstrumentWidgets/InstrumentComponentsWidget.h
index affcb283d59d627cc7b15d6776110b483b12736e..dd89fcc60f35e6ff1c38035b815388f1f3ea6b28 100644
--- a/GUI/coregui/Views/InstrumentWidgets/InstrumentComponentsWidget.h
+++ b/GUI/coregui/Views/InstrumentWidgets/InstrumentComponentsWidget.h
@@ -18,7 +18,7 @@
 #include "WinDllMacros.h"
 #include <QWidget>
 
-class InstrumentItem;
+class GISASInstrumentItem;
 class ComponentEditor;
 class DetectorItem;
 class BeamEditorWidget;
@@ -31,7 +31,7 @@ class BA_CORE_API_ InstrumentComponentsWidget : public QWidget
 public:
     InstrumentComponentsWidget(QWidget* parent = 0);
 
-    void setInstrumentItem(InstrumentItem* instrumentItem);
+    void setInstrumentItem(GISASInstrumentItem* instrumentItem);
 
 signals:
     void extendedDetectorEditorRequest(DetectorItem*);
diff --git a/GUI/coregui/Views/InstrumentWidgets/InstrumentEditorWidget.cpp b/GUI/coregui/Views/InstrumentWidgets/InstrumentEditorWidget.cpp
index 57009b868b7437feee88970c705aeb3012463385..cdf1e48616d2dac11cfbbc44b94f3ff112f320b1 100644
--- a/GUI/coregui/Views/InstrumentWidgets/InstrumentEditorWidget.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/InstrumentEditorWidget.cpp
@@ -68,7 +68,7 @@ void InstrumentEditorWidget::setItem(SessionItem* instrument)
     m_currentItem = instrument;
     updateWidgets();
 
-    InstrumentItem* instrumentItem = dynamic_cast<InstrumentItem*>(instrument);
+    GISASInstrumentItem* instrumentItem = dynamic_cast<GISASInstrumentItem*>(instrument);
     m_instrumentComponents->setInstrumentItem(instrumentItem);
 }
 
diff --git a/GUI/coregui/Views/SimulationWidgets/PythonScriptWidget.cpp b/GUI/coregui/Views/SimulationWidgets/PythonScriptWidget.cpp
index 8639e133ba792fafec4d21fffd951f2958760b17..6856ff225ef2da8e2048a496e1a700354cc67714 100644
--- a/GUI/coregui/Views/SimulationWidgets/PythonScriptWidget.cpp
+++ b/GUI/coregui/Views/SimulationWidgets/PythonScriptWidget.cpp
@@ -76,7 +76,7 @@ PythonScriptWidget::PythonScriptWidget(QWidget *parent)
 }
 
 void PythonScriptWidget::generatePythonScript(const MultiLayerItem *sampleItem,
-        const InstrumentItem *instrumentItem, const SimulationOptionsItem *optionItem,
+        const GISASInstrumentItem *instrumentItem, const SimulationOptionsItem *optionItem,
                                               const QString &outputDir)
 {
     m_outputDir = outputDir;
diff --git a/GUI/coregui/Views/SimulationWidgets/PythonScriptWidget.h b/GUI/coregui/Views/SimulationWidgets/PythonScriptWidget.h
index a9f5c591dc17c37db2c2fee2264f1da5fe291a9c..04d8c498c3bc300057c93213c076e9adca949310 100644
--- a/GUI/coregui/Views/SimulationWidgets/PythonScriptWidget.h
+++ b/GUI/coregui/Views/SimulationWidgets/PythonScriptWidget.h
@@ -22,7 +22,7 @@ class QToolBar;
 class QTextEdit;
 class WarningSign;
 class MultiLayerItem;
-class InstrumentItem;
+class GISASInstrumentItem;
 class SimulationOptionsItem;
 
 //! The PythonScriptWidget displays a python script which represents full simulation.
@@ -36,7 +36,7 @@ public:
     PythonScriptWidget(QWidget* parent = 0);
 
     void generatePythonScript(const MultiLayerItem* sampleItem,
-                              const InstrumentItem* instrumentItem,
+                              const GISASInstrumentItem* instrumentItem,
                               const SimulationOptionsItem* optionItem = 0,
                               const QString& outputDir = QString());
 
diff --git a/GUI/coregui/Views/SimulationWidgets/SimulationDataSelectorWidget.cpp b/GUI/coregui/Views/SimulationWidgets/SimulationDataSelectorWidget.cpp
index e7876a18276b5ca0b946701f15dae58d0aa0a828..9099239480d32b638bad9cc1652ff02f0190b808 100644
--- a/GUI/coregui/Views/SimulationWidgets/SimulationDataSelectorWidget.cpp
+++ b/GUI/coregui/Views/SimulationWidgets/SimulationDataSelectorWidget.cpp
@@ -100,11 +100,11 @@ const MultiLayerItem *SimulationDataSelectorWidget::selectedMultiLayerItem() con
 //! Returns selected InstrumentItem taking into account that there might be several
 //! instruments with same name.
 
-const InstrumentItem *SimulationDataSelectorWidget::selectedInstrumentItem() const
+const GISASInstrumentItem *SimulationDataSelectorWidget::selectedInstrumentItem() const
 {
     auto items = m_applicationModels->instrumentModel()->topItems();
     if(items.isEmpty()) return nullptr;
-    return dynamic_cast<const InstrumentItem *>(items.at(selectedInstrumentIndex()));
+    return dynamic_cast<const GISASInstrumentItem *>(items.at(selectedInstrumentIndex()));
 }
 
 //! Returns selected InstrumentItem taking into account that there might be several
diff --git a/GUI/coregui/Views/SimulationWidgets/SimulationDataSelectorWidget.h b/GUI/coregui/Views/SimulationWidgets/SimulationDataSelectorWidget.h
index ccc2d434e6d7f4fe86dc20104b20be25542c4b44..41c768a3c53065460fb8b20c8dbf9193ac77f607 100644
--- a/GUI/coregui/Views/SimulationWidgets/SimulationDataSelectorWidget.h
+++ b/GUI/coregui/Views/SimulationWidgets/SimulationDataSelectorWidget.h
@@ -21,7 +21,7 @@
 class ApplicationModels;
 class QComboBox;
 class MultiLayerItem;
-class InstrumentItem;
+class GISASInstrumentItem;
 class RealDataItem;
 
 //! The SimulationDataSelectorWidget class represents widget to select instrument, sample and
@@ -37,7 +37,7 @@ public:
     void setApplicationModels(ApplicationModels *applicationModels);
 
     const MultiLayerItem *selectedMultiLayerItem() const;
-    const InstrumentItem *selectedInstrumentItem() const;
+    const GISASInstrumentItem *selectedInstrumentItem() const;
     const RealDataItem *selectedRealDataItem() const;
 
     void updateViewElements();
diff --git a/GUI/coregui/Views/SimulationWidgets/SimulationSetupAssistant.cpp b/GUI/coregui/Views/SimulationWidgets/SimulationSetupAssistant.cpp
index d1d1d84cc4a2dc2667ebd7d90903c4c86b627410..e50779c3ea1e046317405a43165f21728b2f0695 100644
--- a/GUI/coregui/Views/SimulationWidgets/SimulationSetupAssistant.cpp
+++ b/GUI/coregui/Views/SimulationWidgets/SimulationSetupAssistant.cpp
@@ -26,7 +26,7 @@ SimulationSetupAssistant::SimulationSetupAssistant()
 }
 
 bool SimulationSetupAssistant::isValidSimulationSetup(const MultiLayerItem *multiLayerItem,
-                                                      const InstrumentItem *instrumentItem,
+                                                      const GISASInstrumentItem *instrumentItem,
                                                       const RealDataItem *realData)
 {
     clear();
@@ -61,7 +61,7 @@ void SimulationSetupAssistant::checkMultiLayerItem(const MultiLayerItem *multiLa
     }
 }
 
-void SimulationSetupAssistant::checkInstrumentItem(const InstrumentItem *instrumentItem)
+void SimulationSetupAssistant::checkInstrumentItem(const GISASInstrumentItem *instrumentItem)
 {
     if(!instrumentItem) {
         m_messages.append(QStringLiteral("No instrument selected"));
@@ -72,7 +72,7 @@ void SimulationSetupAssistant::checkInstrumentItem(const InstrumentItem *instrum
 //! Check if setup is suitable for fitting. In the case when there is a realData defined,
 //! its axes will be compared with current detector item.
 
-void SimulationSetupAssistant::checkFittingSetup(const InstrumentItem *instrumentItem,
+void SimulationSetupAssistant::checkFittingSetup(const GISASInstrumentItem *instrumentItem,
                                                  const RealDataItem *realData)
 {
     if(!realData)
diff --git a/GUI/coregui/Views/SimulationWidgets/SimulationSetupAssistant.h b/GUI/coregui/Views/SimulationWidgets/SimulationSetupAssistant.h
index 4f51b6b50023bc3a63c0cbd1b0d461348847117d..4c3665adae535571fecd52528ee7baf9b8f7fd7b 100644
--- a/GUI/coregui/Views/SimulationWidgets/SimulationSetupAssistant.h
+++ b/GUI/coregui/Views/SimulationWidgets/SimulationSetupAssistant.h
@@ -19,7 +19,7 @@
 #include <QStringList>
 
 class MultiLayerItem;
-class InstrumentItem;
+class GISASInstrumentItem;
 class RealDataItem;
 
 //! The SimulationSetupAssistant class provides sample, instrument and real data validation before
@@ -30,13 +30,13 @@ public:
     SimulationSetupAssistant();
 
     bool isValidSimulationSetup(const MultiLayerItem *multiLayerItem,
-                                const InstrumentItem *instrumentItem,
+                                const GISASInstrumentItem *instrumentItem,
                                 const RealDataItem *realData = 0);
 private:
     void clear();
     void checkMultiLayerItem(const MultiLayerItem *multiLayerItem);
-    void checkInstrumentItem(const InstrumentItem *instrumentItem);
-    void checkFittingSetup(const InstrumentItem *instrumentItem, const RealDataItem *realData);
+    void checkInstrumentItem(const GISASInstrumentItem *instrumentItem);
+    void checkFittingSetup(const GISASInstrumentItem *instrumentItem, const RealDataItem *realData);
     QString composeMessage();
 
     bool m_isValid;
diff --git a/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.cpp b/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.cpp
index f7236ebdec0b9d9521f6012404b792ce43a0486e..06f9bc5cb9a6b92bc193d03170e92bcc9d4f0989 100644
--- a/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.cpp
+++ b/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.cpp
@@ -66,7 +66,7 @@ void SimulationSetupWidget::updateViewElements()
 void SimulationSetupWidget::onRunSimulation()
 {
     const MultiLayerItem *multiLayerItem = m_simDataSelectorWidget->selectedMultiLayerItem();
-    const InstrumentItem *instrumentItem = m_simDataSelectorWidget->selectedInstrumentItem();
+    const GISASInstrumentItem *instrumentItem = m_simDataSelectorWidget->selectedInstrumentItem();
     const RealDataItem *realDataItem = m_simDataSelectorWidget->selectedRealDataItem();
 
     SimulationSetupAssistant assistant;
@@ -86,7 +86,7 @@ void SimulationSetupWidget::onRunSimulation()
 void SimulationSetupWidget::onExportToPythonScript()
 {
     const MultiLayerItem *multiLayerItem = m_simDataSelectorWidget->selectedMultiLayerItem();
-    const InstrumentItem *instrumentItem = m_simDataSelectorWidget->selectedInstrumentItem();
+    const GISASInstrumentItem *instrumentItem = m_simDataSelectorWidget->selectedInstrumentItem();
 
     SimulationSetupAssistant assistant;
     if(!assistant.isValidSimulationSetup(multiLayerItem, instrumentItem))
diff --git a/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.h b/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.h
index 338c7d09720fc9efc4c117ff5e34ce590cbefb0c..d72dfafdb49866eaeba1c78e4d4f3d717f9ee9b2 100644
--- a/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.h
+++ b/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.h
@@ -20,7 +20,7 @@
 
 class QPushButton;
 class MultiLayerItem;
-class InstrumentItem;
+class GISASInstrumentItem;
 class SimulationDataSelectorWidget;
 class SimulationOptionsWidget;
 class ApplicationModels;
diff --git a/Tests/UnitTests/GUI/TestDetectorItems.h b/Tests/UnitTests/GUI/TestDetectorItems.h
index 1aae6f85828c2f8ef34c7875bfef4d0c9327ac1c..7977ab324e5c1840fd7c285a5435e7e05ebb6a3c 100644
--- a/Tests/UnitTests/GUI/TestDetectorItems.h
+++ b/Tests/UnitTests/GUI/TestDetectorItems.h
@@ -40,8 +40,8 @@ TEST_F(TestDetectorItems, test_detectorAlignment)
 TEST_F(TestDetectorItems, test_resolutionFunction)
 {
     InstrumentModel model;
-    InstrumentItem* instrument
-        = dynamic_cast<InstrumentItem*>(model.insertNewItem(Constants::GISASInstrumentType));
+    GISASInstrumentItem* instrument
+        = dynamic_cast<GISASInstrumentItem*>(model.insertNewItem(Constants::GISASInstrumentType));
 
     DetectorItem* detectorItem = instrument->detectorItem();
 
diff --git a/Tests/UnitTests/GUI/TestLinkInstrument.h b/Tests/UnitTests/GUI/TestLinkInstrument.h
index 0ed31aaddfc72515300233aa29f694de0c322fb9..8f436a92467454c26bcc47910d80b0bcf3276c60 100644
--- a/Tests/UnitTests/GUI/TestLinkInstrument.h
+++ b/Tests/UnitTests/GUI/TestLinkInstrument.h
@@ -33,9 +33,9 @@ TEST_F(TestLinkInstrument, test_linkInstrumentManager)
     QSignalSpy spy(&manager, SIGNAL(instrumentMapUpdated()));
 
     // populating instrument model
-    InstrumentItem* instrument
-        = dynamic_cast<InstrumentItem*>(instrumentModel.insertNewItem(Constants::GISASInstrumentType));
-    QString identifier = instrument->getItemValue(InstrumentItem::P_IDENTIFIER).toString();
+    GISASInstrumentItem* instrument
+        = dynamic_cast<GISASInstrumentItem*>(instrumentModel.insertNewItem(Constants::GISASInstrumentType));
+    QString identifier = instrument->getItemValue(GISASInstrumentItem::P_IDENTIFIER).toString();
 
     // checking that LinkInstrumentManager was notified about new instrument
     EXPECT_EQ(spy.count(), 1);
@@ -60,9 +60,9 @@ TEST_F(TestLinkInstrument, test_canLinkToInstrument)
     manager.setModels(&instrumentModel, &realDataModel);
 
     // populating instrument model
-    InstrumentItem* instrument
-        = dynamic_cast<InstrumentItem*>(instrumentModel.insertNewItem(Constants::GISASInstrumentType));
-    QString identifier = instrument->getItemValue(InstrumentItem::P_IDENTIFIER).toString();
+    GISASInstrumentItem* instrument
+        = dynamic_cast<GISASInstrumentItem*>(instrumentModel.insertNewItem(Constants::GISASInstrumentType));
+    QString identifier = instrument->getItemValue(GISASInstrumentItem::P_IDENTIFIER).toString();
 
     // populating real data model, setting intensity data
     RealDataItem* realData
diff --git a/Tests/UnitTests/GUI/TestProjectDocument.h b/Tests/UnitTests/GUI/TestProjectDocument.h
index 5aba0954ebe36e3581e187787bd379896e22d621..d7b9254bed6b361b00f9c9f00ec232e983198819 100644
--- a/Tests/UnitTests/GUI/TestProjectDocument.h
+++ b/Tests/UnitTests/GUI/TestProjectDocument.h
@@ -22,7 +22,7 @@ public:
     void modify_models(ApplicationModels* models)
     {
         auto instrument = models->instrumentModel()->instrumentItem();
-        instrument->setItemValue(InstrumentItem::P_IDENTIFIER, GUIHelpers::createUuid());
+        instrument->setItemValue(GISASInstrumentItem::P_IDENTIFIER, GUIHelpers::createUuid());
     }
 };
 
diff --git a/Tests/UnitTests/GUI/TestSaveService.h b/Tests/UnitTests/GUI/TestSaveService.h
index 961891cb4238c0a53ffae5a38599f5f39f72c710..13878d4776dd07c35108d7fa1cf9ab3a3e720637 100644
--- a/Tests/UnitTests/GUI/TestSaveService.h
+++ b/Tests/UnitTests/GUI/TestSaveService.h
@@ -23,7 +23,7 @@ public:
     void modify_models(ApplicationModels* models)
     {
         auto instrument = models->instrumentModel()->instrumentItem();
-        instrument->setItemValue(InstrumentItem::P_IDENTIFIER, GUIHelpers::createUuid());
+        instrument->setItemValue(GISASInstrumentItem::P_IDENTIFIER, GUIHelpers::createUuid());
     }
 };
 
diff --git a/Tests/UnitTests/GUI/TestTranslations.h b/Tests/UnitTests/GUI/TestTranslations.h
index 22c466ad6b444de3e9187f4aa70e5b42859fbfcd..02875aac32b238ed7bd2d07e460504f119409add 100644
--- a/Tests/UnitTests/GUI/TestTranslations.h
+++ b/Tests/UnitTests/GUI/TestTranslations.h
@@ -56,7 +56,7 @@ TEST_F(TestTranslations, test_BeamDistributionNone)
 {
     SampleModel model;
     SessionItem* instrument = model.insertNewItem(Constants::GISASInstrumentType);
-    SessionItem* beam = instrument->getItem(InstrumentItem::P_BEAM);
+    SessionItem* beam = instrument->getItem(GISASInstrumentItem::P_BEAM);
 
     SessionItem* wavelength = beam->getItem(BeamItem::P_WAVELENGTH);