diff --git a/GUI/coregui/Models/ParameterizedItem.cpp b/GUI/coregui/Models/ParameterizedItem.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..01b8be21b64b9b1080fd965ef08f20a7a52909ea
--- /dev/null
+++ b/GUI/coregui/Models/ParameterizedItem.cpp
@@ -0,0 +1,45 @@
+// ************************************************************************** //
+//
+//  BornAgain: simulate and fit scattering at grazing incidence
+//
+//! @file      ParameterizedItem.h
+//! @brief     Defines class ParameterizedItem.
+//!
+//! @homepage  http://apps.jcns.fz-juelich.de/BornAgain
+//! @license   GNU General Public License v3 or higher (see COPYING)
+//! @copyright Forschungszentrum Jülich GmbH 2013
+//! @authors   Scientific Computing Group at MLZ Garching
+//! @authors   C. Durniak, G. Pospelov, W. Van Herck, J. Wuttke
+//
+// ************************************************************************** //
+
+#include "ParameterizedItem.h"
+
+
+
+ParameterizedItem::ParameterizedItem(BA_MODEL_ID::Model_ID model_type,
+                                     const QString &name)
+    : QStandardItem(name)
+    , m_model_type(model_type)
+{
+    populateWithParameters();
+}
+
+ParameterizedItem::~ParameterizedItem()
+{
+
+}
+
+void ParameterizedItem::setParameter(QString name, double value)
+{
+    if (m_parameters.contains(name)) {
+        m_parameters[name] = value;
+    }
+}
+
+void ParameterizedItem::populateWithParameters()
+{
+    m_parameters[QString("firstparam")] = 5.0;
+    m_parameters[QString("anotherparam")] = 6.0;
+    m_parameters[QString("lastparam")] = 7.0;
+}
diff --git a/GUI/coregui/Models/ParameterizedItem.h b/GUI/coregui/Models/ParameterizedItem.h
new file mode 100644
index 0000000000000000000000000000000000000000..18cd39e94d014a5d4423af5cb4c01c49e57117dd
--- /dev/null
+++ b/GUI/coregui/Models/ParameterizedItem.h
@@ -0,0 +1,46 @@
+// ************************************************************************** //
+//
+//  BornAgain: simulate and fit scattering at grazing incidence
+//
+//! @file      ParameterizedItem.h
+//! @brief     Defines class ParameterizedItem.
+//!
+//! @homepage  http://apps.jcns.fz-juelich.de/BornAgain
+//! @license   GNU General Public License v3 or higher (see COPYING)
+//! @copyright Forschungszentrum Jülich GmbH 2013
+//! @authors   Scientific Computing Group at MLZ Garching
+//! @authors   C. Durniak, G. Pospelov, W. Van Herck, J. Wuttke
+//
+// ************************************************************************** //
+
+#ifndef PARAMETERIZEDITEM_H_
+#define PARAMETERIZEDITEM_H_
+
+#include <QStandardItem>
+#include <QMap>
+
+namespace BA_MODEL_ID {
+enum Model_ID {
+    MultiLayer,
+    Layer,
+};
+}
+
+class ParameterizedItem : public QStandardItem
+{
+public:
+    explicit ParameterizedItem(BA_MODEL_ID::Model_ID model_type, const QString &name);
+    ~ParameterizedItem();
+
+    void setParameter(QString name, double value);
+    QMap<QString, double> &getParameters() {
+        return m_parameters;
+    }
+private:
+    void populateWithParameters();
+    BA_MODEL_ID::Model_ID m_model_type;
+    QMap<QString, double> m_parameters;
+};
+
+
+#endif /* PARAMETERIZEDITEM_H_ */
diff --git a/GUI/coregui/Models/SessionModel.cpp b/GUI/coregui/Models/SessionModel.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..2bf8945725edaea6a8a7cf769303cb22490e35b4
--- /dev/null
+++ b/GUI/coregui/Models/SessionModel.cpp
@@ -0,0 +1,57 @@
+// ************************************************************************** //
+//
+//  BornAgain: simulate and fit scattering at grazing incidence
+//
+//! @file      Models/SessionModel.cpp
+//! @brief     Implements class SessionModel.
+//!
+//! @homepage  http://apps.jcns.fz-juelich.de/BornAgain
+//! @license   GNU General Public License v3 or higher (see COPYING)
+//! @copyright Forschungszentrum Jülich GmbH 2013
+//! @authors   Scientific Computing Group at MLZ Garching
+//! @authors   C. Durniak, G. Pospelov, W. Van Herck, J. Wuttke
+//
+// ************************************************************************** //
+
+#include "SessionModel.h"
+
+
+SessionModel::SessionModel(QObject *parent)
+    : QStandardItemModel(parent)
+{
+    initialize();
+}
+
+SessionModel::~SessionModel()
+{
+
+}
+
+QStandardItem *SessionModel::insertNewItem(BA_MODEL_ID::Model_ID model_type, const QModelIndex &index)
+{
+    QStandardItem *parent;
+    if (index.isValid()) {
+        parent = itemFromIndex(index);
+        if (!parent) {
+            return 0;
+        }
+    }
+    else {
+        parent = invisibleRootItem();
+    }
+    return createNewItem(parent, model_type);
+}
+
+void SessionModel::initialize()
+{
+    m_default_names[BA_MODEL_ID::MultiLayer] = QString("MultiLayer");
+    m_default_names[BA_MODEL_ID::Layer] = QString("Layer");
+}
+
+QStandardItem *SessionModel::createNewItem(QStandardItem *parent, BA_MODEL_ID::Model_ID model_type)
+{
+    QString name = m_default_names[model_type];
+    ParameterizedItem *new_item = new ParameterizedItem(model_type, name);
+    parent->appendRow(new_item);
+    return new_item;
+}
diff --git a/GUI/coregui/Models/SessionModel.h b/GUI/coregui/Models/SessionModel.h
new file mode 100644
index 0000000000000000000000000000000000000000..ed9e9ec7c008794221dec3b99a77868bd5119380
--- /dev/null
+++ b/GUI/coregui/Models/SessionModel.h
@@ -0,0 +1,47 @@
+// ************************************************************************** //
+//
+//  BornAgain: simulate and fit scattering at grazing incidence
+//
+//! @file      Models/SessionModel.h
+//! @brief     Defines class SessionModel.
+//!
+//! @homepage  http://apps.jcns.fz-juelich.de/BornAgain
+//! @license   GNU General Public License v3 or higher (see COPYING)
+//! @copyright Forschungszentrum Jülich GmbH 2013
+//! @authors   Scientific Computing Group at MLZ Garching
+//! @authors   C. Durniak, G. Pospelov, W. Van Herck, J. Wuttke
+//
+// ************************************************************************** //
+
+#ifndef SESSIONMODEL_H
+#define SESSIONMODEL_H
+
+#include <QStandardItemModel>
+#include "ParameterizedItem.h"
+
+class SessionModel : public QStandardItemModel
+{
+    Q_OBJECT
+public:
+    explicit SessionModel(QObject *parent=0);
+    ~SessionModel();
+
+    QString filename() const { return m_filename; }
+    void setFilename(const QString &filename) {
+        m_filename = filename;
+    }
+    QStandardItem *insertNewItem(BA_MODEL_ID::Model_ID model_type,
+                                 const QModelIndex &index);
+
+//    void load(const QString &filename=QString());
+//    void save(const QString &filename=QString());
+
+private:
+    void initialize();
+    QStandardItem *createNewItem(QStandardItem *parent,
+                                 BA_MODEL_ID::Model_ID model_type);
+    QString m_filename;
+    QMap<BA_MODEL_ID::Model_ID, QString> m_default_names;
+};
+
+#endif // SESSIONMODEL_H
diff --git a/GUI/coregui/Views/SampleView.cpp b/GUI/coregui/Views/SampleView.cpp
index cbc6d29ba8ded5c4d304c0e6454503df2ae21ce2..79ee5e11725d40a003c6997c6b7ddda6d47d47e9 100644
--- a/GUI/coregui/Views/SampleView.cpp
+++ b/GUI/coregui/Views/SampleView.cpp
@@ -3,6 +3,7 @@
 #include "SampleDesigner.h"
 #include "SampleToolBar.h"
 #include "MaterialBrowser.h"
+#include "SessionModel.h"
 
 
 #include <QDockWidget>
@@ -75,7 +76,13 @@ void SampleView::initSubWindows()
 
     m_subWindows[WidgetBoxSubWindow] = SampleViewComponents::createWidgetBox(m_sampleDesigner, this);
 
-    m_subWindows[SampleInspectorSubWindow] = SampleViewComponents::createTreeInspector(this);
+    SessionModel *session_model = new SessionModel();
+    // Temporary for testing
+    QStandardItem *multilayer = session_model->insertNewItem(BA_MODEL_ID::MultiLayer, QModelIndex());
+    QStandardItem *layer = session_model->insertNewItem(BA_MODEL_ID::Layer, QModelIndex());
+    session_model->insertNewItem(BA_MODEL_ID::Layer, multilayer->index());
+    // END temporary
+    m_subWindows[SampleTreeView] = SampleViewComponents::createTreeView(session_model, this);
 
     m_subWindows[PropertyEditorSubWindow] = SampleViewComponents::createPropertyEditor(m_sampleDesigner, this);
 
@@ -110,7 +117,7 @@ void SampleView::resetToDefaultLayout()
     }
 
     addDockWidget(Qt::LeftDockWidgetArea, m_dockWidgets[WidgetBoxSubWindow]);
-    addDockWidget(Qt::RightDockWidgetArea, m_dockWidgets[SampleInspectorSubWindow]);
+    addDockWidget(Qt::RightDockWidgetArea, m_dockWidgets[SampleTreeView]);
     addDockWidget(Qt::RightDockWidgetArea, m_dockWidgets[PropertyEditorSubWindow]);
     addDockWidget(Qt::BottomDockWidgetArea, m_dockWidgets[InfoSubWindow]);
 
diff --git a/GUI/coregui/Views/SampleView.h b/GUI/coregui/Views/SampleView.h
index 3e815a71abf87d058eb238398032cae5c15c6f32..20487d1caf782acff6634acdaccb5b065a75781d 100644
--- a/GUI/coregui/Views/SampleView.h
+++ b/GUI/coregui/Views/SampleView.h
@@ -5,6 +5,7 @@
 #include <QWidget>
 #include <QMainWindow>
 #include <QDockWidget>
+#include <QTreeView>
 
 
 class SampleDesignerInterface;
@@ -22,7 +23,7 @@ public:
     enum SubWindows
     {
         WidgetBoxSubWindow,
-        SampleInspectorSubWindow,
+        SampleTreeView,
         PropertyEditorSubWindow,
         InfoSubWindow,
         NumberOfSubWindows
diff --git a/GUI/coregui/Views/SampleViewComponents.cpp b/GUI/coregui/Views/SampleViewComponents.cpp
index 8a4c9bfa3da4172b4b8135783880ac193cbcbb56..344ebefd333ed8d8e208dbd9ec71ce78a401825a 100644
--- a/GUI/coregui/Views/SampleViewComponents.cpp
+++ b/GUI/coregui/Views/SampleViewComponents.cpp
@@ -39,10 +39,12 @@ SamplePropertyEditor *SampleViewComponents::createPropertyEditor(SampleDesignerI
 //    result->setObjectName(QLatin1String("PropertyEditor"));
     return new SamplePropertyEditor(core, parent);
 }
-
-SampleTreeInspector *SampleViewComponents::createTreeInspector(QWidget *parent)
+QTreeView *SampleViewComponents::createTreeView(SessionModel *session_model, QWidget *parent)
 {
-    return new SampleTreeInspector(parent);
+    QTreeView *tree_view = new QTreeView(parent);
+    tree_view->setModel(session_model);
+    tree_view->setAllColumnsShowFocus(true);
+    return tree_view;
 }
 
 SampleInfoStreamInterface *SampleViewComponents::createInfoStream(QWidget *parent)
diff --git a/GUI/coregui/Views/SampleViewComponents.h b/GUI/coregui/Views/SampleViewComponents.h
index e477202a3df4c062002b98e84c0f9672001b27d1..2616794b08650b78dad8e26a41763d931c6a1372 100644
--- a/GUI/coregui/Views/SampleViewComponents.h
+++ b/GUI/coregui/Views/SampleViewComponents.h
@@ -2,11 +2,13 @@
 #define SAMPLEVIEWCOMPONENTS_H
 
 #include <QWidget>
+#include <QTreeView>
 #include "widgetbox.h"
 
 #include "SamplePropertyEditor.h"
 #include "SampleTreeInspector.h"
 #include "SampleWidgetBox.h"
+#include "SessionModel.h"
 
 //class SampleWidgetBoxInterface : public QWidget
 //{
@@ -41,7 +43,7 @@ class SampleViewComponents
 public:
     static SampleWidgetBox *createWidgetBox(SampleDesignerInterface *core, QWidget *parent);
     static SamplePropertyEditor *createPropertyEditor(SampleDesignerInterface *core,QWidget *parent);
-    static SampleTreeInspector *createTreeInspector(QWidget *parent);
+    static QTreeView *createTreeView(SessionModel *session_model, QWidget *parent);
     static SampleInfoStreamInterface *createInfoStream(QWidget *parent);
 };