diff --git a/GUI/coregui/Models/FitModelHelper.cpp b/GUI/coregui/Models/FitParameterHelper.cpp
similarity index 87%
rename from GUI/coregui/Models/FitModelHelper.cpp
rename to GUI/coregui/Models/FitParameterHelper.cpp
index 55fabf56da747a955f0f5c0d6de3cf05e2dbb037..53680498a46432d21442164cf0a7f44058380618 100644
--- a/GUI/coregui/Models/FitModelHelper.cpp
+++ b/GUI/coregui/Models/FitParameterHelper.cpp
@@ -14,7 +14,7 @@
 //
 // ************************************************************************** //
 
-#include "FitModelHelper.h"
+#include "FitParameterHelper.h"
 #include "JobItem.h"
 #include "FitParameterItems.h"
 #include "JobModel.h"
@@ -24,7 +24,7 @@
 //! Creates fit parameter from given ParameterItem, sets starting value to the value
 //! of ParameterItem, copies link.
 
-void FitModelHelper::createFitParameter(FitParameterContainerItem *container,
+void FitParameterHelper::createFitParameter(FitParameterContainerItem *container,
                                         ParameterItem *parameterItem)
 {
     Q_ASSERT(container);
@@ -46,7 +46,7 @@ void FitModelHelper::createFitParameter(FitParameterContainerItem *container,
 
 //! Removes link to given parameterItem from fit parameters
 
-void FitModelHelper::removeFromFitParameters(FitParameterContainerItem *container,
+void FitParameterHelper::removeFromFitParameters(FitParameterContainerItem *container,
                                              ParameterItem *parameterItem)
 {
     FitParameterItem *fitParItem = getFitParameterItem(container, parameterItem);
@@ -65,7 +65,7 @@ void FitModelHelper::removeFromFitParameters(FitParameterContainerItem *containe
 //! Adds given parameterItem to the existing fit parameter with display name fitParName.
 //! If parameterItem is already linked with another fitParameter, it will be relinked
 
-void FitModelHelper::addToFitParameter(FitParameterContainerItem *container,
+void FitParameterHelper::addToFitParameter(FitParameterContainerItem *container,
                                        ParameterItem *parameterItem, const QString &fitParName)
 {
     Q_ASSERT(container);
@@ -84,7 +84,7 @@ void FitModelHelper::addToFitParameter(FitParameterContainerItem *container,
 
 //! Returns fFitParameterItem corresponding to given ParameterItem
 
-FitParameterItem *FitModelHelper::getFitParameterItem(FitParameterContainerItem *container,
+FitParameterItem *FitParameterHelper::getFitParameterItem(FitParameterContainerItem *container,
                                                       ParameterItem *parameterItem)
 {
     Q_ASSERT(container);
@@ -93,7 +93,7 @@ FitParameterItem *FitModelHelper::getFitParameterItem(FitParameterContainerItem
 
 //! Returns list of fit parameter display names
 
-QStringList FitModelHelper::getFitParameterNames(FitParameterContainerItem *container)
+QStringList FitParameterHelper::getFitParameterNames(FitParameterContainerItem *container)
 {
     Q_ASSERT(container);
     QStringList result;
@@ -105,7 +105,7 @@ QStringList FitModelHelper::getFitParameterNames(FitParameterContainerItem *cont
 
 //! return path to given item in the ParameterTreeContainer
 
-QString FitModelHelper::getParameterItemPath(ParameterItem *parameterItem)
+QString FitParameterHelper::getParameterItemPath(ParameterItem *parameterItem)
 {
     QString result = ModelPath::getPathFromIndex(parameterItem->index());
     QString containerPrefix = Constants::ParameterContainerType + "/";
@@ -117,7 +117,7 @@ QString FitModelHelper::getParameterItemPath(ParameterItem *parameterItem)
 //! Returns ParameterItem corresponding to given link.
 //! Link is relative to ParameterContainerItem, so first we have to find it
 
-ParameterItem *FitModelHelper::getParameterItem(FitParameterContainerItem *container,
+ParameterItem *FitParameterHelper::getParameterItem(FitParameterContainerItem *container,
                                                 const QString &link)
 {
     SessionItem *cur = container;
diff --git a/GUI/coregui/Models/FitModelHelper.h b/GUI/coregui/Models/FitParameterHelper.h
similarity index 83%
rename from GUI/coregui/Models/FitModelHelper.h
rename to GUI/coregui/Models/FitParameterHelper.h
index ede3d9165cba381e2a3ea01f14a347b5090986b1..e612e7def2d1615d41d7ee00e6d6f7c013b8f902 100644
--- a/GUI/coregui/Models/FitModelHelper.h
+++ b/GUI/coregui/Models/FitParameterHelper.h
@@ -2,8 +2,8 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      coregui/Models/FitModelHelper.h
-//! @brief     Declares class FitModelHelper
+//! @file      coregui/Models/FitParameterHelper.h
+//! @brief     Declares class FitParameterHelper
 //!
 //! @homepage  http://www.bornagainproject.org
 //! @license   GNU General Public License v3 or higher (see COPYING)
@@ -14,8 +14,8 @@
 //
 // ************************************************************************** //
 
-#ifndef FITMODELHELPER_H
-#define FITMODELHELPER_H
+#ifndef FITPARAMETERHELPER_H
+#define FITPARAMETERHELPER_H
 
 #include "WinDllMacros.h"
 #include <QMap>
@@ -25,10 +25,10 @@ class FitParameterItem;
 class FitParameterContainerItem;
 class JobItem;
 
-//! The FitModelHelper class contains set of convenience static methods to handle various fitting
-//! items in given JobItem.
+//! The FitParameterHelper class contains set of convenience static methods to handle
+//! various fitting items in given JobItem.
 
-class BA_CORE_API_ FitModelHelper
+class BA_CORE_API_ FitParameterHelper
 {
 public:
     static void createFitParameter(FitParameterContainerItem *container,
diff --git a/GUI/coregui/Models/FitParameterItems.cpp b/GUI/coregui/Models/FitParameterItems.cpp
index b2dfb7e48041a9473a41fcf5755ade64b3ec06aa..e708f48c75b04321eab9c0f2d0a96a1fca1d6f44 100644
--- a/GUI/coregui/Models/FitParameterItems.cpp
+++ b/GUI/coregui/Models/FitParameterItems.cpp
@@ -18,7 +18,7 @@
 #include "ComboProperty.h"
 #include "ModelPath.h"
 #include "SessionModel.h"
-#include "FitModelHelper.h"
+#include "FitParameterHelper.h"
 #include "ParameterTreeItems.h"
 #include "AttLimits.h"
 #include <QDebug>
diff --git a/GUI/coregui/Models/FitParameterProxyModel.cpp b/GUI/coregui/Models/FitParameterProxyModel.cpp
index 3f138b94baceae86308c37f1a24114ef6f285910..1cf89b8a9b118490d7544ebc04d62f524923d1d7 100644
--- a/GUI/coregui/Models/FitParameterProxyModel.cpp
+++ b/GUI/coregui/Models/FitParameterProxyModel.cpp
@@ -19,7 +19,7 @@
 #include "FitParameterItems.h"
 #include "SessionModel.h"
 #include "JobModel.h"
-#include "FitModelHelper.h"
+#include "FitParameterHelper.h"
 #include "ParameterTreeItems.h"
 #include "GUIHelpers.h"
 #include "ModelPath.h"
@@ -248,17 +248,17 @@ bool FitParameterProxyModel::dropMimeData(const QMimeData *data, Qt::DropAction
     if (parent.isValid()) {
         if (SessionItem *fitParItem = itemForIndex(parent)) {
             Q_ASSERT(fitParItem->modelType() == Constants::FitParameterType);
-            ParameterItem *parItem = FitModelHelper::getParameterItem(
+            ParameterItem *parItem = FitParameterHelper::getParameterItem(
                 m_root_item, QString::fromLatin1(data->data(SessionXML::LinkMimeType)));
             Q_ASSERT(parItem);
-            FitModelHelper::addToFitParameter(m_root_item, parItem, fitParItem->displayName());
+            FitParameterHelper::addToFitParameter(m_root_item, parItem, fitParItem->displayName());
         }
 
     } else {
-        ParameterItem *parItem = FitModelHelper::getParameterItem(
+        ParameterItem *parItem = FitParameterHelper::getParameterItem(
             m_root_item, QString::fromLatin1(data->data(SessionXML::LinkMimeType)));
         Q_ASSERT(parItem);
-        FitModelHelper::createFitParameter(m_root_item, parItem);
+        FitParameterHelper::createFitParameter(m_root_item, parItem);
     }
 
     return true;
diff --git a/GUI/coregui/Models/JobModel.cpp b/GUI/coregui/Models/JobModel.cpp
index 1632c19cdff86b170b9d2e45939cf9e4af2e43de..6291cfd14b32800bd2831a391bdbc35e4e9433a1 100644
--- a/GUI/coregui/Models/JobModel.cpp
+++ b/GUI/coregui/Models/JobModel.cpp
@@ -29,6 +29,7 @@
 #include "SimulationOptionsItem.h"
 #include "JobResultsPresenter.h"
 #include "IntensityDataItem.h"
+#include "FitSuiteItem.h"
 #include <QUuid>
 #include <QDebug>
 #include <QItemSelection>
@@ -100,12 +101,10 @@ JobItem *JobModel::addJob(const MultiLayerItem *multiLayerItem,
     ParameterTreeBuilder::createParameterTree(jobItem, JobItem::T_PARAMETER_TREE);
 
     insertNewItem(Constants::IntensityDataType, indexOfItem(jobItem), -1, JobItem::T_OUTPUT);
-    //insertNewItem(Constants::IntensityDataType, indexOfItem(jobItem), -1, JobItem::T_REALDATA);
 
     if(realDataItem) {
-        RealDataItem *realDataItemCopy = dynamic_cast<RealDataItem *>(copyParameterizedItem(realDataItem, jobItem, JobItem::T_REALDATA));
-        Q_ASSERT(realDataItemCopy);
-        realDataItemCopy->intensityDataItem()->setOutputData(realDataItem->intensityDataItem()->getOutputData()->clone());
+        copyRealDataItem(jobItem, realDataItem);
+        createFitContainers(jobItem);
     }
 
     return jobItem;
@@ -216,3 +215,35 @@ void JobModel::restoreItem(SessionItem *item)
     }
 }
 
+//! Copy RealDataItem to jobItem intended for fitting.
+
+void JobModel::copyRealDataItem(JobItem *jobItem, const RealDataItem *realDataItem)
+{
+    if(!realDataItem)
+        return;
+
+    RealDataItem *realDataItemCopy = dynamic_cast<RealDataItem *>(
+        copyParameterizedItem(realDataItem, jobItem, JobItem::T_REALDATA));
+    Q_ASSERT(realDataItemCopy);
+    realDataItemCopy->intensityDataItem()->setOutputData(
+                realDataItem->intensityDataItem()->getOutputData()->clone());
+}
+
+//! Creates necessary fit containers for jobItem intended for fitting.
+
+void JobModel::createFitContainers(JobItem *jobItem)
+{
+    SessionItem *fitSuiteItem = jobItem->getItem(JobItem::T_FIT_SUITE);
+    Q_ASSERT(fitSuiteItem == nullptr);
+
+    fitSuiteItem = insertNewItem(Constants::FitSuiteType,
+                                 jobItem->index(), -1, JobItem::T_FIT_SUITE);
+    Q_ASSERT(fitSuiteItem);
+
+    SessionItem *parsContainerItem = fitSuiteItem->getItem(FitSuiteItem::T_FIT_PARAMETERS);
+    Q_ASSERT(parsContainerItem == nullptr);
+
+    parsContainerItem = insertNewItem(Constants::FitParameterContainerType,
+                                      fitSuiteItem->index(), -1, FitSuiteItem::T_FIT_PARAMETERS);
+}
+
diff --git a/GUI/coregui/Models/JobModel.h b/GUI/coregui/Models/JobModel.h
index 111ec4302ad0ea883185c0f701905989ed6af829..1fd826f3ab2abf8851ca03b3e7d9845363445c87 100644
--- a/GUI/coregui/Models/JobModel.h
+++ b/GUI/coregui/Models/JobModel.h
@@ -69,6 +69,8 @@ private:
     QString generateJobName();
     QString generateJobIdentifier();
     void restoreItem(SessionItem *item);
+    void copyRealDataItem(JobItem *jobItem, const RealDataItem *realDataItem);
+    void createFitContainers(JobItem *jobItem);
 
     JobQueueData *m_queue_data;
 };
diff --git a/GUI/coregui/Models/ParameterTreeBuilder.cpp b/GUI/coregui/Models/ParameterTreeBuilder.cpp
index 969a51c548bed12d46ca99a83c16137a2a074581..79c4a3fcaeaa48f5d4c321541ccd3700e6869185 100644
--- a/GUI/coregui/Models/ParameterTreeBuilder.cpp
+++ b/GUI/coregui/Models/ParameterTreeBuilder.cpp
@@ -21,7 +21,7 @@
 #include "GroupItem.h"
 #include "ModelPath.h"
 #include "ParameterTreeItems.h"
-#include "FitModelHelper.h"
+#include "FitParameterHelper.h"
 #include <QStack>
 
 void ParameterTreeBuilder::createParameterTree(JobItem *item, const QString &tag)
@@ -106,7 +106,7 @@ void ParameterTreeBuilder::populateDomainLinks(JobItem *jobItem, const QString &
             }
         } else {
             if (ParameterItem *parItem = dynamic_cast<ParameterItem *>(current)) {
-                QString parItemPath = FitModelHelper::getParameterItemPath(parItem);
+                QString parItemPath = FitParameterHelper::getParameterItemPath(parItem);
                 std::string domainPath = ModelPath::translateParameterName(
                     jobItem->getMultiLayerItem()->parent(), parItemPath);
                 parItem->setItemValue(ParameterItem::P_DOMAIN, QString::fromStdString(domainPath));
diff --git a/GUI/coregui/Models/ParameterTuningModel.cpp b/GUI/coregui/Models/ParameterTuningModel.cpp
index b3adcac788e6fdb30110538c1ee517bcb0cc1faa..8a0caa535aca6c5538d0f3c8b28c8f6cd7ae7735 100644
--- a/GUI/coregui/Models/ParameterTuningModel.cpp
+++ b/GUI/coregui/Models/ParameterTuningModel.cpp
@@ -17,7 +17,7 @@
 #include "ParameterTuningModel.h"
 #include "FitParameterItems.h"
 #include "SessionXML.h"
-#include "FitModelHelper.h"
+#include "FitParameterHelper.h"
 #include "SessionModel.h"
 #include "ParameterTreeItems.h"
 #include <QDebug>
@@ -53,7 +53,7 @@ QMimeData *ParameterTuningModel::mimeData(const QModelIndexList &proxyIndexes) c
 
     foreach(QModelIndex proxyIndex, proxyIndexes) {
         if(ParameterItem *parameterItem = getParameterItem(proxyIndex)) {
-            QString path = FitModelHelper::getParameterItemPath(parameterItem);
+            QString path = FitParameterHelper::getParameterItemPath(parameterItem);
             mimeData->setData(SessionXML::LinkMimeType, path.toLatin1());
             qDebug() << "       FilterPropertyProxy::mimeData" << path;
             break;
diff --git a/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp b/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp
index 14568e61fab20a24ce83db7d3a3fe6a2a1031b6d..fe6d715a09f1e6ed21c0870181b0e77cbd9e2f6b 100644
--- a/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp
@@ -23,7 +23,7 @@
 #include "FilterPropertyProxy.h"
 #include "ParameterTreeItems.h"
 #include "FitParameterProxyModel.h"
-#include "FitModelHelper.h"
+#include "FitParameterHelper.h"
 #include "SessionModelDelegate.h"
 #include "CustomEventFilters.h"
 #include "OverlayLabelController.h"
@@ -79,7 +79,6 @@ void FitParameterWidget::setItem(JobItem *jobItem)
         m_jobItem = jobItem;
         if (!m_jobItem) return;
 
-        init_fit_containers();
         init_fit_model();
     }
 }
@@ -154,7 +153,7 @@ void FitParameterWidget::onFitParametersSelectionChanged(const QItemSelection &s
         SessionItem *item = m_fitParameterModel->itemForIndex(index);
         if(item->parent()->modelType() == Constants::FitParameterLinkType) {
             QString link = item->parent()->getItemValue(FitParameterLinkItem::P_LINK).toString();
-            m_tuningWidget->makeSelected(FitModelHelper::getParameterItem(m_jobItem->fitParameterContainerItem(), link));
+            m_tuningWidget->makeSelected(FitParameterHelper::getParameterItem(m_jobItem->fitParameterContainerItem(), link));
         }
         qDebug() << "XXX index" << index << item->modelType();
 
@@ -167,8 +166,8 @@ void FitParameterWidget::onFitParametersSelectionChanged(const QItemSelection &s
 void FitParameterWidget::onCreateFitParAction()
 {
     foreach(ParameterItem *item, m_tuningWidget->getSelectedParameters()) {
-        if(!FitModelHelper::getFitParameterItem(m_jobItem->fitParameterContainerItem(), item)) {
-            FitModelHelper::createFitParameter(m_jobItem->fitParameterContainerItem(), item);
+        if(!FitParameterHelper::getFitParameterItem(m_jobItem->fitParameterContainerItem(), item)) {
+            FitParameterHelper::createFitParameter(m_jobItem->fitParameterContainerItem(), item);
         }
     }
 }
@@ -179,8 +178,8 @@ void FitParameterWidget::onCreateFitParAction()
 void FitParameterWidget::onRemoveFromFitParAction()
 {
     foreach(ParameterItem *item, m_tuningWidget->getSelectedParameters()) {
-        if(FitModelHelper::getFitParameterItem(m_jobItem->fitParameterContainerItem(), item)) {
-            FitModelHelper::removeFromFitParameters(m_jobItem->fitParameterContainerItem(), item);
+        if(FitParameterHelper::getFitParameterItem(m_jobItem->fitParameterContainerItem(), item)) {
+            FitParameterHelper::removeFromFitParameters(m_jobItem->fitParameterContainerItem(), item);
         }
     }
 }
@@ -209,9 +208,9 @@ void FitParameterWidget::onRemoveFitParAction()
 void FitParameterWidget::onAddToFitParAction(int ipar)
 {
     QStringList fitParNames
-        = FitModelHelper::getFitParameterNames(m_jobItem->fitParameterContainerItem());
+        = FitParameterHelper::getFitParameterNames(m_jobItem->fitParameterContainerItem());
     foreach (ParameterItem *item, m_tuningWidget->getSelectedParameters()) {
-        FitModelHelper::addToFitParameter(m_jobItem->fitParameterContainerItem(), item,
+        FitParameterHelper::addToFitParameter(m_jobItem->fitParameterContainerItem(), item,
                                           fitParNames.at(ipar));
     }
 }
@@ -259,7 +258,7 @@ void FitParameterWidget::initTuningWidgetContextMenu(QMenu &menu)
     QMenu *addToFitParMenu = menu.addMenu("Add to existing fit parameter");
 
     QStringList fitParNames
-        = FitModelHelper::getFitParameterNames(m_jobItem->fitParameterContainerItem());
+        = FitParameterHelper::getFitParameterNames(m_jobItem->fitParameterContainerItem());
     if(fitParNames.isEmpty() || canCreateFitParameter()==false) {
         addToFitParMenu->setEnabled(false);
     }
@@ -301,25 +300,6 @@ void FitParameterWidget::init_fit_model()
     connectFitParametersSelection(true);
 }
 
-//! Adds to JobItem all fit containers, if necessary.
-
-void FitParameterWidget::init_fit_containers()
-{
-    SessionItem *fitSuiteItem = m_jobItem->getItem(JobItem::T_FIT_SUITE);
-    if (!fitSuiteItem) {
-        fitSuiteItem = m_jobItem->model()->insertNewItem(
-            Constants::FitSuiteType, m_jobItem->index(), -1, JobItem::T_FIT_SUITE);
-    }
-    Q_ASSERT(fitSuiteItem);
-
-    SessionItem *parsContainerItem = fitSuiteItem->getItem(FitSuiteItem::T_FIT_PARAMETERS);
-    if (!parsContainerItem) {
-        parsContainerItem = fitSuiteItem->model()->insertNewItem(
-            Constants::FitParameterContainerType, fitSuiteItem->index(), -1,
-            FitSuiteItem::T_FIT_PARAMETERS);
-    }
-}
-
 //! Returns true if tuning widget contains selected ParameterItem's which can be used to create
 //! a fit parameter (i.e. it is not linked with some fit parameter already).
 
@@ -327,7 +307,7 @@ bool FitParameterWidget::canCreateFitParameter()
 {
     QVector<ParameterItem *> selected = m_tuningWidget->getSelectedParameters();
     foreach(ParameterItem *item, selected) {
-        if(FitModelHelper::getFitParameterItem(
+        if(FitParameterHelper::getFitParameterItem(
                     m_jobItem->fitParameterContainerItem(), item) == nullptr)
             return true;
     }
@@ -341,7 +321,7 @@ bool FitParameterWidget::canRemoveFromFitParameters()
 {
     QVector<ParameterItem *> selected = m_tuningWidget->getSelectedParameters();
     foreach(ParameterItem *item, selected) {
-        if(FitModelHelper::getFitParameterItem(m_jobItem->fitParameterContainerItem(), item))
+        if(FitParameterHelper::getFitParameterItem(m_jobItem->fitParameterContainerItem(), item))
             return true;
     }
     return false;
diff --git a/GUI/coregui/Views/FitWidgets/FitParameterWidget.h b/GUI/coregui/Views/FitWidgets/FitParameterWidget.h
index 9d03f914d9548bfce32fb4214982699ab7aa2a8a..24444e4e2c02f5edf788214853e2e004fe19839f 100644
--- a/GUI/coregui/Views/FitWidgets/FitParameterWidget.h
+++ b/GUI/coregui/Views/FitWidgets/FitParameterWidget.h
@@ -73,7 +73,6 @@ private:
     void initFitParameterTreeContextMenu(QMenu &menu);
 
     void init_fit_model();
-    void init_fit_containers();
 
     bool canCreateFitParameter();
     bool canRemoveFromFitParameters();