diff --git a/App/main.cpp b/App/main.cpp
index 4601b073a8ff5b062ae9987ac5378cd9969b2bd5..670f797958048ab379aeb14601e9ca5bb6f7eb63 100644
--- a/App/main.cpp
+++ b/App/main.cpp
@@ -15,7 +15,7 @@
 #include "App/MessageHandler.h"
 #include "App/appoptions.h"
 #include "GUI/Application/GlobalSettings.h"
-#include "GUI/DataLoaders/DataLoaderUtil.h"
+#include "GUI/Views/Loaders/DataLoaderUtil.h"
 #include "GUI/Session/SessionData.h"
 #include "GUI/mainwindow/mainwindow.h"
 #include "GUI/utils/hostosinfo.h"
diff --git a/GUI/CMakeLists.txt b/GUI/CMakeLists.txt
index a1c06ac03cbca919cd8ad91b6334e8e249980701..023ef1f045403210872636d5c084eb2c26c8ef9d 100644
--- a/GUI/CMakeLists.txt
+++ b/GUI/CMakeLists.txt
@@ -16,7 +16,6 @@ set(library_name BornAgainGUI)
 set(include_dirs
     ${CMAKE_CURRENT_SOURCE_DIR}/Application
     ${CMAKE_CURRENT_SOURCE_DIR}/CommonWidgets
-    ${CMAKE_CURRENT_SOURCE_DIR}/DataLoaders
     ${CMAKE_CURRENT_SOURCE_DIR}/InfoWidgets
     ${CMAKE_CURRENT_SOURCE_DIR}/Items
     ${CMAKE_CURRENT_SOURCE_DIR}/Mapper
@@ -24,25 +23,12 @@ set(include_dirs
     ${CMAKE_CURRENT_SOURCE_DIR}/Session
     ${CMAKE_CURRENT_SOURCE_DIR}/mainwindow
     ${CMAKE_CURRENT_SOURCE_DIR}/utils
-    ${CMAKE_CURRENT_SOURCE_DIR}/Views/FitWidgets
-    ${CMAKE_CURRENT_SOURCE_DIR}/Views/ImportDataWidgets
-    ${CMAKE_CURRENT_SOURCE_DIR}/Views/ImportDataWidgets/CsvImportAssistant
-    ${CMAKE_CURRENT_SOURCE_DIR}/Views/InstrumentWidgets
-    ${CMAKE_CURRENT_SOURCE_DIR}/Views/IntensityDataWidgets
-    ${CMAKE_CURRENT_SOURCE_DIR}/Views/JobWidgets
-    ${CMAKE_CURRENT_SOURCE_DIR}/Views/MaskWidgets
-    ${CMAKE_CURRENT_SOURCE_DIR}/Views/MaterialEditor
-    ${CMAKE_CURRENT_SOURCE_DIR}/Views/ProjectionsWidgets
-    ${CMAKE_CURRENT_SOURCE_DIR}/Views/PropertyEditor
-    ${CMAKE_CURRENT_SOURCE_DIR}/Views/RealSpaceWidgets
-    ${CMAKE_CURRENT_SOURCE_DIR}/Views/SampleDesigner
-    ${CMAKE_CURRENT_SOURCE_DIR}/Views/SimulationWidgets
-    ${CMAKE_CURRENT_SOURCE_DIR}/Views/SpecularDataWidgets
-    ${CMAKE_CURRENT_SOURCE_DIR}/Views/Toplevel
 )
 
 file(GLOB model_dirs ${CMAKE_CURRENT_SOURCE_DIR}/Models/*)
 list(APPEND include_dirs ${model_dirs})
+file(GLOB views_dirs ${CMAKE_CURRENT_SOURCE_DIR}/Views/*)
+list(APPEND include_dirs ${views_dirs})
 
 set(source_files)
 set(include_files)
diff --git a/GUI/mainwindow/LinkInstrumentManager.cpp b/GUI/Project/LinkInstrumentManager.cpp
similarity index 97%
rename from GUI/mainwindow/LinkInstrumentManager.cpp
rename to GUI/Project/LinkInstrumentManager.cpp
index 4f2cf20c6e342a4ba86f271a18f8fa538c7317b4..859dd48c4d80d0809dcd4eb23509ed4c150cce8e 100644
--- a/GUI/mainwindow/LinkInstrumentManager.cpp
+++ b/GUI/Project/LinkInstrumentManager.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/mainwindow/LinkInstrumentManager.cpp
+//! @file      GUI/Project/LinkInstrumentManager.cpp
 //! @brief     Implements class LinkInstrumentManager
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/mainwindow/LinkInstrumentManager.h"
+#include "GUI/Project/LinkInstrumentManager.h"
 #include "GUI/Items/InstrumentItems.h"
 #include "GUI/Items/RealDataItem.h"
 #include "GUI/Models/Data/RealDataModel.h"
diff --git a/GUI/mainwindow/LinkInstrumentManager.h b/GUI/Project/LinkInstrumentManager.h
similarity index 89%
rename from GUI/mainwindow/LinkInstrumentManager.h
rename to GUI/Project/LinkInstrumentManager.h
index 8c00b7c47360627ef3c0b094001b8da5812fb664..2bdaf254ce649133fa144ed327915e773084c41c 100644
--- a/GUI/mainwindow/LinkInstrumentManager.h
+++ b/GUI/Project/LinkInstrumentManager.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/mainwindow/LinkInstrumentManager.h
+//! @file      GUI/Project/LinkInstrumentManager.h
 //! @brief     Defines class LinkInstrumentManager
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MAINWINDOW_LINKINSTRUMENTMANAGER_H
-#define BORNAGAIN_GUI_MAINWINDOW_LINKINSTRUMENTMANAGER_H
+#ifndef BORNAGAIN_GUI_PROJECT_LINKINSTRUMENTMANAGER_H
+#define BORNAGAIN_GUI_PROJECT_LINKINSTRUMENTMANAGER_H
 
 #include <QList>
 #include <QObject>
@@ -52,4 +52,4 @@ private:
     RealDataModel* m_realDataModel;
 };
 
-#endif // BORNAGAIN_GUI_MAINWINDOW_LINKINSTRUMENTMANAGER_H
+#endif // BORNAGAIN_GUI_PROJECT_LINKINSTRUMENTMANAGER_H
diff --git a/GUI/mainwindow/OutputDataIOService.cpp b/GUI/Project/OutputDataIOService.cpp
similarity index 97%
rename from GUI/mainwindow/OutputDataIOService.cpp
rename to GUI/Project/OutputDataIOService.cpp
index 7a892b44e74a5c7e6a2579e16680e798c03dbb36..b352df937643890970340a87955fece79e98f32f 100644
--- a/GUI/mainwindow/OutputDataIOService.cpp
+++ b/GUI/Project/OutputDataIOService.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/mainwindow/OutputDataIOService.cpp
+//! @file      GUI/Project/OutputDataIOService.cpp
 //! @brief     Implements class OutputDataIOService
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/mainwindow/OutputDataIOService.h"
+#include "GUI/Project/OutputDataIOService.h"
 #include "GUI/Items/JobItem.h"
 #include "GUI/Items/ModelPath.h"
 #include "GUI/Models/Data/ApplicationModels.h"
diff --git a/GUI/mainwindow/OutputDataIOService.h b/GUI/Project/OutputDataIOService.h
similarity index 87%
rename from GUI/mainwindow/OutputDataIOService.h
rename to GUI/Project/OutputDataIOService.h
index c8ef06897bded9a09a49fcd891428c86c49e52f9..9b943b21c03b3fbe6b2be7c392abb09f662db9c4 100644
--- a/GUI/mainwindow/OutputDataIOService.h
+++ b/GUI/Project/OutputDataIOService.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/mainwindow/OutputDataIOService.h
+//! @file      GUI/Project/OutputDataIOService.h
 //! @brief     Defines class OutputDataIOService
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_MAINWINDOW_OUTPUTDATAIOSERVICE_H
-#define BORNAGAIN_GUI_MAINWINDOW_OUTPUTDATAIOSERVICE_H
+#ifndef BORNAGAIN_GUI_PROJECT_OUTPUTDATAIOSERVICE_H
+#define BORNAGAIN_GUI_PROJECT_OUTPUTDATAIOSERVICE_H
 
 #include "GUI/mainwindow/OutputDataIOHistory.h"
 #include <QObject>
@@ -49,4 +49,4 @@ private:
     ApplicationModels* m_applicationModels;
 };
 
-#endif // BORNAGAIN_GUI_MAINWINDOW_OUTPUTDATAIOSERVICE_H
+#endif // BORNAGAIN_GUI_PROJECT_OUTPUTDATAIOSERVICE_H
diff --git a/GUI/Project/projectdocument.cpp b/GUI/Project/projectdocument.cpp
index 4473f4556594ed38e959b35ca5f39d3903c63ab0..0dd0cab21adee220a11879c283cc44d0af119e76 100644
--- a/GUI/Project/projectdocument.cpp
+++ b/GUI/Project/projectdocument.cpp
@@ -16,8 +16,8 @@
 #include "GUI/Models/Data/DocumentModel.h"
 #include "GUI/Models/Job/JobModel.h"
 #include "GUI/Project/ProjectUtils.h"
-#include "GUI/mainwindow/LinkInstrumentManager.h"
-#include "GUI/mainwindow/OutputDataIOService.h"
+#include "GUI/Project/LinkInstrumentManager.h"
+#include "GUI/Project/OutputDataIOService.h"
 #include "GUI/utils/Error.h"
 #include "GUI/utils/Helpers.h"
 #include "GUI/utils/MessageService.h"
diff --git a/GUI/Views/ImportDataWidgets/ImportDataUtils.cpp b/GUI/Views/ImportDataWidgets/ImportDataUtils.cpp
index 665b9f8b3ba3e654aae46ec2284c3a16c0be0c60..44dc65a221d4d5ffe403d2f2ac108a138cdbad04 100644
--- a/GUI/Views/ImportDataWidgets/ImportDataUtils.cpp
+++ b/GUI/Views/ImportDataWidgets/ImportDataUtils.cpp
@@ -15,7 +15,7 @@
 #include "GUI/Views/ImportDataWidgets/ImportDataUtils.h"
 #include "Device/Data/OutputData.h"
 #include "Device/InputOutput/DataFormatUtils.h"
-#include "GUI/DataLoaders/QREDataLoader.h"
+#include "GUI/Views/Loaders/QREDataLoader.h"
 #include "GUI/Items/InstrumentItems.h"
 #include "GUI/Items/RealDataItem.h"
 #include "GUI/utils/OutputDataUtils.h"
diff --git a/GUI/Views/ImportDataWidgets/RealDataPropertiesWidget.cpp b/GUI/Views/ImportDataWidgets/RealDataPropertiesWidget.cpp
index eadda81e442e38b387141ec8f6c16c08eb8fea78..87e0994d4c67d3cff1bb127822c255d5ea357426 100644
--- a/GUI/Views/ImportDataWidgets/RealDataPropertiesWidget.cpp
+++ b/GUI/Views/ImportDataWidgets/RealDataPropertiesWidget.cpp
@@ -17,7 +17,7 @@
 #include "GUI/Items/RealDataItem.h"
 #include "GUI/Models/Instrument/InstrumentModel.h"
 #include "GUI/Project/projectdocument.h"
-#include "GUI/mainwindow/LinkInstrumentManager.h"
+#include "GUI/Project/LinkInstrumentManager.h"
 #include "GUI/mainwindow/mainwindow.h"
 #include <QComboBox>
 #include <QLabel>
diff --git a/GUI/DataLoaders/AutomaticDataLoader1D.cpp b/GUI/Views/Loaders/AutomaticDataLoader1D.cpp
similarity index 94%
rename from GUI/DataLoaders/AutomaticDataLoader1D.cpp
rename to GUI/Views/Loaders/AutomaticDataLoader1D.cpp
index 137324d318eafb68a8fba2b49f80b7e79f169a23..16326f7fe8d479acfed0ced4106a541bca52ad4c 100644
--- a/GUI/DataLoaders/AutomaticDataLoader1D.cpp
+++ b/GUI/Views/Loaders/AutomaticDataLoader1D.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/DataLoaders/AutomaticDataLoader1D.cpp
+//! @file      GUI/Views/Loaders/AutomaticDataLoader1D.cpp
 //! @brief     Implements class AutomaticDataLoader1D
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,9 +12,9 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/DataLoaders/AutomaticDataLoader1D.h"
+#include "GUI/Views/Loaders/AutomaticDataLoader1D.h"
 #include "Device/InputOutput/OutputDataReadReflectometry.h"
-#include "GUI/DataLoaders/AutomaticDataLoader1DResultModel.h"
+#include "GUI/Views/Loaders/AutomaticDataLoader1DResultModel.h"
 #include "GUI/Items/RealDataItem.h"
 #include "GUI/Items/SpecularDataItem.h"
 #include "GUI/Models/Data/ImportDataInfo.h"
diff --git a/GUI/DataLoaders/AutomaticDataLoader1D.h b/GUI/Views/Loaders/AutomaticDataLoader1D.h
similarity index 86%
rename from GUI/DataLoaders/AutomaticDataLoader1D.h
rename to GUI/Views/Loaders/AutomaticDataLoader1D.h
index f8719f44642cea4be6f9a7e07e5aa1d25665e510..c9110d94e4b283cfcd9c730845328af2dd4e25b3 100644
--- a/GUI/DataLoaders/AutomaticDataLoader1D.h
+++ b/GUI/Views/Loaders/AutomaticDataLoader1D.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/DataLoaders/AutomaticDataLoader1D.h
+//! @file      GUI/Views/Loaders/AutomaticDataLoader1D.h
 //! @brief     Defines class AutomaticDataLoader1D
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_DATALOADERS_AUTOMATICDATALOADER1D_H
-#define BORNAGAIN_GUI_DATALOADERS_AUTOMATICDATALOADER1D_H
+#ifndef BORNAGAIN_GUI_VIEWS_LOADERS_AUTOMATICDATALOADER1D_H
+#define BORNAGAIN_GUI_VIEWS_LOADERS_AUTOMATICDATALOADER1D_H
 
 #include "Device/Data/OutputData.h"
 #include "GUI/Models/Data/AbstractDataLoader1D.h"
@@ -39,4 +39,4 @@ private:
     QString m_error;
 };
 
-#endif // BORNAGAIN_GUI_DATALOADERS_AUTOMATICDATALOADER1D_H
+#endif // BORNAGAIN_GUI_VIEWS_LOADERS_AUTOMATICDATALOADER1D_H
diff --git a/GUI/DataLoaders/AutomaticDataLoader1DResultModel.cpp b/GUI/Views/Loaders/AutomaticDataLoader1DResultModel.cpp
similarity index 93%
rename from GUI/DataLoaders/AutomaticDataLoader1DResultModel.cpp
rename to GUI/Views/Loaders/AutomaticDataLoader1DResultModel.cpp
index 871a66583316c2a831aaf12d60bc387c1e6840fb..ccabbe28a68d2887d12e839f2903e4413f235e70 100644
--- a/GUI/DataLoaders/AutomaticDataLoader1DResultModel.cpp
+++ b/GUI/Views/Loaders/AutomaticDataLoader1DResultModel.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/DataLoaders/AutomaticDataLoader1DResultModel.cpp
+//! @file      GUI/Views/Loaders/AutomaticDataLoader1DResultModel.cpp
 //! @brief     Implements class AutomaticDataLoader1DResultModel
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/DataLoaders/AutomaticDataLoader1DResultModel.h"
+#include "GUI/Views/Loaders/AutomaticDataLoader1DResultModel.h"
 #include "GUI/Items/RealDataItem.h"
 #include "GUI/Items/SpecularDataItem.h"
 
diff --git a/GUI/DataLoaders/AutomaticDataLoader1DResultModel.h b/GUI/Views/Loaders/AutomaticDataLoader1DResultModel.h
similarity index 84%
rename from GUI/DataLoaders/AutomaticDataLoader1DResultModel.h
rename to GUI/Views/Loaders/AutomaticDataLoader1DResultModel.h
index 68c55fafade2f8c3885b3e28c189901587c807b2..81d991461fb23d81f62f2048dd1f39713f5b0a41 100644
--- a/GUI/DataLoaders/AutomaticDataLoader1DResultModel.h
+++ b/GUI/Views/Loaders/AutomaticDataLoader1DResultModel.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/DataLoaders/AutomaticDataLoader1DResultModel.h
+//! @file      GUI/Views/Loaders/AutomaticDataLoader1DResultModel.h
 //! @brief     Defines class AutomaticDataLoader1DResultModel
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_DATALOADERS_AUTOMATICDATALOADER1DRESULTMODEL_H
-#define BORNAGAIN_GUI_DATALOADERS_AUTOMATICDATALOADER1DRESULTMODEL_H
+#ifndef BORNAGAIN_GUI_VIEWS_LOADERS_AUTOMATICDATALOADER1DRESULTMODEL_H
+#define BORNAGAIN_GUI_VIEWS_LOADERS_AUTOMATICDATALOADER1DRESULTMODEL_H
 
 #include "GUI/Models/Data/AbstractDataLoaderResultModel.h"
 
@@ -40,4 +40,4 @@ private:
     RealDataItem* m_item;
 };
 
-#endif // BORNAGAIN_GUI_DATALOADERS_AUTOMATICDATALOADER1DRESULTMODEL_H
+#endif // BORNAGAIN_GUI_VIEWS_LOADERS_AUTOMATICDATALOADER1DRESULTMODEL_H
diff --git a/GUI/DataLoaders/DataLoaderUtil.cpp b/GUI/Views/Loaders/DataLoaderUtil.cpp
similarity index 89%
rename from GUI/DataLoaders/DataLoaderUtil.cpp
rename to GUI/Views/Loaders/DataLoaderUtil.cpp
index 945260e5fe3cddd5dec9881eca274528020b70a3..81fb41e85829b24dd8e5dc4357cf1e0b391f4fdf 100644
--- a/GUI/DataLoaders/DataLoaderUtil.cpp
+++ b/GUI/Views/Loaders/DataLoaderUtil.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/DataLoaders/DataLoaderUtil.cpp
+//! @file      GUI/Views/Loaders/DataLoaderUtil.cpp
 //! @brief     Implements class UserDefinedDataLoader1D
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/DataLoaders/DataLoaderUtil.h"
-#include "GUI/DataLoaders/AutomaticDataLoader1D.h"
-#include "GUI/DataLoaders/QREDataLoader.h"
-#include "GUI/DataLoaders/UserDefinedDataLoader1D.h"
+#include "GUI/Views/Loaders/DataLoaderUtil.h"
+#include "GUI/Views/Loaders/AutomaticDataLoader1D.h"
+#include "GUI/Views/Loaders/QREDataLoader.h"
+#include "GUI/Views/Loaders/UserDefinedDataLoader1D.h"
 #include "GUI/Models/Data/DataLoaders1D.h"
 
 void cloneAsUserDefinedLoader(AbstractDataLoader1D* loader, const QString& name)
diff --git a/GUI/DataLoaders/DataLoaderUtil.h b/GUI/Views/Loaders/DataLoaderUtil.h
similarity index 80%
rename from GUI/DataLoaders/DataLoaderUtil.h
rename to GUI/Views/Loaders/DataLoaderUtil.h
index ed92834113fde49f6b12bdae13d2160b403fce03..34276987947365e377b0e232f9512958828f9edb 100644
--- a/GUI/DataLoaders/DataLoaderUtil.h
+++ b/GUI/Views/Loaders/DataLoaderUtil.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/DataLoaders/DataLoaderUtil.h
+//! @file      GUI/Views/Loaders/DataLoaderUtil.h
 //! @brief     Utility functions for data loaders
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_DATALOADERS_DATALOADERUTIL_H
-#define BORNAGAIN_GUI_DATALOADERS_DATALOADERUTIL_H
+#ifndef BORNAGAIN_GUI_VIEWS_LOADERS_DATALOADERUTIL_H
+#define BORNAGAIN_GUI_VIEWS_LOADERS_DATALOADERUTIL_H
 
 class AbstractDataLoader1D;
 class QString;
@@ -24,4 +24,4 @@ void cloneAsUserDefinedLoader(AbstractDataLoader1D* loader, const QString& name)
 //! register the concrete 1D data loaders with DataLoaders1D
 void register1DDataLoaders();
 
-#endif // BORNAGAIN_GUI_DATALOADERS_DATALOADERUTIL_H
+#endif // BORNAGAIN_GUI_VIEWS_LOADERS_DATALOADERUTIL_H
diff --git a/GUI/DataLoaders/QREDataLoader.cpp b/GUI/Views/Loaders/QREDataLoader.cpp
similarity index 99%
rename from GUI/DataLoaders/QREDataLoader.cpp
rename to GUI/Views/Loaders/QREDataLoader.cpp
index 87415751e0dfe2b5eace102bd6cc61d30b522252..14bad0966a2c94fd5359b3c31cea073db85404bc 100644
--- a/GUI/DataLoaders/QREDataLoader.cpp
+++ b/GUI/Views/Loaders/QREDataLoader.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/DataLoaders/QREDataLoader.cpp
+//! @file      GUI/Views/Loaders/QREDataLoader.cpp
 //! @brief     Implements class QREDataLoader
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/DataLoaders/QREDataLoader.h"
+#include "GUI/Views/Loaders/QREDataLoader.h"
 #include "Base/Axis/PointwiseAxis.h"
 #include "Device/Coord/AxisNames.h"
-#include "GUI/DataLoaders/QREDataLoaderProperties.h"
-#include "GUI/DataLoaders/QREDataLoaderResultModel.h"
+#include "GUI/Views/Loaders/QREDataLoaderProperties.h"
+#include "GUI/Views/Loaders/QREDataLoaderResultModel.h"
 #include "GUI/Items/JobItemUtils.h"
 #include "GUI/Items/RealDataItem.h"
 #include "GUI/Items/SpecularDataItem.h"
diff --git a/GUI/DataLoaders/QREDataLoader.h b/GUI/Views/Loaders/QREDataLoader.h
similarity index 96%
rename from GUI/DataLoaders/QREDataLoader.h
rename to GUI/Views/Loaders/QREDataLoader.h
index 8a4e8bbdb9cff456c90ee0e4a6b37fc9dd455fe9..c9bdf575d25859db4dd74a9c30ad6c3dcdc60551 100644
--- a/GUI/DataLoaders/QREDataLoader.h
+++ b/GUI/Views/Loaders/QREDataLoader.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/DataLoaders/QREDataLoader.h
+//! @file      GUI/Views/Loaders/QREDataLoader.h
 //! @brief     Defines class QREDataLoader
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_DATALOADERS_QREDATALOADER_H
-#define BORNAGAIN_GUI_DATALOADERS_QREDATALOADER_H
+#ifndef BORNAGAIN_GUI_VIEWS_LOADERS_QREDATALOADER_H
+#define BORNAGAIN_GUI_VIEWS_LOADERS_QREDATALOADER_H
 
 #include "GUI/Models/Data/AbstractDataLoader1D.h"
 #include <QVector>
@@ -139,4 +139,4 @@ private:
 QDataStream& operator<<(QDataStream& stream, const QREDataLoader::ImportSettings& s);
 QDataStream& operator>>(QDataStream& stream, QREDataLoader::ImportSettings& s);
 
-#endif // BORNAGAIN_GUI_DATALOADERS_QREDATALOADER_H
+#endif // BORNAGAIN_GUI_VIEWS_LOADERS_QREDATALOADER_H
diff --git a/GUI/DataLoaders/QREDataLoaderProperties.cpp b/GUI/Views/Loaders/QREDataLoaderProperties.cpp
similarity index 97%
rename from GUI/DataLoaders/QREDataLoaderProperties.cpp
rename to GUI/Views/Loaders/QREDataLoaderProperties.cpp
index c46d51f2da9b59791695654d6b8c4c8511d13e54..02130e6906e3be6581a353aac9728302f6367a70 100644
--- a/GUI/DataLoaders/QREDataLoaderProperties.cpp
+++ b/GUI/Views/Loaders/QREDataLoaderProperties.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/DataLoaders/QREDataLoaderProperties.cpp
+//! @file      GUI/Views/Loaders/QREDataLoaderProperties.cpp
 //! @brief     Implements class AutomaticMultiColumnDataLoader1DProperties
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/DataLoaders/QREDataLoaderProperties.h"
+#include "GUI/Views/Loaders/QREDataLoaderProperties.h"
 #include "ui_QREDataLoaderProperties.h"
 #include <QCheckBox>
 #include <QtGui>
diff --git a/GUI/DataLoaders/QREDataLoaderProperties.h b/GUI/Views/Loaders/QREDataLoaderProperties.h
similarity index 87%
rename from GUI/DataLoaders/QREDataLoaderProperties.h
rename to GUI/Views/Loaders/QREDataLoaderProperties.h
index d228b5624b0d1036f93cd7c5920084fbf3fb4bcb..56abe77ae106ffa3444e8f9f18b3f5c91bf84eae 100644
--- a/GUI/DataLoaders/QREDataLoaderProperties.h
+++ b/GUI/Views/Loaders/QREDataLoaderProperties.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/DataLoaders/QREDataLoaderProperties.h
+//! @file      GUI/Views/Loaders/QREDataLoaderProperties.h
 //! @brief     Defines class AutomaticMultiColumnDataLoader1DProperties
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_DATALOADERS_QREDATALOADERPROPERTIES_H
-#define BORNAGAIN_GUI_DATALOADERS_QREDATALOADERPROPERTIES_H
+#ifndef BORNAGAIN_GUI_VIEWS_LOADERS_QREDATALOADERPROPERTIES_H
+#define BORNAGAIN_GUI_VIEWS_LOADERS_QREDATALOADERPROPERTIES_H
 
 #include <QWidget>
 
@@ -62,4 +62,4 @@ private:
     static const int factorColumn = factorLabelColumn + 1;
 };
 
-#endif // BORNAGAIN_GUI_DATALOADERS_QREDATALOADERPROPERTIES_H
+#endif // BORNAGAIN_GUI_VIEWS_LOADERS_QREDATALOADERPROPERTIES_H
diff --git a/GUI/DataLoaders/QREDataLoaderProperties.ui b/GUI/Views/Loaders/QREDataLoaderProperties.ui
similarity index 100%
rename from GUI/DataLoaders/QREDataLoaderProperties.ui
rename to GUI/Views/Loaders/QREDataLoaderProperties.ui
diff --git a/GUI/DataLoaders/QREDataLoaderResultModel.cpp b/GUI/Views/Loaders/QREDataLoaderResultModel.cpp
similarity index 96%
rename from GUI/DataLoaders/QREDataLoaderResultModel.cpp
rename to GUI/Views/Loaders/QREDataLoaderResultModel.cpp
index 4f8652d2a58cfdfff1323f877f6a6d0fbdb26961..c5888f0a202d88f7696c5c75c28587e9b998d615 100644
--- a/GUI/DataLoaders/QREDataLoaderResultModel.cpp
+++ b/GUI/Views/Loaders/QREDataLoaderResultModel.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/DataLoaders/QREDataLoaderResultModel.cpp
+//! @file      GUI/Views/Loaders/QREDataLoaderResultModel.cpp
 //! @brief     Implements class QREDataLoaderResultModel
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/DataLoaders/QREDataLoaderResultModel.h"
+#include "GUI/Views/Loaders/QREDataLoaderResultModel.h"
 
 QREDataLoaderResultModel::QREDataLoaderResultModel(QREDataLoader::ImportResult* importResult)
     : m_importResult(importResult)
diff --git a/GUI/DataLoaders/QREDataLoaderResultModel.h b/GUI/Views/Loaders/QREDataLoaderResultModel.h
similarity index 83%
rename from GUI/DataLoaders/QREDataLoaderResultModel.h
rename to GUI/Views/Loaders/QREDataLoaderResultModel.h
index f38208215c8dc342dddeaa674d00fe153d410f13..fc7cf21ca3f0d6bd8b2fdf4fa68e4d5cebcc6137 100644
--- a/GUI/DataLoaders/QREDataLoaderResultModel.h
+++ b/GUI/Views/Loaders/QREDataLoaderResultModel.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/DataLoaders/QREDataLoaderResultModel.h
+//! @file      GUI/Views/Loaders/QREDataLoaderResultModel.h
 //! @brief     Defines class QREDataLoaderResultModel
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_DATALOADERS_QREDATALOADERRESULTMODEL_H
-#define BORNAGAIN_GUI_DATALOADERS_QREDATALOADERRESULTMODEL_H
+#ifndef BORNAGAIN_GUI_VIEWS_LOADERS_QREDATALOADERRESULTMODEL_H
+#define BORNAGAIN_GUI_VIEWS_LOADERS_QREDATALOADERRESULTMODEL_H
 
-#include "GUI/DataLoaders/QREDataLoader.h"
+#include "GUI/Views/Loaders/QREDataLoader.h"
 #include "GUI/Models/Data/AbstractDataLoaderResultModel.h"
 
 //! The result model of a QREDataLoader (for showing the import results in a table view).
@@ -39,4 +39,4 @@ private:
     QREDataLoader::ImportResult* m_importResult;
 };
 
-#endif // BORNAGAIN_GUI_DATALOADERS_QREDATALOADERRESULTMODEL_H
+#endif // BORNAGAIN_GUI_VIEWS_LOADERS_QREDATALOADERRESULTMODEL_H
diff --git a/GUI/DataLoaders/UserDefinedDataLoader1D.cpp b/GUI/Views/Loaders/UserDefinedDataLoader1D.cpp
similarity index 95%
rename from GUI/DataLoaders/UserDefinedDataLoader1D.cpp
rename to GUI/Views/Loaders/UserDefinedDataLoader1D.cpp
index e98d4a86b772c1c48d65cee7d1359cee3e43ad41..97c3b18ad2ec2233e544195129fbf460d795909f 100644
--- a/GUI/DataLoaders/UserDefinedDataLoader1D.cpp
+++ b/GUI/Views/Loaders/UserDefinedDataLoader1D.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/DataLoaders/UserDefinedDataLoader1D.cpp
+//! @file      GUI/Views/Loaders/UserDefinedDataLoader1D.cpp
 //! @brief     Implements class UserDefinedDataLoader1D
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/DataLoaders/UserDefinedDataLoader1D.h"
+#include "GUI/Views/Loaders/UserDefinedDataLoader1D.h"
 
 UserDefinedDataLoader1D::UserDefinedDataLoader1D(AbstractDataLoader1D* wrappedLoader,
                                                  const QString& name,
diff --git a/GUI/DataLoaders/UserDefinedDataLoader1D.h b/GUI/Views/Loaders/UserDefinedDataLoader1D.h
similarity index 87%
rename from GUI/DataLoaders/UserDefinedDataLoader1D.h
rename to GUI/Views/Loaders/UserDefinedDataLoader1D.h
index 45d8a7fb691dd3e0ab4b6fcad2edb1c214e2eda4..4f4113e494342b2f43f36bf8105fff75d364e153 100644
--- a/GUI/DataLoaders/UserDefinedDataLoader1D.h
+++ b/GUI/Views/Loaders/UserDefinedDataLoader1D.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/DataLoaders/UserDefinedDataLoader1D.h
+//! @file      GUI/Views/Loaders/UserDefinedDataLoader1D.h
 //! @brief     Defines class UserDefinedDataLoader1D
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_DATALOADERS_USERDEFINEDDATALOADER1D_H
-#define BORNAGAIN_GUI_DATALOADERS_USERDEFINEDDATALOADER1D_H
+#ifndef BORNAGAIN_GUI_VIEWS_LOADERS_USERDEFINEDDATALOADER1D_H
+#define BORNAGAIN_GUI_VIEWS_LOADERS_USERDEFINEDDATALOADER1D_H
 
 #include "GUI/Models/Data/AbstractDataLoader1D.h"
 
@@ -43,4 +43,4 @@ private:
     QByteArray m_defaultProperties;
 };
 
-#endif // BORNAGAIN_GUI_DATALOADERS_USERDEFINEDDATALOADER1D_H
+#endif // BORNAGAIN_GUI_VIEWS_LOADERS_USERDEFINEDDATALOADER1D_H
diff --git a/GUI/Views/SpecularDataWidgets/SpecularDataImportWidget.cpp b/GUI/Views/SpecularDataWidgets/SpecularDataImportWidget.cpp
index c66577c16e0fa8df26ee2817d405c53b0c84f646..d218a0d750a1d9442d70af2c16951c74e5228af5 100644
--- a/GUI/Views/SpecularDataWidgets/SpecularDataImportWidget.cpp
+++ b/GUI/Views/SpecularDataWidgets/SpecularDataImportWidget.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/Views/SpecularDataWidgets/SpecularDataImportWidget.h"
-#include "GUI/DataLoaders/DataLoaderUtil.h"
+#include "GUI/Views/Loaders/DataLoaderUtil.h"
 #include "GUI/Items/DataItemUtils.h"
 #include "GUI/Items/InstrumentItems.h"
 #include "GUI/Items/RealDataItem.h"
diff --git a/Tests/Unit/GUI/TestLinkInstrument.cpp b/Tests/Unit/GUI/TestLinkInstrument.cpp
index d108156ef68dc5d461e3b1c2a97d9148310065ca..fe4246bb744fbc260505309f61361105245c325d 100644
--- a/Tests/Unit/GUI/TestLinkInstrument.cpp
+++ b/Tests/Unit/GUI/TestLinkInstrument.cpp
@@ -6,7 +6,7 @@
 #include "GUI/Models/Data/RealDataModel.h"
 #include "GUI/Models/Instrument/InstrumentModel.h"
 #include "GUI/Project/projectdocument.h"
-#include "GUI/mainwindow/LinkInstrumentManager.h"
+#include "GUI/Project/LinkInstrumentManager.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include "Tests/Unit/GUI/Utils.h"
 #include <QSignalSpy>
diff --git a/Tests/Unit/GUI/TestOutputDataIOService.cpp b/Tests/Unit/GUI/TestOutputDataIOService.cpp
index 1a7909e089487fd81026cb5cdad75141954122e8..e87239bc5e7a5b5bf38597b5ac5bfe81230a4f51 100644
--- a/Tests/Unit/GUI/TestOutputDataIOService.cpp
+++ b/Tests/Unit/GUI/TestOutputDataIOService.cpp
@@ -10,7 +10,7 @@
 #include "GUI/Models/Data/RealDataModel.h"
 #include "GUI/Models/Job/JobModel.h"
 #include "GUI/Project/ProjectUtils.h"
-#include "GUI/mainwindow/OutputDataIOService.h"
+#include "GUI/Project/OutputDataIOService.h"
 #include "GUI/utils/Error.h"
 #include "GUI/utils/Helpers.h"
 #include "Tests/GTestWrapper/google_test.h"
diff --git a/Tests/Unit/GUI/TestSavingSpecularData.cpp b/Tests/Unit/GUI/TestSavingSpecularData.cpp
index 28605f9d08bfc0558eb5afbcc225c6cf63c70691..007b73b51d2380ad83df9212331c3d86688e8331 100644
--- a/Tests/Unit/GUI/TestSavingSpecularData.cpp
+++ b/Tests/Unit/GUI/TestSavingSpecularData.cpp
@@ -13,7 +13,7 @@
 #include "GUI/Models/Instrument/InstrumentModel.h"
 #include "GUI/Models/Job/JobModel.h"
 #include "GUI/Project/ProjectUtils.h"
-#include "GUI/mainwindow/OutputDataIOService.h"
+#include "GUI/Project/OutputDataIOService.h"
 #include "GUI/utils/Error.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include "Tests/Unit/GUI/Utils.h"