diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp b/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp
index 916f90d3b51e89deeea3d2a5e8b8099450363d54..c517254256e7cc04375d96b19a129be544342061 100644
--- a/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp
@@ -15,9 +15,26 @@
 // ************************************************************************** //
 
 #include "FitComparisonController.h"
+#include "SessionModel.h"
+#include "IntensityDataItem.h"
 
 FitComparisonController::FitComparisonController(QObject* parent)
     : QObject(parent)
+    , m_relativeDiffItem(nullptr)
+    , m_tempIntensityDataModel(new SessionModel("TempIntensityDataModel", this))
 {
+    createRelativeDifferenceItem();
+}
+
+IntensityDataItem* FitComparisonController::diffItem()
+{
+    return m_relativeDiffItem;
+}
+
+void FitComparisonController::createRelativeDifferenceItem()
+{
+    m_tempIntensityDataModel->clear();
 
+    m_relativeDiffItem = dynamic_cast<IntensityDataItem*>(
+        m_tempIntensityDataModel->insertNewItem(Constants::IntensityDataType));
 }
diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonController.h b/GUI/coregui/Views/FitWidgets/FitComparisonController.h
index 92ce39887b9c6e9d0ccea73c9805eb99d8972883..f7f0c6b6192a39db90f47040f376274992563e65 100644
--- a/GUI/coregui/Views/FitWidgets/FitComparisonController.h
+++ b/GUI/coregui/Views/FitWidgets/FitComparisonController.h
@@ -20,6 +20,9 @@
 #include "WinDllMacros.h"
 #include <QObject>
 
+class SessionModel;
+class IntensityDataItem;
+
 //! Provides syncronization between certain properties of fit related IntensityDataItems.
 //! Part of FitComparisonWidget.
 
@@ -29,8 +32,13 @@ class BA_CORE_API_ FitComparisonController : public QObject
 public:
     explicit FitComparisonController(QObject* parent = nullptr);
 
+    IntensityDataItem* diffItem();
+
 private:
+    void createRelativeDifferenceItem();
 
+    IntensityDataItem* m_relativeDiffItem;
+    SessionModel* m_tempIntensityDataModel;
 };
 
 #endif  // FITCOMPARISONCONTROLLER_H
diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonWidget.cpp b/GUI/coregui/Views/FitWidgets/FitComparisonWidget.cpp
index abc5e58bcff142d2c58998686968625eb603cac8..621348a7201b2b9ee036f36bf073724352bcbb63 100644
--- a/GUI/coregui/Views/FitWidgets/FitComparisonWidget.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitComparisonWidget.cpp
@@ -50,9 +50,7 @@ FitComparisonWidget::FitComparisonWidget(QWidget *parent)
     , m_statusLabel(new ColorMapLabel(0, this))
     , m_propertyWidget(new IntensityDataPropertyWidget)
     , m_repeater(new PropertyRepeater(this))
-    , m_relativeDiffItem(0)
     , m_resetViewAction(0)
-    , m_tempIntensityDataModel(new SessionModel("TempIntensityDataModel"))
     , m_comparisonController(new FitComparisonController(this))
 {
     QVBoxLayout *vlayout = new QVBoxLayout;
@@ -84,13 +82,11 @@ FitComparisonWidget::FitComparisonWidget(QWidget *parent)
     m_resetViewAction->setToolTip("Reset View");
     connect(m_resetViewAction, SIGNAL(triggered()), this, SLOT(onResetViewAction()));
 
-    m_relativeDiffItem = createRelativeDifferenceItem();
-    m_relativeDiffPlot->setItem(diffItem());
+    m_relativeDiffPlot->setItem(m_comparisonController->diffItem());
 
     m_propertyWidget->setVisible(false);
 }
 
-FitComparisonWidget::~FitComparisonWidget() { delete m_tempIntensityDataModel; }
 
 QList<QAction*> FitComparisonWidget::actionList()
 {
@@ -135,8 +131,8 @@ void FitComparisonWidget::subscribeToItem()
     m_repeater->addItem(realDataItem());
     m_repeater->addItem(simulatedDataItem());
 
-    QStringList activeProperties = QStringList() << BasicAxisItem::P_MIN << BasicAxisItem::P_MAX;
-    m_repeater->addItem(diffItem(), activeProperties);
+//    QStringList activeProperties = QStringList() << BasicAxisItem::P_MIN << BasicAxisItem::P_MAX;
+//    m_repeater->addItem(diffItem(), activeProperties);
 
     m_propertyWidget->setItem(simulatedDataItem());
 }
@@ -170,19 +166,6 @@ void FitComparisonWidget::onResetViewAction()
 //    m_repeater->setActive(true);
 }
 
-//! Creates an IntensityDataItem which will hold relative difference map between simulation
-//! and real data.
-
-IntensityDataItem* FitComparisonWidget::createRelativeDifferenceItem()
-{
-    m_tempIntensityDataModel->clear();
-
-    IntensityDataItem* result = dynamic_cast<IntensityDataItem*>(
-        m_tempIntensityDataModel->insertNewItem(Constants::IntensityDataType));
-
-    return result;
-}
-
 void FitComparisonWidget::calculateRelativeDifference()
 {
     if (!simulatedDataItem()->getOutputData()) // job failed
@@ -219,5 +202,5 @@ IntensityDataItem* FitComparisonWidget::simulatedDataItem()
 
 IntensityDataItem* FitComparisonWidget::diffItem()
 {
-    return m_relativeDiffItem;
+    return m_comparisonController->diffItem();
 }
diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonWidget.h b/GUI/coregui/Views/FitWidgets/FitComparisonWidget.h
index 4346ec0b16ebbcc10364909e901a9366e98ba47f..ef4223cae413b41854e9271026f6f4b9126a2a4e 100644
--- a/GUI/coregui/Views/FitWidgets/FitComparisonWidget.h
+++ b/GUI/coregui/Views/FitWidgets/FitComparisonWidget.h
@@ -40,7 +40,6 @@ class BA_CORE_API_ FitComparisonWidget : public SessionItemWidget
 
 public:
     explicit FitComparisonWidget(QWidget* parent = 0);
-    ~FitComparisonWidget();
 
     virtual QList<QAction*> actionList();
 
@@ -52,7 +51,6 @@ protected:
     void unsubscribeFromItem();
 
 private:
-    IntensityDataItem* createRelativeDifferenceItem();
     void calculateRelativeDifference();
 
     JobItem* jobItem();
@@ -68,9 +66,7 @@ private:
     IntensityDataPropertyWidget* m_propertyWidget;
     PropertyRepeater* m_repeater;
 
-    IntensityDataItem* m_relativeDiffItem;
     QAction* m_resetViewAction;
-    SessionModel* m_tempIntensityDataModel;
     FitComparisonController* m_comparisonController;
 };