diff --git a/GUI/coregui/Models/FilterPropertyProxy.cpp b/GUI/coregui/Models/FilterPropertyProxy.cpp
index f851b13c0a55ff5bce523e3e50970590c34fb200..3a87262cb21bf23f43f1b3353c0caa62c90964ab 100644
--- a/GUI/coregui/Models/FilterPropertyProxy.cpp
+++ b/GUI/coregui/Models/FilterPropertyProxy.cpp
@@ -36,42 +36,42 @@ QModelIndex FilterPropertyProxy::toSourceIndex(QModelIndex index)
     return index;
 }
 
-QMimeData *FilterPropertyProxy::mimeData(const QModelIndexList &indexes) const
-{
-    qDebug() << "FitParameterAbsModel::mimeData" << indexes;
-    QMimeData *mimeData = new QMimeData();
-
-    foreach(QModelIndex proxyIndex, indexes) {
-        QModelIndex index = FilterPropertyProxy::toSourceIndex(proxyIndex);
-        if(index.column() != 0)
-            continue;
+//QMimeData *FilterPropertyProxy::mimeData(const QModelIndexList &indexes) const
+//{
+//    qDebug() << "FitParameterAbsModel::mimeData" << indexes;
+//    QMimeData *mimeData = new QMimeData();
 
-        SessionModel *sessionModel = dynamic_cast<SessionModel *>(sourceModel());
-        Q_ASSERT(sessionModel);
-        if (ParameterItem *parameterItem
-            = dynamic_cast<ParameterItem *>(sessionModel->itemForIndex(index))) {
-            QString path = FitModelHelper::getParameterItemPath(parameterItem);
-            mimeData->setData(FitParameterAbsModel::MIME_TYPE, path.toLatin1());
-            qDebug() << "       FilterPropertyProxy::mimeData" << path;
-            break;
-        }
-    }
+//    foreach(QModelIndex proxyIndex, indexes) {
+//        QModelIndex index = FilterPropertyProxy::toSourceIndex(proxyIndex);
+//        if(index.column() != 0)
+//            continue;
 
-//    QModelIndex index = toSourceIndex(indexes.first());
-//    if (index.isValid()) {
-//        if(SessionItem *item = static_cast<SessionItem *>(index.internalPointer())) {
-//            QString path = item->value().toString();
+//        SessionModel *sessionModel = dynamic_cast<SessionModel *>(sourceModel());
+//        Q_ASSERT(sessionModel);
+//        if (ParameterItem *parameterItem
+//            = dynamic_cast<ParameterItem *>(sessionModel->itemForIndex(index))) {
+//            QString path = FitModelHelper::getParameterItemPath(parameterItem);
 //            mimeData->setData(FitParameterAbsModel::MIME_TYPE, path.toLatin1());
 //            qDebug() << "       FilterPropertyProxy::mimeData" << path;
-
+//            break;
 //        }
-////        QString path = getPathFromIndex(index);
-////        path = path.append("#%1").arg(itemFromIndex(index.sibling(index.row(), 1))
-////                                      ->data(Qt::EditRole).toDouble());
 //    }
-    return mimeData;
 
-}
+////    QModelIndex index = toSourceIndex(indexes.first());
+////    if (index.isValid()) {
+////        if(SessionItem *item = static_cast<SessionItem *>(index.internalPointer())) {
+////            QString path = item->value().toString();
+////            mimeData->setData(FitParameterAbsModel::MIME_TYPE, path.toLatin1());
+////            qDebug() << "       FilterPropertyProxy::mimeData" << path;
+
+////        }
+//////        QString path = getPathFromIndex(index);
+//////        path = path.append("#%1").arg(itemFromIndex(index.sibling(index.row(), 1))
+//////                                      ->data(Qt::EditRole).toDouble());
+////    }
+//    return mimeData;
+
+//}
 
 //QStringList FilterPropertyProxy::mimeTypes() const
 //{
diff --git a/GUI/coregui/Models/FilterPropertyProxy.h b/GUI/coregui/Models/FilterPropertyProxy.h
index 35613387978d6cf7f4c6df2720bdd81e3c537e45..5a5763ecac72584a83945916f2bebf1ddea0a94d 100644
--- a/GUI/coregui/Models/FilterPropertyProxy.h
+++ b/GUI/coregui/Models/FilterPropertyProxy.h
@@ -31,7 +31,7 @@ public:
 
     static QModelIndex toSourceIndex(QModelIndex index);
 
-    QMimeData *mimeData(const QModelIndexList &indexes) const;
+//    QMimeData *mimeData(const QModelIndexList &indexes) const;
 
 //    QStringList mimeTypes() const Q_DECL_OVERRIDE;
 
diff --git a/GUI/coregui/Models/ParameterTuningModel.cpp b/GUI/coregui/Models/ParameterTuningModel.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..a08ff38c477a0c267b5e1abd9c4c66e17e05cc20
--- /dev/null
+++ b/GUI/coregui/Models/ParameterTuningModel.cpp
@@ -0,0 +1,67 @@
+// ************************************************************************** //
+//
+//  BornAgain: simulate and fit scattering at grazing incidence
+//
+//! @file      coregui/Models/ParameterTuningModel.cpp
+//! @brief     Implements class ParameterTuningModel
+//!
+//! @homepage  http://www.bornagainproject.org
+//! @license   GNU General Public License v3 or higher (see COPYING)
+//! @copyright Forschungszentrum Jülich GmbH 2016
+//! @authors   Scientific Computing Group at MLZ Garching
+//! @authors   Céline Durniak, Marina Ganeva, David Li, Gennady Pospelov
+//! @authors   Walter Van Herck, Joachim Wuttke
+//
+// ************************************************************************** //
+
+#include "ParameterTuningModel.h"
+#include "FitParameterItems.h"
+#include "FitParameterAbsModel.h"
+#include "FitModelHelper.h"
+#include "SessionModel.h"
+#include "ParameterTreeItems.h"
+#include <QDebug>
+#include <QMimeData>
+
+ParameterTuningModel::ParameterTuningModel(QObject *parent)
+    : FilterPropertyProxy(2, parent)
+{
+
+}
+
+QMimeData *ParameterTuningModel::mimeData(const QModelIndexList &indexes) const
+{
+    qDebug() << "ParameterTuningModel::mimeData" << indexes;
+    QMimeData *mimeData = new QMimeData();
+
+    foreach(QModelIndex proxyIndex, indexes) {
+        QModelIndex index = FilterPropertyProxy::toSourceIndex(proxyIndex);
+        if(index.column() != 0)
+            continue;
+
+        SessionModel *sessionModel = dynamic_cast<SessionModel *>(sourceModel());
+        Q_ASSERT(sessionModel);
+        if (ParameterItem *parameterItem
+            = dynamic_cast<ParameterItem *>(sessionModel->itemForIndex(index))) {
+            QString path = FitModelHelper::getParameterItemPath(parameterItem);
+            mimeData->setData(FitParameterAbsModel::MIME_TYPE, path.toLatin1());
+            qDebug() << "       FilterPropertyProxy::mimeData" << path;
+            break;
+        }
+    }
+
+//    QModelIndex index = toSourceIndex(indexes.first());
+//    if (index.isValid()) {
+//        if(SessionItem *item = static_cast<SessionItem *>(index.internalPointer())) {
+//            QString path = item->value().toString();
+//            mimeData->setData(FitParameterAbsModel::MIME_TYPE, path.toLatin1());
+//            qDebug() << "       FilterPropertyProxy::mimeData" << path;
+
+//        }
+////        QString path = getPathFromIndex(index);
+////        path = path.append("#%1").arg(itemFromIndex(index.sibling(index.row(), 1))
+////                                      ->data(Qt::EditRole).toDouble());
+//    }
+    return mimeData;
+
+}
diff --git a/GUI/coregui/Models/ParameterTuningModel.h b/GUI/coregui/Models/ParameterTuningModel.h
new file mode 100644
index 0000000000000000000000000000000000000000..c725e5e7d8b4fabc513b58f7e9336e4fbf70503c
--- /dev/null
+++ b/GUI/coregui/Models/ParameterTuningModel.h
@@ -0,0 +1,52 @@
+// ************************************************************************** //
+//
+//  BornAgain: simulate and fit scattering at grazing incidence
+//
+//! @file      coregui/Models/ParameterTuningModel.h
+//! @brief     Declares class ParameterTuningModel
+//!
+//! @homepage  http://www.bornagainproject.org
+//! @license   GNU General Public License v3 or higher (see COPYING)
+//! @copyright Forschungszentrum Jülich GmbH 2016
+//! @authors   Scientific Computing Group at MLZ Garching
+//! @authors   Céline Durniak, Marina Ganeva, David Li, Gennady Pospelov
+//! @authors   Walter Van Herck, Joachim Wuttke
+//
+// ************************************************************************** //
+
+#ifndef PARAMETERTUNINGMODEL_H
+#define PARAMETERTUNINGMODEL_H
+
+#include "FilterPropertyProxy.h"
+
+//!
+//! \brief The ParameterTuningModel class represents parameters which can be tuned in real time
+//! in ParameterTuningWidget. In the fitting activity context handles dragging of ParameterItem's
+//! to the FitParametersWidget.
+//!
+
+class BA_CORE_API_ ParameterTuningModel : public FilterPropertyProxy
+{
+    Q_OBJECT
+
+public:
+    ParameterTuningModel(QObject *parent = 0);
+
+    QMimeData *mimeData(const QModelIndexList &indexes) const;
+
+    Qt::DropActions supportedDragActions() const;
+    Qt::DropActions supportedDropActions() const;
+
+};
+
+inline Qt::DropActions ParameterTuningModel::supportedDragActions() const
+{
+    return Qt::CopyAction;
+}
+
+inline Qt::DropActions ParameterTuningModel::supportedDropActions() const
+{
+    return Qt::IgnoreAction;
+}
+
+#endif
diff --git a/GUI/coregui/Models/SessionModel.h b/GUI/coregui/Models/SessionModel.h
index 82347e3c2e16d1a34a768a2b8d2937dacaf425d4..55fb504d7e9c8f379f6e75a4b20fdaa0ffb52f59 100644
--- a/GUI/coregui/Models/SessionModel.h
+++ b/GUI/coregui/Models/SessionModel.h
@@ -129,12 +129,12 @@ inline bool SessionModel::setHeaderData(int, Qt::Orientation, const QVariant &,
 
 inline Qt::DropActions SessionModel::supportedDragActions() const
 {
-    return Qt::CopyAction | Qt::MoveAction;
+    return Qt::MoveAction;
 }
 
 inline Qt::DropActions SessionModel::supportedDropActions() const
 {
-    return Qt::CopyAction | Qt::MoveAction;
+    return Qt::MoveAction;
 }
 
 inline QString SessionModel::getModelTag() const
diff --git a/GUI/coregui/Views/JobWidgets/ModelTuningWidget.cpp b/GUI/coregui/Views/JobWidgets/ModelTuningWidget.cpp
index 7f77e496af58657d8015aed279a28c442ea97099..0c047c982ab727af4db0fbc3b7b9e5e786332a06 100644
--- a/GUI/coregui/Views/JobWidgets/ModelTuningWidget.cpp
+++ b/GUI/coregui/Views/JobWidgets/ModelTuningWidget.cpp
@@ -27,7 +27,7 @@
 #include "IntensityDataItem.h"
 #include "DesignerHelper.h"
 #include "WarningSignWidget.h"
-#include "FilterPropertyProxy.h"
+#include "ParameterTuningModel.h"
 #include "FitTools.h"
 #include "ParameterTreeItems.h"
 #include <QLabel>
@@ -139,7 +139,7 @@ QVector<ParameterItem *> ModelTuningWidget::getSelectedParameters()
     QVector<ParameterItem *> result;
     QModelIndexList proxyIndexes = selectionModel()->selectedIndexes();
     foreach(QModelIndex proxyIndex, proxyIndexes) {
-        QModelIndex index = FilterPropertyProxy::toSourceIndex(proxyIndex);
+        QModelIndex index = ParameterTuningModel::toSourceIndex(proxyIndex);
         if(index.column() != 0)
             continue;
 
@@ -191,7 +191,7 @@ void ModelTuningWidget::updateParameterModel()
         throw GUIHelpers::Error("ModelTuningWidget::updateParameterModel() -> Error."
                                 "JobItem doesn't have sample or instrument model.");
 
-    FilterPropertyProxy *proxy = new FilterPropertyProxy(2, this);
+    ParameterTuningModel *proxy = new ParameterTuningModel(this);
     proxy->setSourceModel(m_jobModel);
     m_treeView->setModel(proxy);
     m_treeView->setRootIndex(proxy->mapFromSource(m_currentJobItem->getItem(JobItem::T_PARAMETER_TREE)->index()));