From 6b34481f4da32d68c25e49f7afc7f8dda2ecbc75 Mon Sep 17 00:00:00 2001
From: Gemma Guest <gemma.guest@stfc.ac.uk>
Date: Wed, 2 Jan 2019 12:24:20 +0000
Subject: [PATCH] Reorganise files into subdirectories

MainWindow and Batch subdirectories have been created for these GUI components.
A Common subdirectory has been created for miscellaneous shared utilities.
Unused files have been removed
---
 qt/scientific_interfaces/CMakeLists.txt       |   3 -
 .../ISISReflectometry/CMakeLists.txt          |  57 +-
 .../ISISReflectometry/Common/CMakeLists.txt   |  28 +
 .../{ => Common}/DllConfig.h                  |   0
 .../ISISReflectometry/{ => Common}/First.h    |   0
 .../{ => Common}/GetInstrumentParameter.cpp   |   0
 .../{ => Common}/GetInstrumentParameter.h     |   0
 .../IMessageHandler.h}                        |  13 +-
 .../ISISReflectometry/{ => Common}/IndexOf.h  |   0
 .../{ => Common}/InstrumentParameters.cpp     |   0
 .../{ => Common}/InstrumentParameters.h       |   4 +-
 .../ISISReflectometry/{ => Common}/Map.h      |   0
 .../ISISReflectometry/{ => Common}/Parse.cpp  |   0
 .../ISISReflectometry/{ => Common}/Parse.h    |   0
 .../{ => Common}/QWidgetGroup.h               |   0
 .../{ => Common}/ValidationResult.h           |   0
 .../ISISReflectometry/{ => Common}/ValueOr.h  |   0
 .../ISISReflectometry/{ => Common}/ZipRange.h |   1 +
 .../{ => Common}/multivisitors.hpp            |   0
 .../Batch/BatchPresenter.cpp}                 |  54 +-
 .../Batch/BatchPresenter.h}                   |  28 +-
 .../Batch/BatchPresenterFactory.h}            |  22 +-
 .../Batch/BatchView.cpp}                      |  27 +-
 .../Batch/BatchView.h}                        |  22 +-
 .../Batch/BatchWidget.ui}                     |   4 +-
 .../GUI/Batch/CMakeLists.txt                  |  32 +
 .../Batch/IBatchPresenter.h}                  |  14 +-
 .../Batch/IBatchView.h}                       |  14 +-
 .../ISISReflectometry/GUI/CMakeLists.txt      |  38 +-
 .../GUI/Event/EventPresenter.cpp              |   6 +-
 .../GUI/Event/EventPresenter.h                |   6 +-
 .../GUI/Event/EventPresenterFactory.h         |   2 +-
 .../ISISReflectometry/GUI/Event/EventView.h   |   2 +-
 .../GUI/Event/IEventPresenter.h               |   4 +-
 .../ISISReflectometry/GUI/Event/IEventView.h  |   2 +-
 .../GUI/Experiment/CMakeLists.txt             |   2 +
 .../Experiment}/ExperimentOptionDefaults.cpp  |   2 +-
 .../Experiment}/ExperimentOptionDefaults.h    |   2 +-
 .../GUI/Experiment/ExperimentPresenter.cpp    |   9 +-
 .../GUI/Experiment/ExperimentPresenter.h      |  10 +-
 .../Experiment/ExperimentPresenterFactory.h   |   2 +-
 .../GUI/Experiment/ExperimentView.h           |   2 +-
 .../GUI/Experiment/IExperimentPresenter.h     |   4 +-
 .../GUI/Experiment/IExperimentView.h          |  13 +-
 .../GUI/Experiment/InvalidDefaultsError.h     |   2 +-
 .../PerThetaDefaultsTableValidator.h          |   4 +-
 .../GUI/Instrument/CMakeLists.txt             |   2 +
 .../GUI/Instrument/IInstrumentPresenter.h     |   4 +-
 .../GUI/Instrument/IInstrumentView.h          |   4 +-
 .../Instrument}/InstrumentOptionDefaults.cpp  |   2 +-
 .../Instrument}/InstrumentOptionDefaults.h    |   2 +-
 .../GUI/Instrument/InstrumentPresenter.cpp    |   5 +-
 .../GUI/Instrument/InstrumentPresenter.h      |   6 +-
 .../Instrument/InstrumentPresenterFactory.h   |   2 +-
 .../GUI/Instrument/InstrumentView.h           |   2 +-
 .../GUI/MainWindow/CMakeLists.txt             |  31 +
 .../MainWindow/IMainWindowPresenter.h}        |  16 +-
 .../MainWindow/IMainWindowView.h}             |  26 +-
 .../MainWindow/MainWindowPresenter.cpp}       |  20 +-
 .../GUI/MainWindow/MainWindowPresenter.h      |  46 ++
 .../MainWindow/MainWindowView.cpp}            |  41 +-
 .../MainWindow/MainWindowView.h}              |  44 +-
 .../MainWindow/MainWindowWidget.ui}           |   4 +-
 .../ISISReflectometry/GUI/Runs/CMakeLists.txt |   9 +
 .../{ => GUI/Runs}/IReflAutoreduction.h       |   2 +-
 .../{ => GUI/Runs}/IReflSearcher.h            |   0
 .../GUI/Runs/IRunsPresenter.h                 |   4 +-
 .../ISISReflectometry/GUI/Runs/IRunsView.h    |   2 +-
 .../{ => GUI/Runs}/ReflAutoreduction.cpp      |   1 -
 .../{ => GUI/Runs}/ReflAutoreduction.h        |   2 +-
 .../{ => GUI/Runs}/ReflCatalogSearcher.cpp    |   0
 .../{ => GUI/Runs}/ReflCatalogSearcher.h      |   0
 .../{ => GUI/Runs}/ReflSearchModel.cpp        |   0
 .../{ => GUI/Runs}/ReflSearchModel.h          |   2 +-
 .../GUI/Runs/RunsPresenter.cpp                |  15 +-
 .../GUI/Runs/RunsPresenter.h                  |  12 +-
 .../GUI/Runs/RunsPresenterFactory.h           |   6 +-
 .../ISISReflectometry/GUI/Runs/RunsView.h     |   2 +-
 .../{ => GUI/Runs}/SearchResult.h             |   0
 .../GUI/RunsTable/IRunsTablePresenter.h       |   2 +-
 .../GUI/RunsTable/IRunsTableView.h            |   2 +-
 .../GUI/RunsTable/JobsViewUpdater.h           |   2 +-
 .../GUI/RunsTable/RowLocation.cpp             |   2 +-
 .../GUI/RunsTable/RunsTablePresenter.cpp      |   2 +-
 .../GUI/RunsTable/RunsTablePresenter.h        |   2 +-
 .../GUI/RunsTable/RunsTablePresenterFactory.h |   2 +-
 .../GUI/RunsTable/RunsTableView.cpp           |   2 +-
 .../GUI/RunsTable/RunsTableView.h             |   2 +-
 .../ISISReflectometry/GUI/Save/CMakeLists.txt |   4 +
 .../{ => GUI/Save}/IReflAsciiSaver.cpp        |   0
 .../{ => GUI/Save}/IReflAsciiSaver.h          |   2 +-
 .../GUI/Save/ISavePresenter.h                 |   4 +-
 .../ISISReflectometry/GUI/Save/ISaveView.h    |   2 +-
 .../{ => GUI/Save}/ReflAsciiSaver.cpp         |   0
 .../{ => GUI/Save}/ReflAsciiSaver.h           |   0
 .../GUI/Save/SavePresenter.cpp                |   5 +-
 .../GUI/Save/SavePresenter.h                  |  12 +-
 .../GUI/Save/SavePresenterFactory.h           |   4 +-
 .../ISISReflectometry/MeasurementItem.cpp     | 111 ----
 .../ISISReflectometry/MeasurementItem.h       |  67 --
 .../Reduction/DetectorCorrections.h           |   2 +-
 .../ISISReflectometry/Reduction/Experiment.h  |   2 +-
 .../Reduction/FloodCorrections.h              |   2 +-
 .../ISISReflectometry/Reduction/Group.cpp     |   4 +-
 .../ISISReflectometry/Reduction/Group.h       |   2 +-
 .../ISISReflectometry/Reduction/Instrument.h  |   2 +-
 .../Reduction/MonitorCorrections.h            |   2 +-
 .../Reduction/ParseReflectometryStrings.cpp   |   2 +-
 .../Reduction/ParseReflectometryStrings.h     |   2 +-
 .../Reduction/PerThetaDefaults.h              |   2 +-
 .../Reduction/PolarizationCorrections.h       |   2 +-
 .../Reduction/ProcessingInstructions.h        |   2 +-
 .../Reduction/RangeInLambda.h                 |   2 +-
 .../ISISReflectometry/Reduction/RangeInQ.h    |   2 +-
 .../Reduction/ReductionJobs.cpp               |   4 +-
 .../Reduction/ReductionJobs.h                 |   2 +-
 .../Reduction/ReductionType.h                 |   2 +-
 .../Reduction/ReductionWorkspaces.cpp         |   2 +-
 .../Reduction/ReductionWorkspaces.h           |   2 +-
 .../ISISReflectometry/Reduction/Row.cpp       |   2 +-
 .../ISISReflectometry/Reduction/Row.h         |   2 +-
 .../ISISReflectometry/Reduction/Slicing.cpp   |   2 +-
 .../ISISReflectometry/Reduction/Slicing.h     |   2 +-
 .../Reduction/TransmissionRunPair.h           |   2 +-
 .../Reduction/ValidatePerThetaDefaults.cpp    |   2 +-
 .../Reduction/ValidatePerThetaDefaults.h      |   5 +-
 .../Reduction/ValidateRow.cpp                 |   2 +-
 .../ISISReflectometry/Reduction/ValidateRow.h |   4 +-
 .../ReflFromStdStringMap.cpp                  |  34 -
 .../ISISReflectometry/ReflFromStdStringMap.h  |  28 -
 .../ReflMainWindowPresenter.h                 |  46 --
 .../ReflMeasurementItemSource.h               |  35 -
 .../ReflNexusMeasurementItemSource.cpp        | 121 ----
 .../ReflNexusMeasurementItemSource.h          |  37 --
 .../ISISReflectometry/ReflTableSchema.cpp     |  36 --
 .../ISISReflectometry/ReflTableSchema.h       |  70 --
 .../ISISReflectometry/ReflWindow.ui           | 599 ------------------
 .../ISISReflectometry/TransferResults.cpp     |  36 --
 .../ISISReflectometry/TransferResults.h       |  39 --
 .../Event/EventPresenterTest.h                |   2 +-
 .../Experiment/ExperimentPresenterTest.h      |   2 +-
 .../Instrument/InstrumentPresenterTest.h      |   2 +-
 .../Reduction/ReductionJobsMergeTest.h        |   4 +-
 .../Reduction/ValidateRowTest.h               |   2 +-
 .../Runs/MockRunsPresenter.h                  |   2 +-
 .../Runs/RunsPresenterTest.h                  |   4 +-
 .../Save/SavePresenterTest.h                  |   6 +-
 .../test/MeasurementItemTest.h                |  94 ---
 .../test/ReflMockObjects.h                    |  26 +-
 .../test/ReflNexusMeasurementItemSourceTest.h |  62 --
 150 files changed, 508 insertions(+), 1822 deletions(-)
 create mode 100644 qt/scientific_interfaces/ISISReflectometry/Common/CMakeLists.txt
 rename qt/scientific_interfaces/ISISReflectometry/{ => Common}/DllConfig.h (100%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => Common}/First.h (100%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => Common}/GetInstrumentParameter.cpp (100%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => Common}/GetInstrumentParameter.h (100%)
 rename qt/scientific_interfaces/ISISReflectometry/{IReflMessageHandler.h => Common/IMessageHandler.h} (70%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => Common}/IndexOf.h (100%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => Common}/InstrumentParameters.cpp (100%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => Common}/InstrumentParameters.h (98%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => Common}/Map.h (100%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => Common}/Parse.cpp (100%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => Common}/Parse.h (100%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => Common}/QWidgetGroup.h (100%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => Common}/ValidationResult.h (100%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => Common}/ValueOr.h (100%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => Common}/ZipRange.h (95%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => Common}/multivisitors.hpp (100%)
 rename qt/scientific_interfaces/ISISReflectometry/{ReflBatchPresenter.cpp => GUI/Batch/BatchPresenter.cpp} (76%)
 rename qt/scientific_interfaces/ISISReflectometry/{ReflBatchPresenter.h => GUI/Batch/BatchPresenter.h} (83%)
 rename qt/scientific_interfaces/ISISReflectometry/{ReflBatchPresenterFactory.h => GUI/Batch/BatchPresenterFactory.h} (81%)
 rename qt/scientific_interfaces/ISISReflectometry/{QtReflBatchView.cpp => GUI/Batch/BatchView.cpp} (70%)
 rename qt/scientific_interfaces/ISISReflectometry/{QtReflBatchView.h => GUI/Batch/BatchView.h} (73%)
 rename qt/scientific_interfaces/ISISReflectometry/{ReflBatchWidget.ui => GUI/Batch/BatchWidget.ui} (87%)
 create mode 100644 qt/scientific_interfaces/ISISReflectometry/GUI/Batch/CMakeLists.txt
 rename qt/scientific_interfaces/ISISReflectometry/{IReflBatchPresenter.h => GUI/Batch/IBatchPresenter.h} (83%)
 rename qt/scientific_interfaces/ISISReflectometry/{IReflBatchView.h => GUI/Batch/IBatchView.h} (76%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => GUI/Experiment}/ExperimentOptionDefaults.cpp (99%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => GUI/Experiment}/ExperimentOptionDefaults.h (98%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => GUI/Instrument}/InstrumentOptionDefaults.cpp (98%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => GUI/Instrument}/InstrumentOptionDefaults.h (97%)
 create mode 100644 qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/CMakeLists.txt
 rename qt/scientific_interfaces/ISISReflectometry/{IReflMainWindowPresenter.h => GUI/MainWindow/IMainWindowPresenter.h} (63%)
 rename qt/scientific_interfaces/ISISReflectometry/{IReflMainWindowView.h => GUI/MainWindow/IMainWindowView.h} (58%)
 rename qt/scientific_interfaces/ISISReflectometry/{ReflMainWindowPresenter.cpp => GUI/MainWindow/MainWindowPresenter.cpp} (75%)
 create mode 100644 qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/MainWindowPresenter.h
 rename qt/scientific_interfaces/ISISReflectometry/{QtReflMainWindowView.cpp => GUI/MainWindow/MainWindowView.cpp} (77%)
 rename qt/scientific_interfaces/ISISReflectometry/{QtReflMainWindowView.h => GUI/MainWindow/MainWindowView.h} (54%)
 rename qt/scientific_interfaces/ISISReflectometry/{ReflMainWindowWidget.ui => GUI/MainWindow/MainWindowWidget.ui} (95%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => GUI/Runs}/IReflAutoreduction.h (97%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => GUI/Runs}/IReflSearcher.h (100%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => GUI/Runs}/ReflAutoreduction.cpp (98%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => GUI/Runs}/ReflAutoreduction.h (97%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => GUI/Runs}/ReflCatalogSearcher.cpp (100%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => GUI/Runs}/ReflCatalogSearcher.h (100%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => GUI/Runs}/ReflSearchModel.cpp (100%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => GUI/Runs}/ReflSearchModel.h (98%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => GUI/Runs}/SearchResult.h (100%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => GUI/Save}/IReflAsciiSaver.cpp (100%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => GUI/Save}/IReflAsciiSaver.h (98%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => GUI/Save}/ReflAsciiSaver.cpp (100%)
 rename qt/scientific_interfaces/ISISReflectometry/{ => GUI/Save}/ReflAsciiSaver.h (100%)
 delete mode 100644 qt/scientific_interfaces/ISISReflectometry/MeasurementItem.cpp
 delete mode 100644 qt/scientific_interfaces/ISISReflectometry/MeasurementItem.h
 delete mode 100644 qt/scientific_interfaces/ISISReflectometry/ReflFromStdStringMap.cpp
 delete mode 100644 qt/scientific_interfaces/ISISReflectometry/ReflFromStdStringMap.h
 delete mode 100644 qt/scientific_interfaces/ISISReflectometry/ReflMainWindowPresenter.h
 delete mode 100644 qt/scientific_interfaces/ISISReflectometry/ReflMeasurementItemSource.h
 delete mode 100644 qt/scientific_interfaces/ISISReflectometry/ReflNexusMeasurementItemSource.cpp
 delete mode 100644 qt/scientific_interfaces/ISISReflectometry/ReflNexusMeasurementItemSource.h
 delete mode 100644 qt/scientific_interfaces/ISISReflectometry/ReflTableSchema.cpp
 delete mode 100644 qt/scientific_interfaces/ISISReflectometry/ReflTableSchema.h
 delete mode 100644 qt/scientific_interfaces/ISISReflectometry/ReflWindow.ui
 delete mode 100644 qt/scientific_interfaces/ISISReflectometry/TransferResults.cpp
 delete mode 100644 qt/scientific_interfaces/ISISReflectometry/TransferResults.h
 delete mode 100644 qt/scientific_interfaces/test/MeasurementItemTest.h
 delete mode 100644 qt/scientific_interfaces/test/ReflNexusMeasurementItemSourceTest.h

diff --git a/qt/scientific_interfaces/CMakeLists.txt b/qt/scientific_interfaces/CMakeLists.txt
index 06cee9ee82c..b102625903f 100644
--- a/qt/scientific_interfaces/CMakeLists.txt
+++ b/qt/scientific_interfaces/CMakeLists.txt
@@ -40,16 +40,13 @@ set ( TEST_FILES
   test/EnggVanadiumCorrectionsModelTest.h
   test/IO_MuonGroupingTest.h
   test/MDFLogValueFinderTest.h
-  test/MeasurementItemTest.h
   test/MuonAnalysisDataLoaderTest.h
   test/MuonAnalysisFitDataPresenterTest.h
   test/MuonAnalysisFitFunctionPresenterTest.h
   test/MuonAnalysisHelperTest.h
   test/MuonAnalysisResultTableCreatorTest.h
-  test/ReflNexusMeasurementItemSourceTest.h
   test/RunMapTest.h
   test/UserInputValidatorTest.h
-
   test/ISISReflectometry/Reduction/GroupTest.h
   test/ISISReflectometry/Reduction/ValidateRowTest.h
   test/ISISReflectometry/Reduction/ParseReflectometryStringsTest.h
diff --git a/qt/scientific_interfaces/ISISReflectometry/CMakeLists.txt b/qt/scientific_interfaces/ISISReflectometry/CMakeLists.txt
index 06140803266..265b937fd8f 100644
--- a/qt/scientific_interfaces/ISISReflectometry/CMakeLists.txt
+++ b/qt/scientific_interfaces/ISISReflectometry/CMakeLists.txt
@@ -6,84 +6,33 @@ FUNCTION(PREPEND var prefix)
    SET(${var} ${listVar} PARENT_SCOPE)
 ENDFUNCTION(PREPEND)
 
+add_subdirectory(Common)
 add_subdirectory(GUI)
 add_subdirectory(Reduction)
 
 message(${GUI_SRC_FILES})
 
 set ( SRC_FILES
+    ${COMMON_SRC_FILES}
     ${GUI_SRC_FILES}
     ${REDUCTION_SRC_FILES}
-    MeasurementItem.cpp
-    InstrumentOptionDefaults.cpp
-    InstrumentParameters.cpp
-    ExperimentOptionDefaults.cpp
-    QtReflMainWindowView.cpp
-    QtReflBatchView.cpp
-    ReflCatalogSearcher.cpp
-    ReflAsciiSaver.cpp
-    IReflAsciiSaver.cpp
-    ReflAutoreduction.cpp
-    ReflFromStdStringMap.cpp
-    ReflMainWindowPresenter.cpp
-    ReflBatchPresenter.cpp
-    ReflNexusMeasurementItemSource.cpp
-    ReflSearchModel.cpp
-    ReflTableSchema.cpp
-    Parse.cpp
-    TransferResults.cpp
-    GetInstrumentParameter.cpp
 )
 
 # Include files aren't required, but this makes them appear in Visual Studio
 # IMPORTANT: Include files are required in the MOC_FILES set. Scroll down to find it.
 set ( INC_FILES
+    ${COMMON_INC_FILES}
     ${GUI_INC_FILES}
     ${REDUCTION_INC_FILES}
-    DllConfig.h
-    InstrumentParameters.h
-    IReflAutoreduction.h
-    IReflMainWindowPresenter.h
-    IReflBatchPresenter.h
-    IReflMainWindowView.h
-    IReflBatchView.h
-    IReflMessageHandler.h
-    IReflSearcher.h
-    MeasurementItem.h
     PrecompiledHeader.h
-    QtReflMainWindowView.h
-    QtReflBatchView.h
-    QWidgetGroup.h
-    ReflAutoreduction.h
-    ReflCatalogSearcher.h
-    ReflAsciiSaver.h
-    IReflAsciiSaver.h
-    ReflFromStdStringMap.h
-    ReflMainWindowPresenter.h
-    ReflBatchPresenter.h
-    ReflMeasurementItemSource.h
-    ReflNexusMeasurementItemSource.h
-    ReflSearchModel.h
-    ReflTableSchema.h
-    TransferResults.h
-    GetInstrumentParameter.h
-    ExperimentOptionDefaults.h
-    InstrumentOptionDefaults.h
-    First.h
 )
 
 set ( MOC_FILES
     ${GUI_MOC_FILES}
-    ReflSearchModel.h
-    QtReflMainWindowView.h
-    QtReflBatchView.h
 )
 
 set ( UI_FILES
    ${GUI_UI_FILES}
-   ReflMainWindowWidget.ui
-   ReflBatchWidget.ui
-   ReflWindow.ui
 )
 
 
diff --git a/qt/scientific_interfaces/ISISReflectometry/Common/CMakeLists.txt b/qt/scientific_interfaces/ISISReflectometry/Common/CMakeLists.txt
new file mode 100644
index 00000000000..2869898c5a2
--- /dev/null
+++ b/qt/scientific_interfaces/ISISReflectometry/Common/CMakeLists.txt
@@ -0,0 +1,28 @@
+set ( COMMON_SRC_FILES
+    Parse.cpp
+    GetInstrumentParameter.cpp
+    InstrumentParameters.cpp
+)
+
+# Include files aren't required, but this makes them appear in Visual Studio
+# IMPORTANT: Include files are required in the MOC_FILES set. Scroll down to find it.
+set ( COMMON_INC_FILES
+    DllConfig.h
+    First.h
+    GetInstrumentParameter.h
+    IndexOf.h
+    InstrumentParameters.h
+    Map.h
+    IMessageHandler.h
+    Parse.h
+    QWidgetGroup.h
+    ValidationResult.h
+    ValueOr.h
+    ZipRange.h
+)
+
+PREPEND( COMMON_SRC_FILES Common ${COMMON_SRC_FILES})
+PREPEND( COMMON_INC_FILES Common ${COMMON_INC_FILES})
+
+set (COMMON_SRC_FILES ${COMMON_SRC_FILES} PARENT_SCOPE)
+set (COMMON_INC_FILES ${COMMON_INC_FILES} PARENT_SCOPE)
diff --git a/qt/scientific_interfaces/ISISReflectometry/DllConfig.h b/qt/scientific_interfaces/ISISReflectometry/Common/DllConfig.h
similarity index 100%
rename from qt/scientific_interfaces/ISISReflectometry/DllConfig.h
rename to qt/scientific_interfaces/ISISReflectometry/Common/DllConfig.h
diff --git a/qt/scientific_interfaces/ISISReflectometry/First.h b/qt/scientific_interfaces/ISISReflectometry/Common/First.h
similarity index 100%
rename from qt/scientific_interfaces/ISISReflectometry/First.h
rename to qt/scientific_interfaces/ISISReflectometry/Common/First.h
diff --git a/qt/scientific_interfaces/ISISReflectometry/GetInstrumentParameter.cpp b/qt/scientific_interfaces/ISISReflectometry/Common/GetInstrumentParameter.cpp
similarity index 100%
rename from qt/scientific_interfaces/ISISReflectometry/GetInstrumentParameter.cpp
rename to qt/scientific_interfaces/ISISReflectometry/Common/GetInstrumentParameter.cpp
diff --git a/qt/scientific_interfaces/ISISReflectometry/GetInstrumentParameter.h b/qt/scientific_interfaces/ISISReflectometry/Common/GetInstrumentParameter.h
similarity index 100%
rename from qt/scientific_interfaces/ISISReflectometry/GetInstrumentParameter.h
rename to qt/scientific_interfaces/ISISReflectometry/Common/GetInstrumentParameter.h
diff --git a/qt/scientific_interfaces/ISISReflectometry/IReflMessageHandler.h b/qt/scientific_interfaces/ISISReflectometry/Common/IMessageHandler.h
similarity index 70%
rename from qt/scientific_interfaces/ISISReflectometry/IReflMessageHandler.h
rename to qt/scientific_interfaces/ISISReflectometry/Common/IMessageHandler.h
index 51206f1a3d2..8f04bfa1c16 100644
--- a/qt/scientific_interfaces/ISISReflectometry/IReflMessageHandler.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Common/IMessageHandler.h
@@ -4,20 +4,19 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#ifndef MANTID_ISISREFLECTOMETRY_IREFLMESSAGEHANDLER_H
-#define MANTID_ISISREFLECTOMETRY_IREFLMESSAGEHANDLER_H
+#ifndef MANTID_ISISREFLECTOMETRY_IMESSAGEHANDLER_H
+#define MANTID_ISISREFLECTOMETRY_IMESSAGEHANDLER_H
 
 #include <string>
-
 namespace MantidQt {
 namespace CustomInterfaces {
-/** @class IReflMessageHandler
+/** @class IMessageHandler
 
-IReflMessageHandler is an interface for passing messages to the user
+IMessageHandler is an interface for passing messages to the user
 */
-class IReflMessageHandler {
+class IMessageHandler {
 public:
-  virtual ~IReflMessageHandler(){};
+  virtual ~IMessageHandler(){};
   virtual void giveUserCritical(const std::string &prompt,
                                 const std::string &title) = 0;
   virtual void giveUserInfo(const std::string &prompt,
diff --git a/qt/scientific_interfaces/ISISReflectometry/IndexOf.h b/qt/scientific_interfaces/ISISReflectometry/Common/IndexOf.h
similarity index 100%
rename from qt/scientific_interfaces/ISISReflectometry/IndexOf.h
rename to qt/scientific_interfaces/ISISReflectometry/Common/IndexOf.h
diff --git a/qt/scientific_interfaces/ISISReflectometry/InstrumentParameters.cpp b/qt/scientific_interfaces/ISISReflectometry/Common/InstrumentParameters.cpp
similarity index 100%
rename from qt/scientific_interfaces/ISISReflectometry/InstrumentParameters.cpp
rename to qt/scientific_interfaces/ISISReflectometry/Common/InstrumentParameters.cpp
diff --git a/qt/scientific_interfaces/ISISReflectometry/InstrumentParameters.h b/qt/scientific_interfaces/ISISReflectometry/Common/InstrumentParameters.h
similarity index 98%
rename from qt/scientific_interfaces/ISISReflectometry/InstrumentParameters.h
rename to qt/scientific_interfaces/ISISReflectometry/Common/InstrumentParameters.h
index 0525fe428a8..7c0f9700dc5 100644
--- a/qt/scientific_interfaces/ISISReflectometry/InstrumentParameters.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Common/InstrumentParameters.h
@@ -6,9 +6,9 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #ifndef MANTID_ISISREFLECTOMETRY_INSTRUMENTPARAMETERS_H
 #define MANTID_ISISREFLECTOMETRY_INSTRUMENTPARAMETERS_H
-#include "First.h"
+#include "Common/First.h"
+#include "Common/ValueOr.h"
 #include "GetInstrumentParameter.h"
-#include "ValueOr.h"
 #include <boost/optional.hpp>
 #include <vector>
 
diff --git a/qt/scientific_interfaces/ISISReflectometry/Map.h b/qt/scientific_interfaces/ISISReflectometry/Common/Map.h
similarity index 100%
rename from qt/scientific_interfaces/ISISReflectometry/Map.h
rename to qt/scientific_interfaces/ISISReflectometry/Common/Map.h
diff --git a/qt/scientific_interfaces/ISISReflectometry/Parse.cpp b/qt/scientific_interfaces/ISISReflectometry/Common/Parse.cpp
similarity index 100%
rename from qt/scientific_interfaces/ISISReflectometry/Parse.cpp
rename to qt/scientific_interfaces/ISISReflectometry/Common/Parse.cpp
diff --git a/qt/scientific_interfaces/ISISReflectometry/Parse.h b/qt/scientific_interfaces/ISISReflectometry/Common/Parse.h
similarity index 100%
rename from qt/scientific_interfaces/ISISReflectometry/Parse.h
rename to qt/scientific_interfaces/ISISReflectometry/Common/Parse.h
diff --git a/qt/scientific_interfaces/ISISReflectometry/QWidgetGroup.h b/qt/scientific_interfaces/ISISReflectometry/Common/QWidgetGroup.h
similarity index 100%
rename from qt/scientific_interfaces/ISISReflectometry/QWidgetGroup.h
rename to qt/scientific_interfaces/ISISReflectometry/Common/QWidgetGroup.h
diff --git a/qt/scientific_interfaces/ISISReflectometry/ValidationResult.h b/qt/scientific_interfaces/ISISReflectometry/Common/ValidationResult.h
similarity index 100%
rename from qt/scientific_interfaces/ISISReflectometry/ValidationResult.h
rename to qt/scientific_interfaces/ISISReflectometry/Common/ValidationResult.h
diff --git a/qt/scientific_interfaces/ISISReflectometry/ValueOr.h b/qt/scientific_interfaces/ISISReflectometry/Common/ValueOr.h
similarity index 100%
rename from qt/scientific_interfaces/ISISReflectometry/ValueOr.h
rename to qt/scientific_interfaces/ISISReflectometry/Common/ValueOr.h
diff --git a/qt/scientific_interfaces/ISISReflectometry/ZipRange.h b/qt/scientific_interfaces/ISISReflectometry/Common/ZipRange.h
similarity index 95%
rename from qt/scientific_interfaces/ISISReflectometry/ZipRange.h
rename to qt/scientific_interfaces/ISISReflectometry/Common/ZipRange.h
index 2bc15f13507..5fc1224e9f3 100644
--- a/qt/scientific_interfaces/ISISReflectometry/ZipRange.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Common/ZipRange.h
@@ -7,6 +7,7 @@
 #ifndef MANTID_ISISREFLECTOMETRY_ZIPRANGE_H
 #define MANTID_ISISREFLECTOMETRY_ZIPRANGE_H
 #include <boost/iterator/zip_iterator.hpp>
+#include <boost/range/iterator_range.hpp>
 
 namespace MantidQt {
 namespace CustomInterfaces {
diff --git a/qt/scientific_interfaces/ISISReflectometry/multivisitors.hpp b/qt/scientific_interfaces/ISISReflectometry/Common/multivisitors.hpp
similarity index 100%
rename from qt/scientific_interfaces/ISISReflectometry/multivisitors.hpp
rename to qt/scientific_interfaces/ISISReflectometry/Common/multivisitors.hpp
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflBatchPresenter.cpp b/qt/scientific_interfaces/ISISReflectometry/GUI/Batch/BatchPresenter.cpp
similarity index 76%
rename from qt/scientific_interfaces/ISISReflectometry/ReflBatchPresenter.cpp
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Batch/BatchPresenter.cpp
index 0e26d69d95a..92e8caf9fcb 100644
--- a/qt/scientific_interfaces/ISISReflectometry/ReflBatchPresenter.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Batch/BatchPresenter.cpp
@@ -4,13 +4,13 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "ReflBatchPresenter.h"
+#include "BatchPresenter.h"
 #include "GUI/Event/IEventPresenter.h"
 #include "GUI/Experiment/IExperimentPresenter.h"
 #include "GUI/Instrument/IInstrumentPresenter.h"
 #include "GUI/Runs/IRunsPresenter.h"
 #include "GUI/Save/ISavePresenter.h"
-#include "IReflBatchView.h"
+#include "IBatchView.h"
 #include "MantidKernel/ConfigService.h"
 #include "MantidQtWidgets/Common/HelpWindow.h"
 
@@ -35,8 +35,8 @@ Mantid::Kernel::Logger g_log("Reflectometry GUI");
  * presenter
  * @param savePresenter :: [input] A pointer to the 'Save ASCII' tab presenter
  */
-ReflBatchPresenter::ReflBatchPresenter(
-    IReflBatchView *view, std::unique_ptr<IRunsPresenter> runsPresenter,
+BatchPresenter::BatchPresenter(
+    IBatchView *view, std::unique_ptr<IRunsPresenter> runsPresenter,
     std::unique_ptr<IEventPresenter> eventPresenter,
     std::unique_ptr<IExperimentPresenter> experimentPresenter,
     std::unique_ptr<IInstrumentPresenter> instrumentPresenter,
@@ -57,40 +57,40 @@ ReflBatchPresenter::ReflBatchPresenter(
   m_runsPresenter->acceptMainPresenter(this);
 }
 
-bool ReflBatchPresenter::requestClose() const { return true; }
+bool BatchPresenter::requestClose() const { return true; }
 
-void ReflBatchPresenter::notifyInstrumentChanged(
+void BatchPresenter::notifyInstrumentChanged(
     const std::string &instrumentName) {
   instrumentChanged(instrumentName);
 }
 
-void ReflBatchPresenter::notifySettingsChanged() { settingsChanged(); }
+void BatchPresenter::notifySettingsChanged() { settingsChanged(); }
 
-void ReflBatchPresenter::notifyReductionResumed() { reductionResumed(); }
+void BatchPresenter::notifyReductionResumed() { reductionResumed(); }
 
-void ReflBatchPresenter::notifyReductionPaused() { reductionPaused(); }
+void BatchPresenter::notifyReductionPaused() { reductionPaused(); }
 
-void ReflBatchPresenter::notifyReductionCompletedForGroup(
+void BatchPresenter::notifyReductionCompletedForGroup(
     GroupData const &group, std::string const &workspaceName) {
   reductionCompletedForGroup(group, workspaceName);
 }
 
-void ReflBatchPresenter::notifyReductionCompletedForRow(
+void BatchPresenter::notifyReductionCompletedForRow(
     GroupData const &group, std::string const &workspaceName) {
   reductionCompletedForRow(group, workspaceName);
 }
 
-void ReflBatchPresenter::notifyAutoreductionResumed() {
+void BatchPresenter::notifyAutoreductionResumed() {
   autoreductionResumed();
 }
 
-void ReflBatchPresenter::notifyAutoreductionPaused() { autoreductionPaused(); }
+void BatchPresenter::notifyAutoreductionPaused() { autoreductionPaused(); }
 
-void ReflBatchPresenter::notifyAutoreductionCompleted() {
+void BatchPresenter::notifyAutoreductionCompleted() {
   autoreductionCompleted();
 }
 
-void ReflBatchPresenter::reductionResumed() {
+void BatchPresenter::reductionResumed() {
   m_isProcessing = true;
   m_savePresenter->reductionResumed();
   m_eventPresenter->reductionResumed();
@@ -99,7 +99,7 @@ void ReflBatchPresenter::reductionResumed() {
   m_runsPresenter->reductionResumed();
 }
 
-void ReflBatchPresenter::reductionPaused() {
+void BatchPresenter::reductionPaused() {
   m_isProcessing = false;
   m_savePresenter->reductionPaused();
   m_eventPresenter->reductionPaused();
@@ -111,17 +111,17 @@ void ReflBatchPresenter::reductionPaused() {
   autoreductionPaused();
 }
 
-void ReflBatchPresenter::reductionCompletedForGroup(
+void BatchPresenter::reductionCompletedForGroup(
     GroupData const &group, std::string const &workspaceName) {
   m_savePresenter->reductionCompletedForGroup(group, workspaceName);
 }
 
-void ReflBatchPresenter::reductionCompletedForRow(
+void BatchPresenter::reductionCompletedForRow(
     GroupData const &group, std::string const &workspaceName) {
   m_savePresenter->reductionCompletedForRow(group, workspaceName);
 }
 
-void ReflBatchPresenter::autoreductionResumed() {
+void BatchPresenter::autoreductionResumed() {
   m_isAutoreducing = true;
   m_savePresenter->autoreductionResumed();
   m_eventPresenter->autoreductionResumed();
@@ -130,7 +130,7 @@ void ReflBatchPresenter::autoreductionResumed() {
   m_runsPresenter->autoreductionResumed();
 }
 
-void ReflBatchPresenter::autoreductionPaused() {
+void BatchPresenter::autoreductionPaused() {
   m_isAutoreducing = false;
   m_savePresenter->autoreductionPaused();
   m_eventPresenter->autoreductionPaused();
@@ -139,9 +139,9 @@ void ReflBatchPresenter::autoreductionPaused() {
   m_runsPresenter->autoreductionPaused();
 }
 
-void ReflBatchPresenter::autoreductionCompleted() {}
+void BatchPresenter::autoreductionCompleted() {}
 
-void ReflBatchPresenter::instrumentChanged(const std::string &instrumentName) {
+void BatchPresenter::instrumentChanged(const std::string &instrumentName) {
   Mantid::Kernel::ConfigService::Instance().setString("default.instrument",
                                                       instrumentName);
   g_log.information() << "Instrument changed to " << instrumentName;
@@ -149,7 +149,7 @@ void ReflBatchPresenter::instrumentChanged(const std::string &instrumentName) {
   m_instrumentPresenter->instrumentChanged(instrumentName);
 }
 
-void ReflBatchPresenter::settingsChanged() {
+void BatchPresenter::settingsChanged() {
   m_runsPresenter->settingsChanged();
 }
 
@@ -160,14 +160,14 @@ void ReflBatchPresenter::settingsChanged() {
  * @return :: Values passed for 'Transmission run(s)'
  */
 OptionsQMap
-ReflBatchPresenter::getOptionsForAngle(const double /*angle*/) const {
+BatchPresenter::getOptionsForAngle(const double /*angle*/) const {
   return OptionsQMap(); // TODO m_settingsPresenter->getOptionsForAngle(angle);
 }
 
 /** Returns whether there are per-angle transmission runs specified
  * @return :: true if there are per-angle transmission runs
  * */
-bool ReflBatchPresenter::hasPerAngleOptions() const {
+bool BatchPresenter::hasPerAngleOptions() const {
   return false; // TODO m_settingsPresenter->hasPerAngleOptions();
 }
 
@@ -175,13 +175,13 @@ bool ReflBatchPresenter::hasPerAngleOptions() const {
 Checks whether or not data is currently being processed in this batch
 * @return : Bool on whether data is being processed
 */
-bool ReflBatchPresenter::isProcessing() const { return m_isProcessing; }
+bool BatchPresenter::isProcessing() const { return m_isProcessing; }
 
 /**
 Checks whether or not autoprocessing is currently running in this batch
 * i.e. whether we are polling for new runs
 * @return : Bool on whether data is being processed
 */
-bool ReflBatchPresenter::isAutoreducing() const { return m_isAutoreducing; }
+bool BatchPresenter::isAutoreducing() const { return m_isAutoreducing; }
 } // namespace CustomInterfaces
 } // namespace MantidQt
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflBatchPresenter.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Batch/BatchPresenter.h
similarity index 83%
rename from qt/scientific_interfaces/ISISReflectometry/ReflBatchPresenter.h
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Batch/BatchPresenter.h
index 2549a7570bb..86188a49bfb 100644
--- a/qt/scientific_interfaces/ISISReflectometry/ReflBatchPresenter.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Batch/BatchPresenter.h
@@ -4,40 +4,40 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#ifndef MANTID_ISISREFLECTOMETRY_REFLBATCHPRESENTER_H
-#define MANTID_ISISREFLECTOMETRY_REFLBATCHPRESENTER_H
+#ifndef MANTID_ISISREFLECTOMETRY_BATCHPRESENTER_H
+#define MANTID_ISISREFLECTOMETRY_BATCHPRESENTER_H
 
-#include "DllConfig.h"
+#include "Common/DllConfig.h"
 #include "GUI/Event/IEventPresenter.h"
 #include "GUI/Experiment/IExperimentPresenter.h"
 #include "GUI/Instrument/IInstrumentPresenter.h"
 #include "GUI/Runs/IRunsPresenter.h"
 #include "GUI/Save/ISavePresenter.h"
-#include "IReflBatchPresenter.h"
+#include "IBatchPresenter.h"
 #include <memory>
 
 namespace MantidQt {
 namespace CustomInterfaces {
 
-class IReflBatchView;
+class IBatchView;
 
-/** @class ReflBatchPresenter
+/** @class BatchPresenter
 
-ReflBatchPresenter is the concrete main window presenter implementing the
-functionality defined by the interface IReflBatchPresenter.
+BatchPresenter is the concrete main window presenter implementing the
+functionality defined by the interface IBatchPresenter.
 */
-class MANTIDQT_ISISREFLECTOMETRY_DLL ReflBatchPresenter
-    : public IReflBatchPresenter {
+class MANTIDQT_ISISREFLECTOMETRY_DLL BatchPresenter
+    : public IBatchPresenter {
 public:
   /// Constructor
-  ReflBatchPresenter(IReflBatchView *view,
+  BatchPresenter(IBatchView *view,
                      std::unique_ptr<IRunsPresenter> runsPresenter,
                      std::unique_ptr<IEventPresenter> eventPresenter,
                      std::unique_ptr<IExperimentPresenter> experimentPresenter,
                      std::unique_ptr<IInstrumentPresenter> instrumentPresenter,
                      std::unique_ptr<ISavePresenter> savePresenter);
 
-  // IReflBatchPresenter overrides
+  // IBatchPresenter overrides
   void notifyReductionPaused() override;
   void notifyReductionResumed() override;
   void notifyReductionCompletedForGroup(
@@ -73,7 +73,7 @@ private:
   void instrumentChanged(const std::string &instName);
   void settingsChanged();
   // The view we are handling (currently unused)
-  /*IReflBatchView *m_view;*/
+  /*IBatchView *m_view;*/
   /// The presenter of tab 'Runs'
   std::unique_ptr<IRunsPresenter> m_runsPresenter;
   /// The presenter of tab 'Event Handling'
@@ -90,4 +90,4 @@ private:
 };
 } // namespace CustomInterfaces
 } // namespace MantidQt
-#endif /* MANTID_ISISREFLECTOMETRY_REFLBATCHPRESENTER_H */
+#endif /* MANTID_ISISREFLECTOMETRY_BATCHPRESENTER_H */
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflBatchPresenterFactory.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Batch/BatchPresenterFactory.h
similarity index 81%
rename from qt/scientific_interfaces/ISISReflectometry/ReflBatchPresenterFactory.h
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Batch/BatchPresenterFactory.h
index 53953da9fe5..61d1c4a3ddd 100644
--- a/qt/scientific_interfaces/ISISReflectometry/ReflBatchPresenterFactory.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Batch/BatchPresenterFactory.h
@@ -4,24 +4,24 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#ifndef MANTID_ISISREFLECTOMETRY_REFLBATCHPRESENTERFACTORY_H
-#define MANTID_ISISREFLECTOMETRY_REFLBATCHPRESENTERFACTORY_H
-#include "DllConfig.h"
+#ifndef MANTID_ISISREFLECTOMETRY_BATCHPRESENTERFACTORY_H
+#define MANTID_ISISREFLECTOMETRY_BATCHPRESENTERFACTORY_H
+#include "Common/DllConfig.h"
 #include "GUI/Event/EventPresenterFactory.h"
 #include "GUI/Experiment/ExperimentPresenterFactory.h"
 #include "GUI/Instrument/InstrumentPresenterFactory.h"
 #include "GUI/Runs/RunsPresenterFactory.h"
 #include "GUI/Save/SavePresenterFactory.h"
-#include "IReflBatchPresenter.h"
-#include "IReflBatchView.h"
-#include "ReflBatchPresenter.h"
+#include "IBatchPresenter.h"
+#include "IBatchView.h"
+#include "BatchPresenter.h"
 #include <memory>
 
 namespace MantidQt {
 namespace CustomInterfaces {
-class ReflBatchPresenterFactory {
+class BatchPresenterFactory {
 public:
-  ReflBatchPresenterFactory(
+  BatchPresenterFactory(
       // cppcheck-suppress passedByValue
       RunsPresenterFactory runsPresenterFactory,
       EventPresenterFactory eventPresenterFactory,
@@ -34,7 +34,7 @@ public:
         m_instrumentPresenterFactory(std::move(instrumentPresenterFactory)),
         m_savePresenterFactory(std::move(savePresenterFactory)) {}
 
-  std::unique_ptr<IReflBatchPresenter> make(IReflBatchView *view) {
+  std::unique_ptr<IBatchPresenter> make(IBatchView *view) {
     auto runsPresenter = m_runsPresenterFactory.make(view->runs());
     auto eventPresenter = m_eventPresenterFactory.make(view->eventHandling());
     auto experimentPresenter =
@@ -43,7 +43,7 @@ public:
         m_instrumentPresenterFactory.make(view->instrument());
     auto savePresenter = m_savePresenterFactory.make(view->save());
 
-    return std::make_unique<ReflBatchPresenter>(
+    return std::make_unique<BatchPresenter>(
         view, std::move(runsPresenter), std::move(eventPresenter),
         std::move(experimentPresenter), std::move(instrumentPresenter),
         std::move(savePresenter));
@@ -58,4 +58,4 @@ private:
 };
 } // namespace CustomInterfaces
 } // namespace MantidQt
-#endif // MANTID_ISISREFLECTOMETRY_REFLBATCHPRESENTERFACTORY_H
+#endif // MANTID_ISISREFLECTOMETRY_BATCHPRESENTERFACTORY_H
diff --git a/qt/scientific_interfaces/ISISReflectometry/QtReflBatchView.cpp b/qt/scientific_interfaces/ISISReflectometry/GUI/Batch/BatchView.cpp
similarity index 70%
rename from qt/scientific_interfaces/ISISReflectometry/QtReflBatchView.cpp
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Batch/BatchView.cpp
index 94856d259fb..bf51b0a472d 100644
--- a/qt/scientific_interfaces/ISISReflectometry/QtReflBatchView.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Batch/BatchView.cpp
@@ -4,25 +4,24 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "QtReflBatchView.h"
+#include "BatchView.h"
 #include "GUI/Event/EventView.h"
 #include "GUI/Runs/RunsView.h"
 #include "GUI/Save/SaveView.h"
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidKernel/make_unique.h"
-#include "ReflAsciiSaver.h"
-#include "ReflBatchPresenter.h"
+#include "BatchPresenter.h"
 
 #include <QMessageBox>
 
 namespace MantidQt {
 namespace CustomInterfaces {
 
-QtReflBatchView::QtReflBatchView(QWidget *parent) : QWidget(parent) {
+BatchView::BatchView(QWidget *parent) : QWidget(parent) {
   initLayout();
 }
 
-void QtReflBatchView::initLayout() {
+void BatchView::initLayout() {
   m_ui.setupUi(this);
 
   m_runs = createRunsTab();
@@ -43,39 +42,39 @@ void QtReflBatchView::initLayout() {
   m_ui.batchTabs->addTab(m_save.get(), "Save ASCII");
 }
 
-IExperimentView *QtReflBatchView::experiment() const {
+IExperimentView *BatchView::experiment() const {
   return m_experiment.get();
 }
 
-IInstrumentView *QtReflBatchView::instrument() const {
+IInstrumentView *BatchView::instrument() const {
   return m_instrument.get();
 }
 
-IRunsView *QtReflBatchView::runs() const { return m_runs.get(); }
+IRunsView *BatchView::runs() const { return m_runs.get(); }
 
-IEventView *QtReflBatchView::eventHandling() const {
+IEventView *BatchView::eventHandling() const {
   return m_eventHandling.get();
 }
 
-ISaveView *QtReflBatchView::save() const { return m_save.get(); }
+ISaveView *BatchView::save() const { return m_save.get(); }
 
-std::unique_ptr<RunsView> QtReflBatchView::createRunsTab() {
+std::unique_ptr<RunsView> BatchView::createRunsTab() {
   auto instruments = std::vector<std::string>(
       {{"INTER", "SURF", "CRISP", "POLREF", "OFFSPEC"}});
   return Mantid::Kernel::make_unique<RunsView>(
       this, RunsTableViewFactory(instruments));
 }
 
-std::unique_ptr<EventView> QtReflBatchView::createEventTab() {
+std::unique_ptr<EventView> BatchView::createEventTab() {
   return Mantid::Kernel::make_unique<EventView>(this);
 }
 
-Mantid::API::IAlgorithm_sptr QtReflBatchView::createReductionAlg() {
+Mantid::API::IAlgorithm_sptr BatchView::createReductionAlg() {
   return Mantid::API::AlgorithmManager::Instance().create(
       "ReflectometryReductionOneAuto");
 }
 
-std::unique_ptr<SaveView> QtReflBatchView::createSaveTab() {
+std::unique_ptr<SaveView> BatchView::createSaveTab() {
   return Mantid::Kernel::make_unique<SaveView>(this);
 }
 } // namespace CustomInterfaces
diff --git a/qt/scientific_interfaces/ISISReflectometry/QtReflBatchView.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Batch/BatchView.h
similarity index 73%
rename from qt/scientific_interfaces/ISISReflectometry/QtReflBatchView.h
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Batch/BatchView.h
index ed5bb31bcae..e4970f1db50 100644
--- a/qt/scientific_interfaces/ISISReflectometry/QtReflBatchView.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Batch/BatchView.h
@@ -4,18 +4,18 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#ifndef MANTID_ISISREFLECTOMETRY_QTREFLBATCHVIEW_H
-#define MANTID_ISISREFLECTOMETRY_QTREFLBATCHVIEW_H
+#ifndef MANTID_ISISREFLECTOMETRY_BATCHVIEW_H
+#define MANTID_ISISREFLECTOMETRY_BATCHVIEW_H
 
 #include "GUI/Event/EventView.h"
 #include "GUI/Experiment/ExperimentView.h"
 #include "GUI/Instrument/InstrumentView.h"
 #include "GUI/Runs/RunsView.h"
 #include "GUI/Save/SaveView.h"
-#include "IReflBatchPresenter.h"
-#include "IReflBatchView.h"
+#include "IBatchPresenter.h"
+#include "IBatchView.h"
 #include "MantidAPI/IAlgorithm.h"
-#include "ui_ReflBatchWidget.h"
+#include "ui_BatchWidget.h"
 #include <memory>
 
 #include <QCloseEvent>
@@ -23,11 +23,11 @@
 namespace MantidQt {
 namespace CustomInterfaces {
 
-class QtReflBatchView : public QWidget, public IReflBatchView {
+class BatchView : public QWidget, public IBatchView {
   Q_OBJECT
 public:
-  explicit QtReflBatchView(QWidget *parent = nullptr);
-  void subscribe(IReflBatchPresenter *notifyee);
+  explicit BatchView(QWidget *parent = nullptr);
+  void subscribe(IBatchPresenter *notifyee);
 
   IRunsView *runs() const override;
   IEventView *eventHandling() const override;
@@ -43,8 +43,8 @@ private:
   std::unique_ptr<EventView> createEventTab();
   std::unique_ptr<SaveView> createSaveTab();
 
-  Ui::ReflBatchWidget m_ui;
-  IReflBatchPresenter *m_notifyee;
+  Ui::BatchWidget m_ui;
+  IBatchPresenter *m_notifyee;
   std::unique_ptr<RunsView> m_runs;
   std::unique_ptr<EventView> m_eventHandling;
   std::unique_ptr<SaveView> m_save;
@@ -53,4 +53,4 @@ private:
 };
 } // namespace CustomInterfaces
 } // namespace MantidQt
-#endif /* MANTID_ISISREFLECTOMETRY_QTREFLBATCHVIEW_H */
+#endif /* MANTID_ISISREFLECTOMETRY_BATCHVIEW_H */
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflBatchWidget.ui b/qt/scientific_interfaces/ISISReflectometry/GUI/Batch/BatchWidget.ui
similarity index 87%
rename from qt/scientific_interfaces/ISISReflectometry/ReflBatchWidget.ui
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Batch/BatchWidget.ui
index 538e3c4d708..eac9d5deec3 100644
--- a/qt/scientific_interfaces/ISISReflectometry/ReflBatchWidget.ui
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Batch/BatchWidget.ui
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <ui version="4.0">
- <class>ReflBatchWidget</class>
- <widget class="QWidget" name="ReflBatchWidget">
+ <class>BatchWidget</class>
+ <widget class="QWidget" name="BatchWidget">
   <property name="geometry">
    <rect>
     <x>0</x>
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Batch/CMakeLists.txt b/qt/scientific_interfaces/ISISReflectometry/GUI/Batch/CMakeLists.txt
new file mode 100644
index 00000000000..687138fdf93
--- /dev/null
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Batch/CMakeLists.txt
@@ -0,0 +1,32 @@
+set ( BATCH_SRC_FILES
+    BatchPresenter.cpp
+    BatchView.cpp
+)
+
+# Include files aren't required, but this makes them appear in Visual Studio
+# IMPORTANT: Include files are required in the MOC_FILES set. Scroll down to find it.
+set ( BATCH_INC_FILES
+    IBatchPresenter.h
+    IBatchView.h
+    BatchPresenter.h
+    BatchPresenterFactory.h
+    BatchView.h
+)
+
+set ( BATCH_MOC_FILES
+    BatchView.h
+)
+
+set ( BATCH_UI_FILES
+    BatchWidget.ui
+)
+
+PREPEND( BATCH_SRC_FILES GUI/Batch ${BATCH_SRC_FILES})
+PREPEND( BATCH_INC_FILES GUI/Batch ${BATCH_INC_FILES})
+PREPEND( BATCH_MOC_FILES GUI/Batch ${BATCH_MOC_FILES})
+PREPEND( BATCH_UI_FILES GUI/Batch ${BATCH_UI_FILES})
+
+set (BATCH_SRC_FILES ${BATCH_SRC_FILES} PARENT_SCOPE)
+set (BATCH_INC_FILES ${BATCH_INC_FILES} PARENT_SCOPE)
+set (BATCH_MOC_FILES ${BATCH_MOC_FILES} PARENT_SCOPE)
+set (BATCH_UI_FILES ${BATCH_UI_FILES} PARENT_SCOPE)
diff --git a/qt/scientific_interfaces/ISISReflectometry/IReflBatchPresenter.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Batch/IBatchPresenter.h
similarity index 83%
rename from qt/scientific_interfaces/ISISReflectometry/IReflBatchPresenter.h
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Batch/IBatchPresenter.h
index dfbe14180ca..bd01bac1a5b 100644
--- a/qt/scientific_interfaces/ISISReflectometry/IReflBatchPresenter.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Batch/IBatchPresenter.h
@@ -4,8 +4,8 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#ifndef MANTID_ISISREFLECTOMETRY_IREFLBATCHPRESENTER_H
-#define MANTID_ISISREFLECTOMETRY_IREFLBATCHPRESENTER_H
+#ifndef MANTID_ISISREFLECTOMETRY_IBATCHPRESENTER_H
+#define MANTID_ISISREFLECTOMETRY_IBATCHPRESENTER_H
 
 #include "MantidQtWidgets/Common/DataProcessorUI/OptionsQMap.h"
 #include "MantidQtWidgets/Common/DataProcessorUI/TreeData.h"
@@ -15,16 +15,16 @@
 namespace MantidQt {
 namespace CustomInterfaces {
 
-/** @class IReflBatchPresenter
+/** @class IBatchPresenter
 
-IReflBatchPresenter is the interface defining the functions that the main
+IBatchPresenter is the interface defining the functions that the main
 window presenter needs to implement. This interface is used by tab presenters to
 request information from other tabs.
 */
-class IReflBatchPresenter {
+class IBatchPresenter {
 public:
   /// Destructor
-  virtual ~IReflBatchPresenter() = default;
+  virtual ~IBatchPresenter() = default;
 
   virtual void notifyReductionPaused() = 0;
   virtual void notifyReductionResumed() = 0;
@@ -52,4 +52,4 @@ public:
 };
 } // namespace CustomInterfaces
 } // namespace MantidQt
-#endif /* MANTID_ISISREFLECTOMETRY_IREFLBATCHPRESENTER_H */
+#endif /* MANTID_ISISREFLECTOMETRY_IBATCHPRESENTER_H */
diff --git a/qt/scientific_interfaces/ISISReflectometry/IReflBatchView.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Batch/IBatchView.h
similarity index 76%
rename from qt/scientific_interfaces/ISISReflectometry/IReflBatchView.h
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Batch/IBatchView.h
index c11fefaaa11..7dee75a3bf3 100644
--- a/qt/scientific_interfaces/ISISReflectometry/IReflBatchView.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Batch/IBatchView.h
@@ -4,8 +4,8 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#ifndef MANTID_ISISREFLECTOMETRY_IREFLBATCHVIEW_H
-#define MANTID_ISISREFLECTOMETRY_IREFLBATCHVIEW_H
+#ifndef MANTID_ISISREFLECTOMETRY_IBATCHVIEW_H
+#define MANTID_ISISREFLECTOMETRY_IBATCHVIEW_H
 
 #include "GUI/Event/IEventView.h"
 #include "GUI/Experiment/IExperimentView.h"
@@ -17,22 +17,22 @@
 namespace MantidQt {
 namespace CustomInterfaces {
 
-/** @class IReflBatchView
+/** @class IBatchView
 
-IReflBatchView is the interface defining the functions that the main
+IBatchView is the interface defining the functions that the main
 window view needs to implement. It is empty and not necessary at the moment, but
 can be used in the future if widgets common to all tabs are added, for instance,
 the help button.
 */
-class IReflBatchView {
+class IBatchView {
 public:
   virtual IRunsView *runs() const = 0;
   virtual IEventView *eventHandling() const = 0;
   virtual ISaveView *save() const = 0;
   virtual IExperimentView *experiment() const = 0;
   virtual IInstrumentView *instrument() const = 0;
-  virtual ~IReflBatchView() = default;
+  virtual ~IBatchView() = default;
 };
 } // namespace CustomInterfaces
 } // namespace MantidQt
-#endif /* MANTID_ISISREFLECTOMETRY_IREFLBATCHVIEW_H */
+#endif /* MANTID_ISISREFLECTOMETRY_IBATCHVIEW_H */
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/CMakeLists.txt b/qt/scientific_interfaces/ISISReflectometry/GUI/CMakeLists.txt
index 5e1b3db9718..16c9824199d 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/CMakeLists.txt
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/CMakeLists.txt
@@ -1,47 +1,57 @@
-add_subdirectory( Event )
+add_subdirectory(Batch)
+add_subdirectory(Event)
 add_subdirectory(Experiment)
 add_subdirectory(Instrument)
+add_subdirectory(MainWindow)
 add_subdirectory(Runs)
-add_subdirectory( RunsTable )
+add_subdirectory(RunsTable)
 add_subdirectory(Save)
 
 
 set (GUI_SRC_FILES
-    ${RUNS_SRC_FILES}
-    ${RUNS_TABLE_SRC_FILES}
-    ${EXPERIMENT_SRC_FILES}
+    ${BATCH_SRC_FILES}
     ${EVENT_SRC_FILES}
+    ${EXPERIMENT_SRC_FILES}
     ${INSTRUMENT_SRC_FILES}
+    ${MAINWINDOW_SRC_FILES}
+    ${RUNS_SRC_FILES}
+    ${RUNS_TABLE_SRC_FILES}
     ${SAVE_SRC_FILES}
     PARENT_SCOPE
 )
 
 set (GUI_INC_FILES
-    ${RUNS_INC_FILES}
-    ${RUNS_TABLE_INC_FILES}
-    ${EXPERIMENT_INC_FILES}
+    ${BATCH_INC_FILES}
     ${EVENT_INC_FILES}
+    ${EXPERIMENT_INC_FILES}
     ${INSTRUMENT_INC_FILES}
+    ${MAINWINDOW_INC_FILES}
+    ${RUNS_INC_FILES}
+    ${RUNS_TABLE_INC_FILES}
     ${SAVE_INC_FILES}
     PARENT_SCOPE
 )
 
 set ( GUI_MOC_FILES
-    ${RUNS_MOC_FILES}
-    ${RUNS_TABLE_MOC_FILES}
-    ${EXPERIMENT_MOC_FILES}
+    ${BATCH_MOC_FILES}
     ${EVENT_MOC_FILES}
+    ${EXPERIMENT_MOC_FILES}
     ${INSTRUMENT_MOC_FILES}
+    ${MAINWINDOW_MOC_FILES}
+    ${RUNS_MOC_FILES}
+    ${RUNS_TABLE_MOC_FILES}
     ${SAVE_MOC_FILES}
     PARENT_SCOPE
 )
 
 set ( GUI_UI_FILES
-    ${RUNS_UI_FILES}
-    ${RUNS_TABLE_UI_FILES}
-    ${EXPERIMENT_UI_FILES}
+    ${BATCH_UI_FILES}
     ${EVENT_UI_FILES}
+    ${EXPERIMENT_UI_FILES}
     ${INSTRUMENT_UI_FILES}
+    ${MAINWINDOW_UI_FILES}
+    ${RUNS_UI_FILES}
+    ${RUNS_TABLE_UI_FILES}
     ${SAVE_UI_FILES}
     PARENT_SCOPE
 )
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Event/EventPresenter.cpp b/qt/scientific_interfaces/ISISReflectometry/GUI/Event/EventPresenter.cpp
index c56eae3aed3..d321f24ca29 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Event/EventPresenter.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Event/EventPresenter.cpp
@@ -5,10 +5,10 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "EventPresenter.h"
-#include "../../IReflBatchPresenter.h"
+#include "Common/Parse.h"
+#include "GUI/Batch/IBatchPresenter.h"
 #include "IEventPresenter.h"
 #include "IEventView.h"
-#include "Parse.h"
 #include <boost/algorithm/string.hpp>
 #include <iostream>
 
@@ -23,7 +23,7 @@ EventPresenter::EventPresenter(IEventView *view)
   m_view->subscribe(this);
 }
 
-void EventPresenter::acceptMainPresenter(IReflBatchPresenter *mainPresenter) {
+void EventPresenter::acceptMainPresenter(IBatchPresenter *mainPresenter) {
   m_mainPresenter = mainPresenter;
 }
 
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Event/EventPresenter.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Event/EventPresenter.h
index 1b6e6f0c69e..aef659e0682 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Event/EventPresenter.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Event/EventPresenter.h
@@ -7,7 +7,7 @@
 #ifndef MANTID_ISISREFLECTOMETRY_REFLEVENTPRESENTER_H
 #define MANTID_ISISREFLECTOMETRY_REFLEVENTPRESENTER_H
 
-#include "../../DllConfig.h"
+#include "Common/DllConfig.h"
 #include "../../Reduction/Slicing.h"
 #include "IEventPresenter.h"
 #include "IEventView.h"
@@ -26,7 +26,7 @@ class MANTIDQT_ISISREFLECTOMETRY_DLL EventPresenter
 public:
   EventPresenter(IEventView *view);
 
-  void acceptMainPresenter(IReflBatchPresenter *mainPresenter) override;
+  void acceptMainPresenter(IBatchPresenter *mainPresenter) override;
   void reductionPaused() override;
   void reductionResumed() override;
   void autoreductionPaused() override;
@@ -44,7 +44,7 @@ public:
   Slicing const &slicing() const;
 
 private:
-  IReflBatchPresenter *m_mainPresenter;
+  IBatchPresenter *m_mainPresenter;
   Slicing m_slicing;
   void setUniformSlicingByNumberOfSlicesFromView();
   void setUniformSlicingByTimeFromView();
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Event/EventPresenterFactory.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Event/EventPresenterFactory.h
index 4351d732f09..e28d25f588b 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Event/EventPresenterFactory.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Event/EventPresenterFactory.h
@@ -6,7 +6,7 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #ifndef MANTID_ISISREFLECTOMETRY_REFLEVENTPRESENTERFACTORY_H
 #define MANTID_ISISREFLECTOMETRY_REFLEVENTPRESENTERFACTORY_H
-#include "DllConfig.h"
+#include "Common/DllConfig.h"
 #include "EventPresenter.h"
 #include "IEventPresenter.h"
 #include "IEventView.h"
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Event/EventView.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Event/EventView.h
index 0bec4357b11..de2754b62fe 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Event/EventView.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Event/EventView.h
@@ -8,7 +8,7 @@
 #define MANTID_CUSTOMINTERFACES_QTREFLEVENTVIEW_H_
 
 #include "IEventView.h"
-#include "QWidgetGroup.h"
+#include "Common/QWidgetGroup.h"
 #include "ui_EventWidget.h"
 #include <memory>
 
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Event/IEventPresenter.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Event/IEventPresenter.h
index 4168e83f5ab..a905bfdadb3 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Event/IEventPresenter.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Event/IEventPresenter.h
@@ -7,7 +7,7 @@
 #ifndef MANTID_ISISREFLECTOMETRY_IREFLEVENTPRESENTER_H
 #define MANTID_ISISREFLECTOMETRY_IREFLEVENTPRESENTER_H
 
-#include "../../IReflBatchPresenter.h"
+#include "GUI/Batch/IBatchPresenter.h"
 #include <string>
 
 namespace MantidQt {
@@ -22,7 +22,7 @@ to be implemented by a concrete 'Event' presenter
 class IEventPresenter {
 public:
   virtual ~IEventPresenter() = default;
-  virtual void acceptMainPresenter(IReflBatchPresenter *mainPresenter) = 0;
+  virtual void acceptMainPresenter(IBatchPresenter *mainPresenter) = 0;
   virtual void reductionPaused() = 0;
   virtual void reductionResumed() = 0;
   virtual void autoreductionPaused() = 0;
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Event/IEventView.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Event/IEventView.h
index ed52629a07a..4d78823195f 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Event/IEventView.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Event/IEventView.h
@@ -7,7 +7,7 @@
 #ifndef MANTID_ISISREFLECTOMETRY_IREFLEVENTVIEW_H
 #define MANTID_ISISREFLECTOMETRY_IREFLEVENTVIEW_H
 
-#include "../../DllConfig.h"
+#include "Common/DllConfig.h"
 #include <string>
 
 namespace MantidQt {
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/CMakeLists.txt b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/CMakeLists.txt
index e32793f043d..434e7fb9038 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/CMakeLists.txt
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/CMakeLists.txt
@@ -1,9 +1,11 @@
 set ( EXPERIMENT_SRC_FILES
   ExperimentView.cpp
   ExperimentPresenter.cpp
+  ExperimentOptionDefaults.cpp
   InvalidDefaultsError.cpp
   PerThetaDefaultsTableValidationError.cpp
   PerThetaDefaultsTableValidator.cpp
+  ExperimentOptionDefaults.h
 )
 
 # Include files aren't required, but this makes them appear in Visual Studio
diff --git a/qt/scientific_interfaces/ISISReflectometry/ExperimentOptionDefaults.cpp b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentOptionDefaults.cpp
similarity index 99%
rename from qt/scientific_interfaces/ISISReflectometry/ExperimentOptionDefaults.cpp
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentOptionDefaults.cpp
index e19fc6a4ea3..02147c69448 100644
--- a/qt/scientific_interfaces/ISISReflectometry/ExperimentOptionDefaults.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentOptionDefaults.cpp
@@ -5,7 +5,7 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "ExperimentOptionDefaults.h"
-#include "ValueOr.h"
+#include "Common/ValueOr.h"
 
 namespace MantidQt {
 namespace CustomInterfaces {
diff --git a/qt/scientific_interfaces/ISISReflectometry/ExperimentOptionDefaults.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentOptionDefaults.h
similarity index 98%
rename from qt/scientific_interfaces/ISISReflectometry/ExperimentOptionDefaults.h
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentOptionDefaults.h
index f223055b0a5..81e6775e401 100644
--- a/qt/scientific_interfaces/ISISReflectometry/ExperimentOptionDefaults.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentOptionDefaults.h
@@ -6,7 +6,7 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #ifndef MANTID_ISISREFLECTOMETRY_EXPERIMENTOPTIONDEFAULTS_H
 #define MANTID_ISISREFLECTOMETRY_EXPERIMENTOPTIONDEFAULTS_H
-#include "DllConfig.h"
+#include "Common/DllConfig.h"
 #include <boost/optional.hpp>
 #include <ostream>
 #include <string>
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenter.cpp b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenter.cpp
index 6062b63959b..812a9c20348 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenter.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenter.cpp
@@ -5,10 +5,10 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "ExperimentPresenter.h"
-#include "../../IReflBatchPresenter.h"
-#include "../../Reduction/ParseReflectometryStrings.h"
-#include "../../Reduction/ValidatePerThetaDefaults.h"
+#include "GUI/Batch/IBatchPresenter.h"
 #include "PerThetaDefaultsTableValidator.h"
+#include "Reduction/ParseReflectometryStrings.h"
+#include "Reduction/ValidatePerThetaDefaults.h"
 
 namespace MantidQt {
 namespace CustomInterfaces {
@@ -21,8 +21,7 @@ ExperimentPresenter::ExperimentPresenter(IExperimentView *view,
   m_view->subscribe(this);
 }
 
-void ExperimentPresenter::acceptMainPresenter(
-    IReflBatchPresenter *mainPresenter) {
+void ExperimentPresenter::acceptMainPresenter(IBatchPresenter *mainPresenter) {
   m_mainPresenter = mainPresenter;
   notifySettingsChanged();
 }
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenter.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenter.h
index eac28eed88d..79c7a59df77 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenter.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenter.h
@@ -7,12 +7,12 @@
 #ifndef MANTID_ISISREFLECTOMETRY_EXPERIMENTPRESENTER_H
 #define MANTID_ISISREFLECTOMETRY_EXPERIMENTPRESENTER_H
 
-#include "../../DllConfig.h"
-#include "../../Reduction/Experiment.h"
-#include "../../ValidationResult.h"
+#include "Common/DllConfig.h"
+#include "Common/ValidationResult.h"
 #include "IExperimentPresenter.h"
 #include "IExperimentView.h"
 #include "PerThetaDefaultsTableValidationError.h"
+#include "Reduction/Experiment.h"
 #include <boost/optional.hpp>
 
 namespace MantidQt {
@@ -49,7 +49,7 @@ public:
   ExperimentPresenter(IExperimentView *view, Experiment experiment,
                       double defaultsThetaTolerance);
 
-  void acceptMainPresenter(IReflBatchPresenter *mainPresenter) override;
+  void acceptMainPresenter(IBatchPresenter *mainPresenter) override;
   Experiment const &experiment() const;
 
   void notifySettingsChanged() override;
@@ -64,7 +64,7 @@ public:
   void autoreductionResumed() override;
 
 private:
-  IReflBatchPresenter *m_mainPresenter;
+  IBatchPresenter *m_mainPresenter;
   ExperimentValidationResult validateExperimentFromView();
   PolarizationCorrections polarizationCorrectionsFromView();
   FloodCorrections floodCorrectionsFromView();
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenterFactory.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenterFactory.h
index dc1fa88eb82..f8027c6199b 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenterFactory.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenterFactory.h
@@ -7,7 +7,7 @@
 #ifndef MANTID_ISISREFLECTOMETRY_EXPERIMENTPRESENTERFACTORY_H
 #define MANTID_ISISREFLECTOMETRY_EXPERIMENTPRESENTERFACTORY_H
 #include "../../Reduction/Experiment.h"
-#include "DllConfig.h"
+#include "Common/DllConfig.h"
 #include "ExperimentPresenter.h"
 #include "IExperimentPresenter.h"
 #include "IExperimentView.h"
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentView.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentView.h
index 4a1c29d0fcf..a35bc58c876 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentView.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentView.h
@@ -7,7 +7,7 @@
 #ifndef MANTID_CUSTOMINTERFACES_EXPERIMENTVIEW_H_
 #define MANTID_CUSTOMINTERFACES_EXPERIMENTVIEW_H_
 
-#include "DllConfig.h"
+#include "Common/DllConfig.h"
 #include "IExperimentView.h"
 #include "MantidQtWidgets/Common/HintingLineEdit.h"
 #include "ui_ExperimentWidget.h"
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/IExperimentPresenter.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/IExperimentPresenter.h
index 624836265d7..112da3da432 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/IExperimentPresenter.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/IExperimentPresenter.h
@@ -7,7 +7,7 @@
 #ifndef MANTID_ISISREFLECTOMETRY_IEXPERIMENTPRESENTER_H
 #define MANTID_ISISREFLECTOMETRY_IEXPERIMENTPRESENTER_H
 
-#include "../../IReflBatchPresenter.h"
+#include "GUI/Batch/IBatchPresenter.h"
 #include <string>
 
 namespace MantidQt {
@@ -16,7 +16,7 @@ class IExperimentPresenter {
 public:
   virtual ~IExperimentPresenter() = default;
 
-  virtual void acceptMainPresenter(IReflBatchPresenter *mainPresenter) = 0;
+  virtual void acceptMainPresenter(IBatchPresenter *mainPresenter) = 0;
   virtual void reductionPaused() = 0;
   virtual void reductionResumed() = 0;
   virtual void autoreductionPaused() = 0;
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/IExperimentView.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/IExperimentView.h
index 8bcf7c5f504..d254b6b1eef 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/IExperimentView.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/IExperimentView.h
@@ -7,9 +7,9 @@
 #ifndef MANTID_ISISREFLECTOMETRY_IEXPERIMENTVIEW_H
 #define MANTID_ISISREFLECTOMETRY_IEXPERIMENTVIEW_H
 
-#include "DllConfig.h"
-#include "GetInstrumentParameter.h"
-#include "InstrumentParameters.h"
+#include "Common/DllConfig.h"
+#include "Common/GetInstrumentParameter.h"
+#include "Common/InstrumentParameters.h"
 #include "MantidAPI/Algorithm.h"
 #include "MantidQtWidgets/Common/DataProcessorUI/OptionsQMap.h"
 #include "MantidQtWidgets/Common/Hint.h"
@@ -21,9 +21,10 @@ namespace CustomInterfaces {
 
 /** @class IExperimentView
 
-IExperimentView is the base view class for the Reflectometry experiment
-settings. It
-contains no QT specific functionality as that should be handled by a subclass.
+    IExperimentView is the base view class for the Reflectometry experiment
+    settings. It
+    contains no QT specific functionality as that should be handled by a
+   subclass.
 */
 
 class MANTIDQT_ISISREFLECTOMETRY_DLL ExperimentViewSubscriber {
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/InvalidDefaultsError.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/InvalidDefaultsError.h
index 0347e138771..f3bc871557b 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/InvalidDefaultsError.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/InvalidDefaultsError.h
@@ -6,7 +6,7 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #ifndef MANTID_ISISREFLECTOMETRY_INVALIDDEFAULTSERROR_H
 #define MANTID_ISISREFLECTOMETRY_INVALIDDEFAULTSERROR_H
-#include "../../DllConfig.h"
+#include "Common/DllConfig.h"
 #include <vector>
 
 namespace MantidQt {
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/PerThetaDefaultsTableValidator.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/PerThetaDefaultsTableValidator.h
index 177f976a765..ed7b21659ca 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/PerThetaDefaultsTableValidator.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/PerThetaDefaultsTableValidator.h
@@ -6,8 +6,8 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #ifndef MANTID_ISISREFLECTOMETRY_PERTHETADEFAULTSTABLEVALIDATOR_H
 #define MANTID_ISISREFLECTOMETRY_PERTHETADEFAULTSTABLEVALIDATOR_H
-#include "../../Reduction/PerThetaDefaults.h"
-#include "../../ValidationResult.h"
+#include "Common/ValidationResult.h"
+#include "Reduction/PerThetaDefaults.h"
 #include "PerThetaDefaultsTableValidationError.h"
 #include <array>
 
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/CMakeLists.txt b/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/CMakeLists.txt
index eb7b83967fd..c936d37ac04 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/CMakeLists.txt
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/CMakeLists.txt
@@ -1,6 +1,7 @@
 set ( INSTRUMENT_SRC_FILES
   InstrumentView.cpp
   InstrumentPresenter.cpp
+  InstrumentOptionDefaults.cpp
 )
 
 # Include files aren't required, but this makes them appear in Visual Studio
@@ -11,6 +12,7 @@ set ( INSTRUMENT_INC_FILES
   IInstrumentView.h
   InstrumentView.h
   InstrumentPresenter.h
+  InstrumentOptionDefaults.h
 )
 
 set ( INSTRUMENT_MOC_FILES
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/IInstrumentPresenter.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/IInstrumentPresenter.h
index 70622829458..b8d90e20158 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/IInstrumentPresenter.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/IInstrumentPresenter.h
@@ -12,7 +12,7 @@
 namespace MantidQt {
 namespace CustomInterfaces {
 
-class IReflBatchPresenter;
+class IBatchPresenter;
 
 /** @class IInstrumentPresenter
 
@@ -23,7 +23,7 @@ class IInstrumentPresenter {
 public:
   virtual ~IInstrumentPresenter() = default;
 
-  virtual void acceptMainPresenter(IReflBatchPresenter *mainPresenter) = 0;
+  virtual void acceptMainPresenter(IBatchPresenter *mainPresenter) = 0;
   virtual void reductionPaused() = 0;
   virtual void reductionResumed() = 0;
   virtual void autoreductionPaused() = 0;
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/IInstrumentView.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/IInstrumentView.h
index b6868fee74d..3a09141905a 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/IInstrumentView.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/IInstrumentView.h
@@ -7,8 +7,8 @@
 #ifndef MANTID_ISISREFLECTOMETRY_IINSTRUMENTVIEW_H
 #define MANTID_ISISREFLECTOMETRY_IINSTRUMENTVIEW_H
 
-#include "DllConfig.h"
-#include "InstrumentParameters.h"
+#include "Common/DllConfig.h"
+#include "Common/InstrumentParameters.h"
 #include "MantidAPI/Algorithm.h"
 
 namespace MantidQt {
diff --git a/qt/scientific_interfaces/ISISReflectometry/InstrumentOptionDefaults.cpp b/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/InstrumentOptionDefaults.cpp
similarity index 98%
rename from qt/scientific_interfaces/ISISReflectometry/InstrumentOptionDefaults.cpp
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/InstrumentOptionDefaults.cpp
index 5135c0344bd..2c1ccdcdccc 100644
--- a/qt/scientific_interfaces/ISISReflectometry/InstrumentOptionDefaults.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/InstrumentOptionDefaults.cpp
@@ -5,7 +5,7 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "InstrumentOptionDefaults.h"
-#include "ValueOr.h"
+#include "Common/ValueOr.h"
 
 namespace MantidQt {
 namespace CustomInterfaces {
diff --git a/qt/scientific_interfaces/ISISReflectometry/InstrumentOptionDefaults.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/InstrumentOptionDefaults.h
similarity index 97%
rename from qt/scientific_interfaces/ISISReflectometry/InstrumentOptionDefaults.h
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/InstrumentOptionDefaults.h
index e71930c4498..bf64e5afd99 100644
--- a/qt/scientific_interfaces/ISISReflectometry/InstrumentOptionDefaults.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/InstrumentOptionDefaults.h
@@ -6,7 +6,7 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #ifndef MANTID_ISISREFLECTOMETRY_INSTRUMENTOPTIONDEFAULTS_H
 #define MANTID_ISISREFLECTOMETRY_INSTRUMENTOPTIONDEFAULTS_H
-#include "DllConfig.h"
+#include "Common/DllConfig.h"
 #include "MantidGeometry/Instrument.h"
 #include <boost/optional.hpp>
 #include <boost/variant.hpp>
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/InstrumentPresenter.cpp b/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/InstrumentPresenter.cpp
index 4fcea74614b..b55125d98ab 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/InstrumentPresenter.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/InstrumentPresenter.cpp
@@ -5,7 +5,7 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "InstrumentPresenter.h"
-#include "IReflBatchPresenter.h"
+#include "GUI/Batch/IBatchPresenter.h"
 
 namespace MantidQt {
 namespace CustomInterfaces {
@@ -26,8 +26,7 @@ InstrumentPresenter::InstrumentPresenter(IInstrumentView *view,
   m_view->subscribe(this);
 }
 
-void InstrumentPresenter::acceptMainPresenter(
-    IReflBatchPresenter *mainPresenter) {
+void InstrumentPresenter::acceptMainPresenter(IBatchPresenter *mainPresenter) {
   m_mainPresenter = mainPresenter;
   notifySettingsChanged();
 }
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/InstrumentPresenter.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/InstrumentPresenter.h
index d72b00e16df..c4edf53b9fa 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/InstrumentPresenter.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/InstrumentPresenter.h
@@ -7,7 +7,7 @@
 #ifndef MANTID_ISISREFLECTOMETRY_INSTRUMENTPRESENTER_H
 #define MANTID_ISISREFLECTOMETRY_INSTRUMENTPRESENTER_H
 
-#include "../../DllConfig.h"
+#include "Common/DllConfig.h"
 #include "../../Reduction/Instrument.h"
 #include "IInstrumentPresenter.h"
 #include "IInstrumentView.h"
@@ -30,7 +30,7 @@ public:
   Instrument const &instrument() const;
 
   // IInstrumentPresenver overrides
-  void acceptMainPresenter(IReflBatchPresenter *mainPresenter) override;
+  void acceptMainPresenter(IBatchPresenter *mainPresenter) override;
   void reductionPaused() override;
   void reductionResumed() override;
   void autoreductionPaused() override;
@@ -43,7 +43,7 @@ public:
 private:
   IInstrumentView *m_view;
   Instrument m_model;
-  IReflBatchPresenter *m_mainPresenter;
+  IBatchPresenter *m_mainPresenter;
 
   boost::optional<RangeInLambda> wavelengthRangeFromView();
   boost::optional<RangeInLambda> monitorBackgroundRangeFromView();
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/InstrumentPresenterFactory.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/InstrumentPresenterFactory.h
index 3759ebbaaa3..89274e503ff 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/InstrumentPresenterFactory.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/InstrumentPresenterFactory.h
@@ -7,7 +7,7 @@
 #ifndef MANTID_ISISREFLECTOMETRY_INSTRUMENTPRESENTERFACTORY_H
 #define MANTID_ISISREFLECTOMETRY_INSTRUMENTPRESENTERFACTORY_H
 #include "../../Reduction/Instrument.h"
-#include "DllConfig.h"
+#include "Common/DllConfig.h"
 #include "IInstrumentPresenter.h"
 #include "IInstrumentView.h"
 #include "InstrumentPresenter.h"
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/InstrumentView.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/InstrumentView.h
index 3678417b9a7..569707d0ce7 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/InstrumentView.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Instrument/InstrumentView.h
@@ -7,7 +7,7 @@
 #ifndef MANTID_CUSTOMINTERFACES_INSTRUMENTVIEW_H_
 #define MANTID_CUSTOMINTERFACES_INSTRUMENTVIEW_H_
 
-#include "DllConfig.h"
+#include "Common/DllConfig.h"
 #include "IInstrumentView.h"
 #include "ui_InstrumentWidget.h"
 #include <QCheckBox>
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/CMakeLists.txt b/qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/CMakeLists.txt
new file mode 100644
index 00000000000..97d38a41fef
--- /dev/null
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/CMakeLists.txt
@@ -0,0 +1,31 @@
+set ( MAINWINDOW_SRC_FILES
+    MainWindowPresenter.cpp
+    MainWindowView.cpp
+)
+
+# Include files aren't required, but this makes them appear in Visual Studio
+# IMPORTANT: Include files are required in the MOC_FILES set. Scroll down to find it.
+set ( MAINWINDOW_INC_FILES
+    IMainWindowPresenter.h
+    IMainWindowView.h
+    MainWindowPresenter.h
+    MainWindowView.h
+)
+
+set ( MAINWINDOW_MOC_FILES
+    MainWindowView.h
+)
+
+set ( MAINWINDOW_UI_FILES
+    MainWindowWidget.ui
+)
+
+PREPEND( MAINWINDOW_SRC_FILES GUI/MainWindow ${MAINWINDOW_SRC_FILES})
+PREPEND( MAINWINDOW_INC_FILES GUI/MainWindow ${MAINWINDOW_INC_FILES})
+PREPEND( MAINWINDOW_MOC_FILES GUI/MainWindow ${MAINWINDOW_MOC_FILES})
+PREPEND( MAINWINDOW_UI_FILES GUI/MainWindow ${MAINWINDOW_UI_FILES})
+
+set (MAINWINDOW_SRC_FILES ${MAINWINDOW_SRC_FILES} PARENT_SCOPE)
+set (MAINWINDOW_INC_FILES ${MAINWINDOW_INC_FILES} PARENT_SCOPE)
+set (MAINWINDOW_MOC_FILES ${MAINWINDOW_MOC_FILES} PARENT_SCOPE)
+set (MAINWINDOW_UI_FILES ${MAINWINDOW_UI_FILES} PARENT_SCOPE)
diff --git a/qt/scientific_interfaces/ISISReflectometry/IReflMainWindowPresenter.h b/qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/IMainWindowPresenter.h
similarity index 63%
rename from qt/scientific_interfaces/ISISReflectometry/IReflMainWindowPresenter.h
rename to qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/IMainWindowPresenter.h
index 4b5496f2514..4cb8f8f3df8 100644
--- a/qt/scientific_interfaces/ISISReflectometry/IReflMainWindowPresenter.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/IMainWindowPresenter.h
@@ -4,10 +4,10 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#ifndef MANTID_ISISREFLECTOMETRY_IREFLMAINWINDOWPRESENTER_H
-#define MANTID_ISISREFLECTOMETRY_IREFLMAINWINDOWPRESENTER_H
+#ifndef MANTID_ISISREFLECTOMETRY_IMAINWINDOWPRESENTER_H
+#define MANTID_ISISREFLECTOMETRY_IMAINWINDOWPRESENTER_H
 
-#include "IReflMainWindowView.h"
+#include "IMainWindowView.h"
 #include "MantidQtWidgets/Common/DataProcessorUI/OptionsQMap.h"
 #include "MantidQtWidgets/Common/DataProcessorUI/TreeData.h"
 #include <string>
@@ -15,18 +15,18 @@
 namespace MantidQt {
 namespace CustomInterfaces {
 
-/** @class IReflMainWindowPresenter
+/** @class IMainWindowPresenter
 
-IReflMainWindowPresenter is the interface defining the functions that the main
+IMainWindowPresenter is the interface defining the functions that the main
 window presenter needs to implement. This interface is used by tab presenters to
 request information from other tabs.
 */
-class IReflMainWindowPresenter : public ReflMainWindowSubscriber {
+class IMainWindowPresenter : public MainWindowSubscriber {
 public:
   virtual std::string runPythonAlgorithm(const std::string &pythonCode) = 0;
   virtual bool isProcessing() const = 0;
-  virtual ~IReflMainWindowPresenter() = default;
+  virtual ~IMainWindowPresenter() = default;
 };
 } // namespace CustomInterfaces
 } // namespace MantidQt
-#endif /* MANTID_ISISREFLECTOMETRY_IREFLMAINWINDOWPRESENTER_H */
+#endif /* MANTID_ISISREFLECTOMETRY_IMAINWINDOWPRESENTER_H */
diff --git a/qt/scientific_interfaces/ISISReflectometry/IReflMainWindowView.h b/qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/IMainWindowView.h
similarity index 58%
rename from qt/scientific_interfaces/ISISReflectometry/IReflMainWindowView.h
rename to qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/IMainWindowView.h
index dcb229eebbf..ac7247a207a 100644
--- a/qt/scientific_interfaces/ISISReflectometry/IReflMainWindowView.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/IMainWindowView.h
@@ -4,40 +4,40 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#ifndef MANTID_ISISREFLECTOMETRY_IREFLMAINWINDOWVIEW_H
-#define MANTID_ISISREFLECTOMETRY_IREFLMAINWINDOWVIEW_H
+#ifndef MANTID_ISISREFLECTOMETRY_IREFLWINDOWVIEW_H
+#define MANTID_ISISREFLECTOMETRY_IREFLWINDOWVIEW_H
 
-#include "IReflBatchView.h"
+#include "GUI/Batch/IBatchView.h"
 #include <string>
 #include <vector>
 
 namespace MantidQt {
 namespace CustomInterfaces {
 
-/** @class IReflMainWindowView
+/** @class IMainWindowView
 
-IReflMainWindowView is the interface defining the functions that the main
+IMainWindowView is the interface defining the functions that the main
 window view needs to implement. It is empty and not necessary at the moment, but
 can be used in the future if widgets common to all tabs are added, for instance,
 the help button.
 */
-class ReflMainWindowSubscriber {
+class MainWindowSubscriber {
 public:
   virtual void notifyHelpPressed() = 0;
   virtual void notifyNewBatchRequested() = 0;
   virtual void notifyCloseBatchRequested(int batchIndex) = 0;
-  virtual ~ReflMainWindowSubscriber() = default;
+  virtual ~MainWindowSubscriber() = default;
 };
 
-class IReflMainWindowView {
+class IMainWindowView {
 public:
-  virtual void subscribe(ReflMainWindowSubscriber *notifyee) = 0;
-  virtual IReflBatchView *newBatch() = 0;
+  virtual void subscribe(MainWindowSubscriber *notifyee) = 0;
+  virtual IBatchView *newBatch() = 0;
   virtual void removeBatch(int index) = 0;
-  virtual std::vector<IReflBatchView *> batches() const = 0;
+  virtual std::vector<IBatchView *> batches() const = 0;
   virtual std::string runPythonAlgorithm(const std::string &pythonCode) = 0;
-  virtual ~IReflMainWindowView() = default;
+  virtual ~IMainWindowView() = default;
 };
 } // namespace CustomInterfaces
 } // namespace MantidQt
-#endif /* MANTID_ISISREFLECTOMETRY_IREFLMAINWINDOWVIEW_H */
+#endif /* MANTID_ISISREFLECTOMETRY_IREFLWINDOWVIEW_H */
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflMainWindowPresenter.cpp b/qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/MainWindowPresenter.cpp
similarity index 75%
rename from qt/scientific_interfaces/ISISReflectometry/ReflMainWindowPresenter.cpp
rename to qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/MainWindowPresenter.cpp
index 254db344beb..b53e5a7816b 100644
--- a/qt/scientific_interfaces/ISISReflectometry/ReflMainWindowPresenter.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/MainWindowPresenter.cpp
@@ -4,9 +4,9 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "ReflMainWindowPresenter.h"
+#include "MainWindowPresenter.h"
 #include "GUI/Runs/IRunsPresenter.h"
-#include "IReflMainWindowView.h"
+#include "IMainWindowView.h"
 #include "MantidQtWidgets/Common/HelpWindow.h"
 
 using namespace MantidQt::MantidWidgets::DataProcessor;
@@ -19,20 +19,20 @@ namespace CustomInterfaces {
  * @param batchPresenterFactory :: [input] A factory to create the batches
  * we will manage
  */
-ReflMainWindowPresenter::ReflMainWindowPresenter(
-    IReflMainWindowView *view, ReflBatchPresenterFactory batchPresenterFactory)
+MainWindowPresenter::MainWindowPresenter(
+    IMainWindowView *view, BatchPresenterFactory batchPresenterFactory)
     : m_view(view), m_batchPresenterFactory(std::move(batchPresenterFactory)) {
   view->subscribe(this);
   for (auto *batchView : m_view->batches())
     m_batchPresenters.emplace_back(m_batchPresenterFactory.make(batchView));
 }
 
-void ReflMainWindowPresenter::notifyNewBatchRequested() {
+void MainWindowPresenter::notifyNewBatchRequested() {
   auto *newBatchView = m_view->newBatch();
   m_batchPresenters.emplace_back(m_batchPresenterFactory.make(newBatchView));
 }
 
-void ReflMainWindowPresenter::notifyCloseBatchRequested(int batchIndex) {
+void MainWindowPresenter::notifyCloseBatchRequested(int batchIndex) {
   if (m_batchPresenters[batchIndex]->requestClose()) {
     m_batchPresenters.erase(m_batchPresenters.begin() + batchIndex);
     m_view->removeBatch(batchIndex);
@@ -42,9 +42,9 @@ void ReflMainWindowPresenter::notifyCloseBatchRequested(int batchIndex) {
 /**
 Used by the view to tell the presenter something has changed
 */
-void ReflMainWindowPresenter::notifyHelpPressed() { showHelp(); }
+void MainWindowPresenter::notifyHelpPressed() { showHelp(); }
 
-bool ReflMainWindowPresenter::isProcessing() const {
+bool MainWindowPresenter::isProcessing() const {
   for (auto batchPresenter : m_batchPresenters) {
     if (batchPresenter->isProcessing())
       return true;
@@ -52,7 +52,7 @@ bool ReflMainWindowPresenter::isProcessing() const {
   return false;
 }
 
-void ReflMainWindowPresenter::showHelp() {
+void MainWindowPresenter::showHelp() {
   MantidQt::API::HelpWindow::showCustomInterface(nullptr,
                                                  QString("ISIS Reflectometry"));
 }
@@ -63,7 +63,7 @@ Tells the view to show the user the dialog for an algorithm
 * @return : Result of the execution
 */
 std::string
-ReflMainWindowPresenter::runPythonAlgorithm(const std::string &pythonCode) {
+MainWindowPresenter::runPythonAlgorithm(const std::string &pythonCode) {
   return m_view->runPythonAlgorithm(pythonCode);
 }
 } // namespace CustomInterfaces
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/MainWindowPresenter.h b/qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/MainWindowPresenter.h
new file mode 100644
index 00000000000..481fe20ccfc
--- /dev/null
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/MainWindowPresenter.h
@@ -0,0 +1,46 @@
+// Mantid Repository : https://github.com/mantidproject/mantid
+//
+// Copyright &copy; 2011 ISIS Rutherford Appleton Laboratory UKRI,
+//     NScD Oak Ridge National Laboratory, European Spallation Source
+//     & Institut Laue - Langevin
+// SPDX - License - Identifier: GPL - 3.0 +
+#ifndef MANTID_ISISREFLECTOMETRY_MAINWINDOWPRESENTER_H
+#define MANTID_ISISREFLECTOMETRY_MAINWINDOWPRESENTER_H
+
+#include "Common/DllConfig.h"
+#include "GUI/Batch/BatchPresenterFactory.h"
+#include "IMainWindowPresenter.h"
+#include <memory>
+
+namespace MantidQt {
+namespace CustomInterfaces {
+
+class IMainWindowView;
+
+/** @class MainWindowPresenter
+
+MainWindowPresenter is the concrete main window presenter implementing the
+functionality defined by the interface IMainWindowPresenter.
+*/
+class MANTIDQT_ISISREFLECTOMETRY_DLL MainWindowPresenter
+    : public IMainWindowPresenter {
+public:
+  /// Constructor
+  MainWindowPresenter(IMainWindowView *view,
+                          BatchPresenterFactory batchPresenterFactory);
+  /// Run a python algorithm
+  std::string runPythonAlgorithm(const std::string &pythonCode) override;
+  bool isProcessing() const override;
+  void notifyHelpPressed() override;
+  void notifyNewBatchRequested() override;
+  void notifyCloseBatchRequested(int batchIndex) override;
+
+private:
+  void showHelp();
+  IMainWindowView *m_view;
+  BatchPresenterFactory m_batchPresenterFactory;
+  std::vector<std::shared_ptr<IBatchPresenter>> m_batchPresenters;
+};
+} // namespace CustomInterfaces
+} // namespace MantidQt
+#endif /* MANTID_ISISREFLECTOMETRY_MAINWINDOWPRESENTER_H */
diff --git a/qt/scientific_interfaces/ISISReflectometry/QtReflMainWindowView.cpp b/qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/MainWindowView.cpp
similarity index 77%
rename from qt/scientific_interfaces/ISISReflectometry/QtReflMainWindowView.cpp
rename to qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/MainWindowView.cpp
index 84db9fe4846..09d4a70a09b 100644
--- a/qt/scientific_interfaces/ISISReflectometry/QtReflMainWindowView.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/MainWindowView.cpp
@@ -4,10 +4,10 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "QtReflMainWindowView.h"
-#include "IndexOf.h"
+#include "MainWindowView.h"
+#include "Common/IndexOf.h"
+#include "GUI/Batch/BatchView.h"
 #include "MantidKernel/make_unique.h"
-#include "QtReflBatchView.h"
 #include <QMessageBox>
 #include <QToolButton>
 
@@ -27,32 +27,32 @@ int getDefaultInstrumentIndex(std::vector<std::string> &instruments) {
 }
 } // namespace
 
-DECLARE_SUBWINDOW(QtReflMainWindowView)
+DECLARE_SUBWINDOW(MainWindowView)
 
-QtReflMainWindowView::QtReflMainWindowView(QWidget *parent)
+MainWindowView::MainWindowView(QWidget *parent)
     : UserSubWindow(parent), m_notifyee(NULL) {}
 
-IReflBatchView *QtReflMainWindowView::newBatch() {
+IBatchView *MainWindowView::newBatch() {
   auto index = m_ui.mainTabs->count();
-  auto *newTab = new QtReflBatchView(this);
+  auto *newTab = new BatchView(this);
   m_ui.mainTabs->addTab(newTab, QString("Batch ") + QString::number(index));
   m_batchViews.emplace_back(newTab);
   return newTab;
 }
 
-void QtReflMainWindowView::removeBatch(int batchIndex) {
+void MainWindowView::removeBatch(int batchIndex) {
   m_batchViews.erase(m_batchViews.begin() + batchIndex);
   m_ui.mainTabs->removeTab(batchIndex);
 }
 
-std::vector<IReflBatchView *> QtReflMainWindowView::batches() const {
+std::vector<IBatchView *> MainWindowView::batches() const {
   return m_batchViews;
 }
 
 /**
 Initialise the Interface
 */
-void QtReflMainWindowView::initLayout() {
+void MainWindowView::initLayout() {
   m_ui.setupUi(this);
   connect(m_ui.helpButton, SIGNAL(clicked()), this, SLOT(helpPressed()));
   connect(m_ui.mainTabs, SIGNAL(tabCloseRequested(int)), this,
@@ -80,33 +80,32 @@ void QtReflMainWindowView::initLayout() {
   auto makeExperimentPresenter = ExperimentPresenterFactory(thetaTolerance);
   auto makeInstrumentPresenter = InstrumentPresenterFactory();
 
-  auto makeReflBatchPresenter = ReflBatchPresenterFactory(
+  auto makeBatchPresenter = BatchPresenterFactory(
       std::move(makeRunsPresenter), std::move(makeEventPresenter),
       std::move(makeExperimentPresenter), std::move(makeInstrumentPresenter),
       std::move(makeSaveSettingsPresenter));
 
   // Create the presenter
-  m_presenter =
-      ReflMainWindowPresenter(this, std::move(makeReflBatchPresenter));
+  m_presenter = MainWindowPresenter(this, std::move(makeBatchPresenter));
   subscribe(&m_presenter.get());
 
   m_presenter.get().notifyNewBatchRequested();
   m_presenter.get().notifyNewBatchRequested();
 }
 
-void QtReflMainWindowView::onTabCloseRequested(int tabIndex) {
+void MainWindowView::onTabCloseRequested(int tabIndex) {
   m_ui.mainTabs->removeTab(tabIndex);
 }
 
-void QtReflMainWindowView::onNewBatchRequested(bool) {
+void MainWindowView::onNewBatchRequested(bool) {
   m_notifyee->notifyNewBatchRequested();
 }
 
-void QtReflMainWindowView::subscribe(ReflMainWindowSubscriber *notifyee) {
+void MainWindowView::subscribe(MainWindowSubscriber *notifyee) {
   m_notifyee = notifyee;
 }
 
-void QtReflMainWindowView::helpPressed() { m_notifyee->notifyHelpPressed(); }
+void MainWindowView::helpPressed() { m_notifyee->notifyHelpPressed(); }
 
 /**
 Runs python code
@@ -114,7 +113,7 @@ Runs python code
 * @return : Result of the execution
 */
 std::string
-QtReflMainWindowView::runPythonAlgorithm(const std::string &pythonCode) {
+MainWindowView::runPythonAlgorithm(const std::string &pythonCode) {
 
   QString output = runPythonCode(QString::fromStdString(pythonCode), false);
   return output.toStdString();
@@ -124,7 +123,7 @@ QtReflMainWindowView::runPythonAlgorithm(const std::string &pythonCode) {
 Handles attempt to close main window
 * @param event : [input] The close event
 */
-void QtReflMainWindowView::closeEvent(QCloseEvent *event) {
+void MainWindowView::closeEvent(QCloseEvent *event) {
   // Close only if reduction has been paused
   if (!m_presenter.get().isProcessing()) {
     event->accept();
@@ -133,14 +132,14 @@ void QtReflMainWindowView::closeEvent(QCloseEvent *event) {
   }
 }
 
-void QtReflMainWindowView::giveUserCritical(const std::string &prompt,
+void MainWindowView::giveUserCritical(const std::string &prompt,
                                             const std::string &title) {
   QMessageBox::critical(this, QString::fromStdString(title),
                         QString::fromStdString(prompt), QMessageBox::Ok,
                         QMessageBox::Ok);
 }
 
-void QtReflMainWindowView::giveUserInfo(const std::string &prompt,
+void MainWindowView::giveUserInfo(const std::string &prompt,
                                         const std::string &title) {
   QMessageBox::information(this, QString::fromStdString(title),
                            QString::fromStdString(prompt), QMessageBox::Ok,
diff --git a/qt/scientific_interfaces/ISISReflectometry/QtReflMainWindowView.h b/qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/MainWindowView.h
similarity index 54%
rename from qt/scientific_interfaces/ISISReflectometry/QtReflMainWindowView.h
rename to qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/MainWindowView.h
index e7b1853bf82..3e2250bdd91 100644
--- a/qt/scientific_interfaces/ISISReflectometry/QtReflMainWindowView.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/MainWindowView.h
@@ -4,43 +4,43 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#ifndef MANTID_ISISREFLECTOMETRY_QTREFLMAINWINDOWVIEW_H
-#define MANTID_ISISREFLECTOMETRY_QTREFLMAINWINDOWVIEW_H
+#ifndef MANTID_ISISREFLECTOMETRY_MAINWINDOWVIEW_H
+#define MANTID_ISISREFLECTOMETRY_MAINWINDOWVIEW_H
 
-#include "IReflMainWindowPresenter.h"
-#include "IReflMainWindowView.h"
-#include "IReflMessageHandler.h"
+#include "Common/IMessageHandler.h"
+#include "IMainWindowPresenter.h"
+#include "IMainWindowView.h"
+#include "MainWindowPresenter.h"
 #include "MantidQtWidgets/Common/UserSubWindow.h"
-#include "ReflMainWindowPresenter.h"
-#include "ui_ReflMainWindowWidget.h"
+#include "ui_MainWindowWidget.h"
 
 #include <QCloseEvent>
 
 namespace MantidQt {
 namespace CustomInterfaces {
 
-/** @class ReflMainWindowView
+/** @class MainWindowView
 
-ReflMainWindowView is the concrete main window view implementing the
-functionality defined by the interface IReflMainWindowView
+MainWindowView is the concrete main window view implementing the
+functionality defined by the interface IMainWindowView
 */
-class QtReflMainWindowView : public MantidQt::API::UserSubWindow,
-                             public IReflMainWindowView,
-                             public IReflMessageHandler {
+class MainWindowView : public MantidQt::API::UserSubWindow,
+                       public IMainWindowView,
+                       public IMessageHandler {
   Q_OBJECT
 public:
-  explicit QtReflMainWindowView(QWidget *parent = nullptr);
-  void subscribe(ReflMainWindowSubscriber *notifyee) override;
+  explicit MainWindowView(QWidget *parent = nullptr);
+  void subscribe(MainWindowSubscriber *notifyee) override;
 
   static std::string name() { return "ISIS Reflectometry"; }
   static QString categoryInfo() { return "Reflectometry"; }
   std::string runPythonAlgorithm(const std::string &pythonCode) override;
 
-  virtual std::vector<IReflBatchView *> batches() const override;
+  virtual std::vector<IBatchView *> batches() const override;
 
   void closeEvent(QCloseEvent *event) override;
 
-  IReflBatchView *newBatch() override;
+  IBatchView *newBatch() override;
   void removeBatch(int batchIndex) override;
 
   void giveUserCritical(const std::string &prompt,
@@ -57,12 +57,12 @@ private:
   /// Initializes the interface
   void initLayout() override;
   /// Interface definition with widgets for the main interface window
-  Ui::ReflMainWindowWidget m_ui;
+  Ui::MainWindowWidget m_ui;
   /// The presenter handling this view
-  ReflMainWindowSubscriber *m_notifyee;
-  boost::optional<ReflMainWindowPresenter> m_presenter;
-  std::vector<IReflBatchView *> m_batchViews;
+  MainWindowSubscriber *m_notifyee;
+  boost::optional<MainWindowPresenter> m_presenter;
+  std::vector<IBatchView *> m_batchViews;
 };
 } // namespace CustomInterfaces
 } // namespace MantidQt
-#endif /* MANTID_ISISREFLECTOMETRY_QTREFLMAINWINDOWVIEW_H */
+#endif /* MANTID_ISISREFLECTOMETRY_MAINWINDOWVIEW_H */
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflMainWindowWidget.ui b/qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/MainWindowWidget.ui
similarity index 95%
rename from qt/scientific_interfaces/ISISReflectometry/ReflMainWindowWidget.ui
rename to qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/MainWindowWidget.ui
index 16352054b48..19857773ac2 100644
--- a/qt/scientific_interfaces/ISISReflectometry/ReflMainWindowWidget.ui
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/MainWindow/MainWindowWidget.ui
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <ui version="4.0">
- <class>ReflMainWindowWidget</class>
- <widget class="QMainWindow" name="ReflMainWindowWidget">
+ <class>MainWindowWidget</class>
+ <widget class="QMainWindow" name="MainWindowWidget">
   <property name="geometry">
    <rect>
     <x>0</x>
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/CMakeLists.txt b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/CMakeLists.txt
index b13956dcea6..cff44ade0b0 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/CMakeLists.txt
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/CMakeLists.txt
@@ -1,6 +1,9 @@
 set ( RUNS_SRC_FILES
     RunsPresenter.cpp
     RunsView.cpp
+    ReflCatalogSearcher.cpp
+    ReflAutoreduction.cpp
+    ReflSearchModel.cpp
 )
 
 # Include files aren't required, but this makes them appear in Visual Studio
@@ -11,10 +14,16 @@ set ( RUNS_INC_FILES
     RunsPresenter.h
     RunsPresenterFactory.h
     RunsView.h
+    IReflAutoreduction.h
+    IReflSearcher.h
+    ReflAutoreduction.h
+    ReflCatalogSearcher.h
+    ReflSearchModel.h
 )
 
 set ( RUNS_MOC_FILES
     RunsView.h
+    ReflSearchModel.h
 )
 
 set ( RUNS_UI_FILES
diff --git a/qt/scientific_interfaces/ISISReflectometry/IReflAutoreduction.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/IReflAutoreduction.h
similarity index 97%
rename from qt/scientific_interfaces/ISISReflectometry/IReflAutoreduction.h
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Runs/IReflAutoreduction.h
index e9b00773ff5..75d3a7e6ce5 100644
--- a/qt/scientific_interfaces/ISISReflectometry/IReflAutoreduction.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/IReflAutoreduction.h
@@ -7,7 +7,7 @@
 #ifndef MANTID_ISISREFLECTOMETRY_IREFLAUTOREDUCTION_H
 #define MANTID_ISISREFLECTOMETRY_IREFLAUTOREDUCTION_H
 
-#include "DllConfig.h"
+#include "Common/DllConfig.h"
 #include <string>
 
 namespace MantidQt {
diff --git a/qt/scientific_interfaces/ISISReflectometry/IReflSearcher.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/IReflSearcher.h
similarity index 100%
rename from qt/scientific_interfaces/ISISReflectometry/IReflSearcher.h
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Runs/IReflSearcher.h
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/IRunsPresenter.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/IRunsPresenter.h
index 83ad2767f53..e25f6c5ebfe 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/IRunsPresenter.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/IRunsPresenter.h
@@ -12,7 +12,7 @@
 namespace MantidQt {
 namespace CustomInterfaces {
 
-class IReflBatchPresenter;
+class IBatchPresenter;
 
 /** @class IRunsPresenter
 
@@ -22,7 +22,7 @@ reflectometry interface presenter needs to support.
 class IRunsPresenter {
 public:
   virtual ~IRunsPresenter() = default;
-  virtual void acceptMainPresenter(IReflBatchPresenter *mainPresenter) = 0;
+  virtual void acceptMainPresenter(IBatchPresenter *mainPresenter) = 0;
 
   virtual void notifyInstrumentChanged(std::string const &instrumentName) = 0;
   virtual void notifyReductionResumed() = 0;
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/IRunsView.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/IRunsView.h
index b0b4f0bab72..b5f9a9fe3d0 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/IRunsView.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/IRunsView.h
@@ -7,7 +7,7 @@
 #ifndef MANTID_ISISREFLECTOMETRY_IRUNSVIEW_H
 #define MANTID_ISISREFLECTOMETRY_IRUNSVIEW_H
 
-#include "DllConfig.h"
+#include "Common/DllConfig.h"
 #include "GUI/RunsTable/IRunsTableView.h"
 #include "MantidQtWidgets/Common/ProgressableView.h"
 #include <boost/shared_ptr.hpp>
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflAutoreduction.cpp b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/ReflAutoreduction.cpp
similarity index 98%
rename from qt/scientific_interfaces/ISISReflectometry/ReflAutoreduction.cpp
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Runs/ReflAutoreduction.cpp
index 62ebb079d20..bbd06147c0c 100644
--- a/qt/scientific_interfaces/ISISReflectometry/ReflAutoreduction.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/ReflAutoreduction.cpp
@@ -7,7 +7,6 @@
 #include "ReflAutoreduction.h"
 #include "GUI/Runs/IRunsView.h"
 #include "GUI/Runs/RunsPresenter.h"
-#include "IReflMainWindowPresenter.h"
 
 namespace MantidQt {
 namespace CustomInterfaces {
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflAutoreduction.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/ReflAutoreduction.h
similarity index 97%
rename from qt/scientific_interfaces/ISISReflectometry/ReflAutoreduction.h
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Runs/ReflAutoreduction.h
index 197f972e112..c92585ee3c8 100644
--- a/qt/scientific_interfaces/ISISReflectometry/ReflAutoreduction.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/ReflAutoreduction.h
@@ -7,7 +7,7 @@
 #ifndef MANTID_ISISREFLECTOMETRY_REFLAUTOREDUCTION_H
 #define MANTID_ISISREFLECTOMETRY_REFLAUTOREDUCTION_H
 
-#include "DllConfig.h"
+#include "Common/DllConfig.h"
 #include "IReflAutoreduction.h"
 #include <string>
 
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflCatalogSearcher.cpp b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/ReflCatalogSearcher.cpp
similarity index 100%
rename from qt/scientific_interfaces/ISISReflectometry/ReflCatalogSearcher.cpp
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Runs/ReflCatalogSearcher.cpp
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflCatalogSearcher.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/ReflCatalogSearcher.h
similarity index 100%
rename from qt/scientific_interfaces/ISISReflectometry/ReflCatalogSearcher.h
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Runs/ReflCatalogSearcher.h
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflSearchModel.cpp b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/ReflSearchModel.cpp
similarity index 100%
rename from qt/scientific_interfaces/ISISReflectometry/ReflSearchModel.cpp
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Runs/ReflSearchModel.cpp
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflSearchModel.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/ReflSearchModel.h
similarity index 98%
rename from qt/scientific_interfaces/ISISReflectometry/ReflSearchModel.h
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Runs/ReflSearchModel.h
index ca4eb928d41..2ce04256d7d 100644
--- a/qt/scientific_interfaces/ISISReflectometry/ReflSearchModel.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/ReflSearchModel.h
@@ -7,7 +7,7 @@
 #ifndef MANTID_ISISREFLECTOMETRY_REFLSEARCHMODEL_H_
 #define MANTID_ISISREFLECTOMETRY_REFLSEARCHMODEL_H_
 
-#include "DllConfig.h"
+#include "Common/DllConfig.h"
 #include "MantidAPI/ITableWorkspace_fwd.h"
 #include "SearchResult.h"
 #include <QAbstractTableModel>
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/RunsPresenter.cpp b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/RunsPresenter.cpp
index cd462cede41..2333811eca0 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/RunsPresenter.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/RunsPresenter.cpp
@@ -5,10 +5,9 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "RunsPresenter.h"
-#include "../../IReflBatchPresenter.h"
-#include "../RunsTable/RunsTablePresenter.h"
-#include "IReflMainWindowPresenter.h"
-#include "IReflMessageHandler.h"
+#include "Common/IMessageHandler.h"
+#include "GUI/Batch/IBatchPresenter.h"
+#include "GUI/RunsTable/RunsTablePresenter.h"
 #include "IRunsView.h"
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/CatalogManager.h"
@@ -24,8 +23,6 @@
 #include "MantidQtWidgets/Common/ProgressPresenter.h"
 #include "ReflAutoreduction.h"
 #include "ReflCatalogSearcher.h"
-#include "ReflFromStdStringMap.h"
-#include "ReflNexusMeasurementItemSource.h"
 #include "ReflSearchModel.h"
 
 #include <QStringList>
@@ -65,7 +62,7 @@ RunsPresenter::RunsPresenter(
     IRunsView *mainView, ProgressableView *progressableView,
     RunsTablePresenterFactory makeRunsTablePresenter, double thetaTolerance,
     std::vector<std::string> const &instruments, int defaultInstrumentIndex,
-    IReflMessageHandler *messageHandler,
+    IMessageHandler *messageHandler,
     boost::shared_ptr<IReflAutoreduction> autoreduction,
     boost::shared_ptr<IReflSearcher> searcher)
     : m_autoreduction(autoreduction), m_view(mainView),
@@ -99,7 +96,7 @@ RunsPresenter::~RunsPresenter() {
 /** Accept a main presenter
  * @param mainPresenter :: [input] A main presenter
  */
-void RunsPresenter::acceptMainPresenter(IReflBatchPresenter *mainPresenter) {
+void RunsPresenter::acceptMainPresenter(IBatchPresenter *mainPresenter) {
   m_mainPresenter = mainPresenter;
   // Must do this after setting main presenter or notifications don't get
   // through
@@ -116,7 +113,7 @@ void RunsPresenter::acceptMainPresenter(IReflBatchPresenter *mainPresenter) {
 }
 
 /**
-Used by the view to tell the presenter something has changed
+   Used by the view to tell the presenter something has changed
 */
 
 void RunsPresenter::notifySearch() {
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/RunsPresenter.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/RunsPresenter.h
index 0fb0f697187..6073c35480a 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/RunsPresenter.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/RunsPresenter.h
@@ -7,7 +7,7 @@
 #ifndef MANTID_ISISREFLECTOMETRY_RUNSPRESENTER_H
 #define MANTID_ISISREFLECTOMETRY_RUNSPRESENTER_H
 
-#include "DllConfig.h"
+#include "Common/DllConfig.h"
 #include "GUI/Runs/IRunsPresenter.h"
 #include "GUI/Runs/IRunsView.h"
 #include "GUI/RunsTable/IRunsTablePresenter.h"
@@ -30,7 +30,7 @@ namespace CustomInterfaces {
 
 // Forward decs
 class IReflAutoreduction;
-class IReflMessageHandler;
+class IMessageHandler;
 class IReflSearcher;
 class ReflSearchModel;
 
@@ -56,7 +56,7 @@ public:
                 RunsTablePresenterFactory makeRunsTablePresenter,
                 double thetaTolerance,
                 std::vector<std::string> const &instruments,
-                int defaultInstrumentIndex, IReflMessageHandler *messageHandler,
+                int defaultInstrumentIndex, IMessageHandler *messageHandler,
                 boost::shared_ptr<IReflAutoreduction> autoreduction =
                     boost::shared_ptr<IReflAutoreduction>(),
                 boost::shared_ptr<IReflSearcher> searcher =
@@ -69,7 +69,7 @@ public:
   RunsPresenter &operator=(RunsPresenter &&) = default;
 
   // IRunsPresenter overrides
-  void acceptMainPresenter(IReflBatchPresenter *mainPresenter) override;
+  void acceptMainPresenter(IBatchPresenter *mainPresenter) override;
   bool isProcessing() const override;
   bool isAutoreducing() const override;
   void notifyInstrumentChanged(std::string const &instrumentName) override;
@@ -112,9 +112,9 @@ private:
   /// The data processor presenters stored in a vector
   std::unique_ptr<IRunsTablePresenter> m_tablePresenter;
   /// The main presenter
-  IReflBatchPresenter *m_mainPresenter;
+  IBatchPresenter *m_mainPresenter;
   /// The message reporting implementation
-  IReflMessageHandler *m_messageHandler;
+  IMessageHandler *m_messageHandler;
   /// The search implementation
   boost::shared_ptr<IReflSearcher> m_searcher;
   /// The list of instruments
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/RunsPresenterFactory.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/RunsPresenterFactory.h
index fd65d3dd843..4ce9bb85d20 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/RunsPresenterFactory.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/RunsPresenterFactory.h
@@ -8,7 +8,7 @@
 #define MANTID_ISISREFLECTOMETRY_RUNSPRESENTERFACTORY_H
 #include "../General/IReflSearcher.h"
 #include "../RunsTable/RunsTablePresenterFactory.h"
-#include "DllConfig.h"
+#include "Common/DllConfig.h"
 #include "IRunsPresenter.h"
 #include "IRunsView.h"
 #include "MantidQtWidgets/Common/ProgressableView.h"
@@ -25,7 +25,7 @@ public:
                        // cppcheck-suppress passedByValue
                        std::vector<std::string> instruments,
                        int defaultInstrumentIndex,
-                       IReflMessageHandler *messageHandler,
+                       IMessageHandler *messageHandler,
                        boost::shared_ptr<IReflAutoreduction> autoreduction,
                        boost::shared_ptr<IReflSearcher> searcher)
       : m_runsTablePresenterFactory(std::move(runsTablePresenterFactory)),
@@ -48,7 +48,7 @@ private:
   double m_thetaTolerance;
   std::vector<std::string> m_instruments;
   int m_defaultInstrumentIndex;
-  IReflMessageHandler *m_messageHandler;
+  IMessageHandler *m_messageHandler;
   boost::shared_ptr<IReflAutoreduction> m_autoreduction;
   boost::shared_ptr<IReflSearcher> m_searcher;
 };
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/RunsView.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/RunsView.h
index bda66b1e8ca..406844d4269 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/RunsView.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/RunsView.h
@@ -7,7 +7,7 @@
 #ifndef MANTID_ISISREFLECTOMETRY_RUNSTABVIEW_H_
 #define MANTID_ISISREFLECTOMETRY_RUNSTABVIEW_H_
 
-#include "DllConfig.h"
+#include "Common/DllConfig.h"
 #include "GUI/RunsTable/RunsTableView.h"
 #include "IRunsView.h"
 #include "MantidKernel/System.h"
diff --git a/qt/scientific_interfaces/ISISReflectometry/SearchResult.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Runs/SearchResult.h
similarity index 100%
rename from qt/scientific_interfaces/ISISReflectometry/SearchResult.h
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Runs/SearchResult.h
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/IRunsTablePresenter.h b/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/IRunsTablePresenter.h
index ad0e1ca0bdd..e880ae663bf 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/IRunsTablePresenter.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/IRunsTablePresenter.h
@@ -7,7 +7,7 @@
 #ifndef MANTID_ISISREFLECTOMETRY_IREFLRUNSTABLEPRESENTER_H
 #define MANTID_ISISREFLECTOMETRY_IREFLRUNSTABLEPRESENTER_H
 
-#include "IReflBatchPresenter.h"
+#include "GUI/Batch/IBatchPresenter.h"
 #include "MantidQtWidgets/Common/DataProcessorUI/OptionsMap.h"
 
 namespace MantidQt {
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/IRunsTableView.h b/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/IRunsTableView.h
index 3aee16a4be8..77b660bbd4e 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/IRunsTableView.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/IRunsTableView.h
@@ -7,7 +7,7 @@
 
 #ifndef MANTID_CUSTOMINTERFACES_IBATCHVIEW_H_
 #define MANTID_CUSTOMINTERFACES_IBATCHVIEW_H_
-#include "../../DllConfig.h"
+#include "Common/DllConfig.h"
 #include "MantidQtWidgets/Common/Batch/IJobTreeView.h"
 
 namespace MantidQt {
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/JobsViewUpdater.h b/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/JobsViewUpdater.h
index e917d8e018b..ef747a38a68 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/JobsViewUpdater.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/JobsViewUpdater.h
@@ -9,7 +9,7 @@
 #define MANTID_ISISREFLECTOMETRY_JOBVIEWUPDATER_H
 #include "MantidQtWidgets/Common/Batch/IJobTreeView.h"
 #include "MantidQtWidgets/Common/ParseKeyValueString.h"
-#include "Map.h"
+#include "Common/Map.h"
 #include "Reduction/Group.h"
 
 namespace MantidQt {
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RowLocation.cpp b/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RowLocation.cpp
index 4a4eaf732a1..9c45f760a40 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RowLocation.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RowLocation.cpp
@@ -5,7 +5,7 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "RowLocation.h"
-#include "Map.h"
+#include "Common/Map.h"
 #include <algorithm>
 
 namespace MantidQt {
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RunsTablePresenter.cpp b/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RunsTablePresenter.cpp
index 404636438f5..1d962c73e64 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RunsTablePresenter.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RunsTablePresenter.cpp
@@ -5,9 +5,9 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "RunsTablePresenter.h"
+#include "Common/Map.h"
 #include "MantidQtWidgets/Common/Batch/RowLocation.h"
 #include "MantidQtWidgets/Common/Batch/RowPredicate.h"
-#include "Map.h"
 #include "Reduction/Group.h"
 #include "Reduction/ValidateRow.h"
 #include "RegexRowFilter.h"
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RunsTablePresenter.h b/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RunsTablePresenter.h
index 1e584cf13b9..c540a8f79dd 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RunsTablePresenter.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RunsTablePresenter.h
@@ -8,7 +8,7 @@
 #ifndef MANTID_CUSTOMINTERFACES_RUNSTABLEPRESENTER_H_
 #define MANTID_CUSTOMINTERFACES_RUNSTABLEPRESENTER_H_
 #include "../Runs/IRunsPresenter.h"
-#include "DllConfig.h"
+#include "Common/DllConfig.h"
 #include "IRunsTablePresenter.h"
 #include "IRunsTableView.h"
 #include "JobsViewUpdater.h"
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RunsTablePresenterFactory.h b/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RunsTablePresenterFactory.h
index d8f513bcc26..4e7524b195d 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RunsTablePresenterFactory.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RunsTablePresenterFactory.h
@@ -7,7 +7,7 @@
 
 #ifndef MANTID_CUSTOMINTERFACES_BATCHPRESENTERFACTORY_H_
 #define MANTID_CUSTOMINTERFACES_BATCHPRESENTERFACTORY_H_
-#include "DllConfig.h"
+#include "Common/DllConfig.h"
 #include "IRunsTablePresenter.h"
 #include <memory>
 #include <string>
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RunsTableView.cpp b/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RunsTableView.cpp
index 99f522fce1f..d92d3a31902 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RunsTableView.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RunsTableView.cpp
@@ -5,7 +5,7 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "RunsTableView.h"
-#include "../../IndexOf.h"
+#include "Common/IndexOf.h"
 #include "MantidKernel/ConfigService.h"
 #include "MantidKernel/make_unique.h"
 #include "MantidQtWidgets/Common/AlgorithmHintStrategy.h"
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RunsTableView.h b/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RunsTableView.h
index c88d8c958bf..c613dd26ff0 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RunsTableView.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/RunsTable/RunsTableView.h
@@ -7,7 +7,7 @@
 
 #ifndef MANTID_CUSTOMINTERFACES_RUNSTABLEVIEW_H_
 #define MANTID_CUSTOMINTERFACES_RUNSTABLEVIEW_H_
-#include "DllConfig.h"
+#include "Common/DllConfig.h"
 #include "IRunsTableView.h"
 #include "MantidQtWidgets/Common/Batch/JobTreeView.h"
 #include "ui_RunsTableView.h"
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Save/CMakeLists.txt b/qt/scientific_interfaces/ISISReflectometry/GUI/Save/CMakeLists.txt
index 2e0c7a4d02b..4a23d55aae0 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Save/CMakeLists.txt
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Save/CMakeLists.txt
@@ -1,6 +1,8 @@
 set ( SAVE_SRC_FILES
     SavePresenter.cpp
     SaveView.cpp
+    ReflAsciiSaver.cpp
+    IReflAsciiSaver.cpp
 )
 
 # Include files aren't required, but this makes them appear in Visual Studio
@@ -11,6 +13,8 @@ set ( SAVE_INC_FILES
     ISaveView.h
     SaveView.h
     SavePresenterFactory.h
+    ReflAsciiSaver.h
+    IReflAsciiSaver.h
 )
 
 set ( SAVE_MOC_FILES
diff --git a/qt/scientific_interfaces/ISISReflectometry/IReflAsciiSaver.cpp b/qt/scientific_interfaces/ISISReflectometry/GUI/Save/IReflAsciiSaver.cpp
similarity index 100%
rename from qt/scientific_interfaces/ISISReflectometry/IReflAsciiSaver.cpp
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Save/IReflAsciiSaver.cpp
diff --git a/qt/scientific_interfaces/ISISReflectometry/IReflAsciiSaver.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Save/IReflAsciiSaver.h
similarity index 98%
rename from qt/scientific_interfaces/ISISReflectometry/IReflAsciiSaver.h
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Save/IReflAsciiSaver.h
index b02c84d0c80..3f6ce3ca223 100644
--- a/qt/scientific_interfaces/ISISReflectometry/IReflAsciiSaver.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Save/IReflAsciiSaver.h
@@ -6,7 +6,7 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #ifndef MANTID_ISISREFLECTOMETRY_IREFLASCIISAVER_H
 #define MANTID_ISISREFLECTOMETRY_IREFLASCIISAVER_H
-#include "DllConfig.h"
+#include "Common/DllConfig.h"
 #include "MantidAPI/IAlgorithm_fwd.h"
 #include "MantidAPI/MatrixWorkspace_fwd.h"
 #include <string>
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Save/ISavePresenter.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Save/ISavePresenter.h
index fde3b86fec8..ec848344cf7 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Save/ISavePresenter.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Save/ISavePresenter.h
@@ -11,7 +11,7 @@
 namespace MantidQt {
 namespace CustomInterfaces {
 
-class IReflBatchPresenter;
+class IBatchPresenter;
 
 /** @class ISavePresenter
 
@@ -22,7 +22,7 @@ class ISavePresenter {
 public:
   virtual ~ISavePresenter() = default;
 
-  virtual void acceptMainPresenter(IReflBatchPresenter *mainPresenter) = 0;
+  virtual void acceptMainPresenter(IBatchPresenter *mainPresenter) = 0;
 
   virtual void reductionCompletedForGroup(
       MantidWidgets::DataProcessor::GroupData const &group,
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Save/ISaveView.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Save/ISaveView.h
index 6b6d5884f70..70b71524827 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Save/ISaveView.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Save/ISaveView.h
@@ -7,7 +7,7 @@
 #ifndef MANTID_ISISREFLECTOMETRY_ISAVEVIEW_H
 #define MANTID_ISISREFLECTOMETRY_ISAVEVIEW_H
 
-#include "../../DllConfig.h"
+#include "Common/DllConfig.h"
 #include <string>
 #include <vector>
 
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflAsciiSaver.cpp b/qt/scientific_interfaces/ISISReflectometry/GUI/Save/ReflAsciiSaver.cpp
similarity index 100%
rename from qt/scientific_interfaces/ISISReflectometry/ReflAsciiSaver.cpp
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Save/ReflAsciiSaver.cpp
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflAsciiSaver.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Save/ReflAsciiSaver.h
similarity index 100%
rename from qt/scientific_interfaces/ISISReflectometry/ReflAsciiSaver.h
rename to qt/scientific_interfaces/ISISReflectometry/GUI/Save/ReflAsciiSaver.h
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Save/SavePresenter.cpp b/qt/scientific_interfaces/ISISReflectometry/GUI/Save/SavePresenter.cpp
index 3f2807bc10c..60ccf5dbac6 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Save/SavePresenter.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Save/SavePresenter.cpp
@@ -5,8 +5,7 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "SavePresenter.h"
-#include "../../IReflBatchPresenter.h"
-#include "../../IReflMainWindowPresenter.h"
+#include "GUI/Batch/IBatchPresenter.h"
 #include "ISaveView.h"
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/FrameworkManager.h"
@@ -36,7 +35,7 @@ SavePresenter::SavePresenter(ISaveView *view,
   m_view->subscribe(this);
 }
 
-void SavePresenter::acceptMainPresenter(IReflBatchPresenter *mainPresenter) {
+void SavePresenter::acceptMainPresenter(IBatchPresenter *mainPresenter) {
   m_mainPresenter = mainPresenter;
 }
 
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Save/SavePresenter.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Save/SavePresenter.h
index 326725b0859..62da9260a85 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Save/SavePresenter.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Save/SavePresenter.h
@@ -7,8 +7,8 @@
 #ifndef MANTID_CUSTOMINTERFACES_SAVEPRESENTER_H
 #define MANTID_CUSTOMINTERFACES_SAVEPRESENTER_H
 
-#include "../../DllConfig.h"
-#include "../../IReflAsciiSaver.h"
+#include "Common/DllConfig.h"
+#include "IReflAsciiSaver.h"
 #include "ISavePresenter.h"
 #include "ISaveView.h"
 #include "MantidKernel/ConfigPropertyObserver.h"
@@ -22,15 +22,15 @@ namespace CustomInterfaces {
 
 /** @class SavePresenter
 
-SavePresenter is a presenter class for the tab 'Save ASCII' in the
-ISIS Reflectometry Interface.
+    SavePresenter is a presenter class for the tab 'Save ASCII' in the
+    ISIS Reflectometry Interface.
 */
 class MANTIDQT_ISISREFLECTOMETRY_DLL SavePresenter : public ISavePresenter,
                                                      public SaveViewSubscriber {
 public:
   SavePresenter(ISaveView *view, std::unique_ptr<IReflAsciiSaver> saver);
 
-  void acceptMainPresenter(IReflBatchPresenter *mainPresenter) override;
+  void acceptMainPresenter(IBatchPresenter *mainPresenter) override;
   void notifyPopulateWorkspaceList() override;
   void notifyFilterWorkspaceList() override;
   void notifyPopulateParametersList() override;
@@ -52,7 +52,7 @@ public:
   void autoreductionResumed() override;
 
 private:
-  IReflBatchPresenter *m_mainPresenter;
+  IBatchPresenter *m_mainPresenter;
   bool isValidSaveDirectory(std::string const &directory);
   void onSavePathChanged();
   void warnInvalidSaveDirectory();
diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Save/SavePresenterFactory.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Save/SavePresenterFactory.h
index 619f68c6b11..c744a086445 100644
--- a/qt/scientific_interfaces/ISISReflectometry/GUI/Save/SavePresenterFactory.h
+++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Save/SavePresenterFactory.h
@@ -6,10 +6,10 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #ifndef MANTID_ISISREFLECTOMETRY_SAVEPRESENTERFACTORY_H
 #define MANTID_ISISREFLECTOMETRY_SAVEPRESENTERFACTORY_H
-#include "../../DllConfig.h"
-#include "../../ReflAsciiSaver.h"
+#include "Common/DllConfig.h"
 #include "ISavePresenter.h"
 #include "ISaveView.h"
+#include "ReflAsciiSaver.h"
 #include "SavePresenter.h"
 #include <memory>
 
diff --git a/qt/scientific_interfaces/ISISReflectometry/MeasurementItem.cpp b/qt/scientific_interfaces/ISISReflectometry/MeasurementItem.cpp
deleted file mode 100644
index 00fb6250511..00000000000
--- a/qt/scientific_interfaces/ISISReflectometry/MeasurementItem.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-// Mantid Repository : https://github.com/mantidproject/mantid
-//
-// Copyright &copy; 2018 ISIS Rutherford Appleton Laboratory UKRI,
-//     NScD Oak Ridge National Laboratory, European Spallation Source
-//     & Institut Laue - Langevin
-// SPDX - License - Identifier: GPL - 3.0 +
-#include "MeasurementItem.h"
-#include <sstream>
-#include <string>
-
-namespace MantidQt {
-namespace CustomInterfaces {
-
-/**
- * Constructor
- * @param measurementItemId
- * @param subId
- * @param label
- * @param type
- * @param angle
- * @param run
- * @param title
- */
-MeasurementItem::MeasurementItem(
-    const MeasurementItem::IDType &measurementItemId,
-    const MeasurementItem::IDType &subId, const std::string &label,
-    const std::string &type, const double angle, const std::string &run,
-    const std::string &title)
-    : m_measurementItemId(measurementItemId), m_subId(subId), m_label(label),
-      m_type(type), m_angle(angle), m_run(run), m_title(title) {
-
-  std::string accumulatedProblems;
-  if (m_measurementItemId.empty()) {
-    accumulatedProblems += "No measurement id. ";
-  } else if (m_subId.empty()) {
-    accumulatedProblems += "No sub id. ";
-  } else if (m_run.empty()) {
-    accumulatedProblems += "No run";
-  }
-  m_whyUnuseable = accumulatedProblems;
-}
-
-/**
- * Constructor making an invalid Measurement
- */
-MeasurementItem::MeasurementItem(const std::string &why)
-    : m_angle(0), m_whyUnuseable(why) {}
-
-/**
- * Copy constructor
- * @param other
- */
-MeasurementItem::MeasurementItem(const MeasurementItem &other)
-    : m_measurementItemId(other.m_measurementItemId), m_subId(other.m_subId),
-      m_label(other.m_label), m_type(other.m_type), m_angle(other.m_angle),
-      m_run(other.m_run), m_title(other.m_title),
-      m_whyUnuseable(other.m_whyUnuseable) {}
-
-/// Destructor
-MeasurementItem::~MeasurementItem() {}
-
-/**
- * InvalidMeasurement static creational method
- * @return Invalid measurement
- */
-MeasurementItem
-MeasurementItem::InvalidMeasurementItem(const std::string &why) {
-  return MeasurementItem(why);
-}
-
-bool MeasurementItem::isUseable() const { return m_whyUnuseable.empty(); }
-
-MeasurementItem::IDType MeasurementItem::id() const {
-  return m_measurementItemId;
-}
-
-MeasurementItem::IDType MeasurementItem::subId() const { return m_subId; }
-
-std::string MeasurementItem::label() const { return m_label; }
-
-std::string MeasurementItem::type() const { return m_type; }
-
-double MeasurementItem::angle() const { return m_angle; }
-
-std::string MeasurementItem::run() const { return m_run; }
-
-std::string MeasurementItem::title() const { return m_title; }
-
-std::string MeasurementItem::angleStr() const {
-  std::stringstream buffer;
-  buffer << angle();
-  return buffer.str();
-}
-
-MeasurementItem &MeasurementItem::operator=(const MeasurementItem &other) {
-  if (&other != this) {
-    m_measurementItemId = other.id();
-    m_subId = other.subId();
-    m_label = other.label();
-    m_type = other.type();
-    m_angle = other.angle();
-    m_run = other.run();
-    m_whyUnuseable = other.whyUnuseable();
-  }
-  return *this;
-}
-
-std::string MeasurementItem::whyUnuseable() const { return m_whyUnuseable; }
-
-} // namespace CustomInterfaces
-} // namespace MantidQt
diff --git a/qt/scientific_interfaces/ISISReflectometry/MeasurementItem.h b/qt/scientific_interfaces/ISISReflectometry/MeasurementItem.h
deleted file mode 100644
index ffcc1a62338..00000000000
--- a/qt/scientific_interfaces/ISISReflectometry/MeasurementItem.h
+++ /dev/null
@@ -1,67 +0,0 @@
-// Mantid Repository : https://github.com/mantidproject/mantid
-//
-// Copyright &copy; 2015 ISIS Rutherford Appleton Laboratory UKRI,
-//     NScD Oak Ridge National Laboratory, European Spallation Source
-//     & Institut Laue - Langevin
-// SPDX - License - Identifier: GPL - 3.0 +
-#ifndef MANTIDQT_CUSTOMINTERFACES_MEASUREMENTITEM_H_
-#define MANTIDQT_CUSTOMINTERFACES_MEASUREMENTITEM_H_
-
-#include "DllConfig.h"
-#include <string>
-
-namespace MantidQt {
-namespace CustomInterfaces {
-
-/** Measurement : Immutable measurement type
- */
-class MANTIDQT_ISISREFLECTOMETRY_DLL MeasurementItem {
-
-public:
-  using IDType = std::string;
-
-  /// Constructor
-  MeasurementItem(const IDType &measurementItemId, const IDType &subId,
-                  const std::string &label, const std::string &type,
-                  const double angle, const std::string &run,
-                  const std::string &title);
-
-  /// Constructional method
-  static MeasurementItem InvalidMeasurementItem(const std::string &why);
-
-  /// Copy constructor
-  MeasurementItem(const MeasurementItem &other);
-
-  /// Destructor
-  ~MeasurementItem();
-
-  bool isUseable() const;
-  std::string whyUnuseable() const;
-  IDType id() const;
-  IDType subId() const;
-  std::string run() const;
-  std::string type() const;
-  std::string title() const;
-  std::string label() const;
-  double angle() const;
-  std::string angleStr() const;
-  MeasurementItem &operator=(const MeasurementItem &);
-
-private:
-  /// Constructor
-  MeasurementItem(const std::string &why);
-  IDType m_measurementItemId;
-  IDType m_subId;
-  std::string m_label;
-  std::string m_type;
-  double m_angle;
-  std::string m_run;
-  std::string m_title;
-  std::string m_whyUnuseable;
-  /// Not assignable
-};
-
-} // namespace CustomInterfaces
-} // namespace MantidQt
-
-#endif /* MANTIDQT_CUSTOMINTERFACES_MEASUREMENTITEM_H_ */
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/DetectorCorrections.h b/qt/scientific_interfaces/ISISReflectometry/Reduction/DetectorCorrections.h
index 8609138a5fa..0e5221a15f1 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/DetectorCorrections.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/DetectorCorrections.h
@@ -6,7 +6,7 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #ifndef MANTID_CUSTOMINTERFACES_DETECTORCORRECTIONS_H_
 #define MANTID_CUSTOMINTERFACES_DETECTORCORRECTIONS_H_
-#include "../DllConfig.h"
+#include "Common/DllConfig.h"
 namespace MantidQt {
 namespace CustomInterfaces {
 
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/Experiment.h b/qt/scientific_interfaces/ISISReflectometry/Reduction/Experiment.h
index 44718815661..0ce36c1a76c 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/Experiment.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/Experiment.h
@@ -7,7 +7,7 @@
 #ifndef MANTID_CUSTOMINTERFACES_EXPERIMENT_H_
 #define MANTID_CUSTOMINTERFACES_EXPERIMENT_H_
 
-#include "../DllConfig.h"
+#include "Common/DllConfig.h"
 #include "AnalysisMode.h"
 #include "FloodCorrections.h"
 #include "PerThetaDefaults.h"
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/FloodCorrections.h b/qt/scientific_interfaces/ISISReflectometry/Reduction/FloodCorrections.h
index 6b6e3c4e673..6c1eaa1e5fe 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/FloodCorrections.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/FloodCorrections.h
@@ -6,7 +6,7 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #ifndef MANTID_CUSTOMINTERFACES_FLOODCORRECTIONS_H_
 #define MANTID_CUSTOMINTERFACES_FLOODCORRECTIONS_H_
-#include "../DllConfig.h"
+#include "Common/DllConfig.h"
 #include <boost/optional.hpp>
 #include <string>
 namespace MantidQt {
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/Group.cpp b/qt/scientific_interfaces/ISISReflectometry/Reduction/Group.cpp
index f892c94663a..9c09f65e87c 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/Group.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/Group.cpp
@@ -5,8 +5,8 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "Group.h"
-#include "../IndexOf.h"
-#include "../Map.h"
+#include "Common/IndexOf.h"
+#include "Common/Map.h"
 #include "MantidQtWidgets/Common/Batch/AssertOrThrow.h"
 #include <cmath>
 
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/Group.h b/qt/scientific_interfaces/ISISReflectometry/Reduction/Group.h
index 186f8880775..dc164b0e2cf 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/Group.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/Group.h
@@ -7,7 +7,7 @@
 
 #ifndef MANTID_CUSTOMINTERFACES_GROUP_H_
 #define MANTID_CUSTOMINTERFACES_GROUP_H_
-#include "../DllConfig.h"
+#include "Common/DllConfig.h"
 #include "Row.h"
 #include <boost/optional.hpp>
 #include <string>
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/Instrument.h b/qt/scientific_interfaces/ISISReflectometry/Reduction/Instrument.h
index 317f5deb0a2..2c8fe28abfa 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/Instrument.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/Instrument.h
@@ -7,7 +7,7 @@
 #ifndef MANTID_CUSTOMINTERFACES_INSTRUMENT_H_
 #define MANTID_CUSTOMINTERFACES_INSTRUMENT_H_
 
-#include "../DllConfig.h"
+#include "Common/DllConfig.h"
 #include "DetectorCorrections.h"
 #include "MonitorCorrections.h"
 #include "RangeInLambda.h"
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/MonitorCorrections.h b/qt/scientific_interfaces/ISISReflectometry/Reduction/MonitorCorrections.h
index 23d8fc32582..171230b0f34 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/MonitorCorrections.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/MonitorCorrections.h
@@ -6,7 +6,7 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #ifndef MANTID_CUSTOMINTERFACES_MONITORCORRECTIONS_H_
 #define MANTID_CUSTOMINTERFACES_MONITORCORRECTIONS_H_
-#include "../DllConfig.h"
+#include "Common/DllConfig.h"
 #include "RangeInLambda.h"
 #include <boost/optional.hpp>
 namespace MantidQt {
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/ParseReflectometryStrings.cpp b/qt/scientific_interfaces/ISISReflectometry/Reduction/ParseReflectometryStrings.cpp
index e49ae684d1f..30fed488dee 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/ParseReflectometryStrings.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/ParseReflectometryStrings.cpp
@@ -5,7 +5,7 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "ParseReflectometryStrings.h"
-#include "../Parse.h"
+#include "Common/Parse.h"
 #include "AllInitialized.h"
 #include "MantidKernel/Strings.h"
 #include "MantidQtWidgets/Common/ParseKeyValueString.h"
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/ParseReflectometryStrings.h b/qt/scientific_interfaces/ISISReflectometry/Reduction/ParseReflectometryStrings.h
index 72914a92aac..fe5e97e929d 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/ParseReflectometryStrings.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/ParseReflectometryStrings.h
@@ -6,7 +6,7 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #ifndef MANTID_CUSTOMINTERFACES_PARSEREFLECTOMETRYSTRINGS_H_
 #define MANTID_CUSTOMINTERFACES_PARSEREFLECTOMETRYSTRINGS_H_
-#include "../DllConfig.h"
+#include "Common/DllConfig.h"
 #include "RangeInQ.h"
 #include "TransmissionRunPair.h"
 #include <boost/optional.hpp>
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/PerThetaDefaults.h b/qt/scientific_interfaces/ISISReflectometry/Reduction/PerThetaDefaults.h
index 014c298f8b4..f51e6d85c5b 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/PerThetaDefaults.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/PerThetaDefaults.h
@@ -6,7 +6,7 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #ifndef MANTID_CUSTOMINTERFACES_PERTHETADEFAULTS_H_
 #define MANTID_CUSTOMINTERFACES_PERTHETADEFAULTS_H_
-#include "../DllConfig.h"
+#include "Common/DllConfig.h"
 #include "ProcessingInstructions.h"
 #include "RangeInQ.h"
 #include <boost/optional.hpp>
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/PolarizationCorrections.h b/qt/scientific_interfaces/ISISReflectometry/Reduction/PolarizationCorrections.h
index 0d1e3ccc488..4b4e421adc3 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/PolarizationCorrections.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/PolarizationCorrections.h
@@ -6,7 +6,7 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #ifndef MANTID_CUSTOMINTERFACES_POLARIZATIONCORRECTIONS_H_
 #define MANTID_CUSTOMINTERFACES_POLARIZATIONCORRECTIONS_H_
-#include "../DllConfig.h"
+#include "Common/DllConfig.h"
 #include <boost/optional.hpp>
 #include <stdexcept>
 #include <string>
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/ProcessingInstructions.h b/qt/scientific_interfaces/ISISReflectometry/Reduction/ProcessingInstructions.h
index 285503cad73..0dbd272cffa 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/ProcessingInstructions.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/ProcessingInstructions.h
@@ -7,7 +7,7 @@
 #ifndef MANTID_CUSTOMINTERFACES_PROCESSINGINSTRUCTIONS_H_
 #define MANTID_CUSTOMINTERFACES_PROCESSINGINSTRUCTIONS_H_
 
-#include "../DllConfig.h"
+#include "Common/DllConfig.h"
 #include <boost/optional.hpp>
 namespace MantidQt {
 namespace CustomInterfaces {
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/RangeInLambda.h b/qt/scientific_interfaces/ISISReflectometry/Reduction/RangeInLambda.h
index f5480342594..315d54e036d 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/RangeInLambda.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/RangeInLambda.h
@@ -6,7 +6,7 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #ifndef MANTID_CUSTOMINTERFACES_RANGEINLAMBDA_H_
 #define MANTID_CUSTOMINTERFACES_RANGEINLAMBDA_H_
-#include "../DllConfig.h"
+#include "Common/DllConfig.h"
 namespace MantidQt {
 namespace CustomInterfaces {
 
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/RangeInQ.h b/qt/scientific_interfaces/ISISReflectometry/Reduction/RangeInQ.h
index 581cb683e9c..1c3928c1963 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/RangeInQ.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/RangeInQ.h
@@ -6,7 +6,7 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #ifndef MANTID_CUSTOMINTERFACES_RANGEINQ_H_
 #define MANTID_CUSTOMINTERFACES_RANGEINQ_H_
-#include "../DllConfig.h"
+#include "Common/DllConfig.h"
 #include <boost/optional.hpp>
 
 namespace MantidQt {
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/ReductionJobs.cpp b/qt/scientific_interfaces/ISISReflectometry/Reduction/ReductionJobs.cpp
index 4dc1d5e3d4e..2fa1a768efe 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/ReductionJobs.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/ReductionJobs.cpp
@@ -5,8 +5,8 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "ReductionJobs.h"
-#include "../IndexOf.h"
-#include "../Map.h"
+#include "Common/IndexOf.h"
+#include "Common/Map.h"
 #include "MantidQtWidgets/Common/Batch/AssertOrThrow.h"
 #include <iostream>
 namespace MantidQt {
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/ReductionJobs.h b/qt/scientific_interfaces/ISISReflectometry/Reduction/ReductionJobs.h
index 2ebacb2eff9..7e0f26af5ad 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/ReductionJobs.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/ReductionJobs.h
@@ -7,7 +7,7 @@
 
 #ifndef MANTID_CUSTOMINTERFACES_REDUCTIONJOBS_H_
 #define MANTID_CUSTOMINTERFACES_REDUCTIONJOBS_H_
-#include "../DllConfig.h"
+#include "Common/DllConfig.h"
 #include <boost/optional.hpp>
 
 #include "Group.h"
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/ReductionType.h b/qt/scientific_interfaces/ISISReflectometry/Reduction/ReductionType.h
index 780a614dc19..efd11fc1149 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/ReductionType.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/ReductionType.h
@@ -6,7 +6,7 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #ifndef MANTID_CUSTOMINTERFACES_REDUCTIONTYPE_H_
 #define MANTID_CUSTOMINTERFACES_REDUCTIONTYPE_H_
-#include "../DllConfig.h"
+#include "Common/DllConfig.h"
 #include <boost/optional.hpp>
 namespace MantidQt {
 namespace CustomInterfaces {
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/ReductionWorkspaces.cpp b/qt/scientific_interfaces/ISISReflectometry/Reduction/ReductionWorkspaces.cpp
index c646b167910..454611f1893 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/ReductionWorkspaces.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/ReductionWorkspaces.cpp
@@ -5,7 +5,7 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "ReductionWorkspaces.h"
-#include "../Map.h"
+#include "Common/Map.h"
 
 namespace MantidQt {
 namespace CustomInterfaces {
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/ReductionWorkspaces.h b/qt/scientific_interfaces/ISISReflectometry/Reduction/ReductionWorkspaces.h
index 1dcc48dcabb..9c40b85416d 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/ReductionWorkspaces.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/ReductionWorkspaces.h
@@ -8,7 +8,7 @@
 #ifndef MANTID_CUSTOMINTERFACES_REDUCTIONWORKSPACES_H_
 #define MANTID_CUSTOMINTERFACES_REDUCTIONWORKSPACES_H_
 
-#include "../DllConfig.h"
+#include "Common/DllConfig.h"
 #include <boost/algorithm/string/join.hpp>
 #include <boost/optional.hpp>
 #include <string>
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/Row.cpp b/qt/scientific_interfaces/ISISReflectometry/Reduction/Row.cpp
index bf9acc3cb11..11540d082d1 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/Row.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/Row.cpp
@@ -5,7 +5,7 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "Row.h"
-#include "../Map.h"
+#include "Common/Map.h"
 #include <boost/algorithm/string.hpp>
 #include <boost/variant.hpp>
 
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/Row.h b/qt/scientific_interfaces/ISISReflectometry/Reduction/Row.h
index bfbad3fb249..655c85d497f 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/Row.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/Row.h
@@ -7,7 +7,7 @@
 
 #ifndef MANTID_CUSTOMINTERFACES_RUN_H_
 #define MANTID_CUSTOMINTERFACES_RUN_H_
-#include "../DllConfig.h"
+#include "Common/DllConfig.h"
 #include "RangeInQ.h"
 #include "ReductionOptionsMap.h"
 #include "ReductionWorkspaces.h"
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/Slicing.cpp b/qt/scientific_interfaces/ISISReflectometry/Reduction/Slicing.cpp
index 1188e56b8ee..634fe04cd23 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/Slicing.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/Slicing.cpp
@@ -5,7 +5,7 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "Slicing.h"
-#include "../multivisitors.hpp"
+#include "Common/multivisitors.hpp"
 // equivalent to
 //         #include <boost/variant/multivisitors.hpp>
 // available in boost 1.54+ - required for RHEL7.
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/Slicing.h b/qt/scientific_interfaces/ISISReflectometry/Reduction/Slicing.h
index 8593a7863cc..d91f89aad5a 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/Slicing.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/Slicing.h
@@ -7,7 +7,7 @@
 
 #ifndef MANTID_CUSTOMINTERFACES_SLICING_H_
 #define MANTID_CUSTOMINTERFACES_SLICING_H_
-#include "../DllConfig.h"
+#include "Common/DllConfig.h"
 #include <boost/variant.hpp>
 #include <ostream>
 #include <string>
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/TransmissionRunPair.h b/qt/scientific_interfaces/ISISReflectometry/Reduction/TransmissionRunPair.h
index 6b86ec245dc..f6f7f9f3865 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/TransmissionRunPair.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/TransmissionRunPair.h
@@ -6,7 +6,7 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #ifndef MANTID_CUSTOMINTERFACES_TRANSMISSIONRUNPAIR_H_
 #define MANTID_CUSTOMINTERFACES_TRANSMISSIONRUNPAIR_H_
-#include "../DllConfig.h"
+#include "Common/DllConfig.h"
 #include <string>
 #include <utility>
 
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/ValidatePerThetaDefaults.cpp b/qt/scientific_interfaces/ISISReflectometry/Reduction/ValidatePerThetaDefaults.cpp
index fbb65f73cce..19e8a962392 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/ValidatePerThetaDefaults.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/ValidatePerThetaDefaults.cpp
@@ -5,7 +5,7 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "ValidatePerThetaDefaults.h"
-#include "../Parse.h"
+#include "Common/Parse.h"
 #include "AllInitialized.h"
 #include "MantidQtWidgets/Common/ParseKeyValueString.h"
 #include <boost/algorithm/string/trim.hpp>
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/ValidatePerThetaDefaults.h b/qt/scientific_interfaces/ISISReflectometry/Reduction/ValidatePerThetaDefaults.h
index a9800b542fe..a7cb599b17f 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/ValidatePerThetaDefaults.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/ValidatePerThetaDefaults.h
@@ -7,12 +7,11 @@
 
 #ifndef MANTID_CUSTOMINTERFACES_PERTHETADEFAUTSVALIDATOR_H_
 #define MANTID_CUSTOMINTERFACES_PERTHETADEFAUTSVALIDATOR_H_
-#include "../ValidationResult.h"
-#include "DllConfig.h"
+#include "Common/ValidationResult.h"
+#include "Common/DllConfig.h"
 #include "ParseReflectometryStrings.h"
 #include "PerThetaDefaults.h"
 #include "TransmissionRunPair.h"
-#include "ValidationResult.h"
 #include <array>
 #include <boost/optional.hpp>
 namespace MantidQt {
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/ValidateRow.cpp b/qt/scientific_interfaces/ISISReflectometry/Reduction/ValidateRow.cpp
index 13cc7ce0be7..7308d5c48d0 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/ValidateRow.cpp
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/ValidateRow.cpp
@@ -5,7 +5,7 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "ValidateRow.h"
-#include "../Parse.h"
+#include "Common/Parse.h"
 #include "AllInitialized.h"
 #include <boost/algorithm/string/trim.hpp>
 #include <boost/tokenizer.hpp>
diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/ValidateRow.h b/qt/scientific_interfaces/ISISReflectometry/Reduction/ValidateRow.h
index ff828d31122..c5a4519e904 100644
--- a/qt/scientific_interfaces/ISISReflectometry/Reduction/ValidateRow.h
+++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/ValidateRow.h
@@ -7,12 +7,12 @@
 
 #ifndef MANTID_CUSTOMINTERFACES_VALIDATEROW_H_
 #define MANTID_CUSTOMINTERFACES_VALIDATEROW_H_
-#include "DllConfig.h"
+#include "Common/DllConfig.h"
+#include "Common/ValidationResult.h"
 #include "ParseReflectometryStrings.h"
 #include "Reduction/ReductionJobs.h"
 #include "Row.h"
 #include "TransmissionRunPair.h"
-#include "ValidationResult.h"
 #include <boost/optional.hpp>
 namespace MantidQt {
 namespace CustomInterfaces {
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflFromStdStringMap.cpp b/qt/scientific_interfaces/ISISReflectometry/ReflFromStdStringMap.cpp
deleted file mode 100644
index 1e091d82d3c..00000000000
--- a/qt/scientific_interfaces/ISISReflectometry/ReflFromStdStringMap.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// Mantid Repository : https://github.com/mantidproject/mantid
-//
-// Copyright &copy; 2018 ISIS Rutherford Appleton Laboratory UKRI,
-//     NScD Oak Ridge National Laboratory, European Spallation Source
-//     & Institut Laue - Langevin
-// SPDX - License - Identifier: GPL - 3.0 +
-#include "ReflFromStdStringMap.h"
-#include <algorithm>
-#include <iterator>
-namespace MantidQt {
-namespace CustomInterfaces {
-std::map<QString, QString>
-fromStdStringMap(std::map<std::string, std::string> const &inMap) {
-  std::map<QString, QString> out;
-  std::transform(inMap.begin(), inMap.end(), std::inserter(out, out.begin()),
-                 [](std::pair<std::string, std::string> const &kvp)
-                     -> std::pair<QString, QString> {
-                   return std::make_pair(QString::fromStdString(kvp.first),
-                                         QString::fromStdString(kvp.second));
-                 });
-  return out;
-}
-
-std::vector<std::map<QString, QString>> fromStdStringVectorMap(
-    std::vector<std::map<std::string, std::string>> const &inVectorMap) {
-  std::vector<std::map<QString, QString>> out;
-  std::transform(
-      inVectorMap.begin(), inVectorMap.end(), std::back_inserter(out),
-      [](std::map<std::string, std::string> const &map)
-          -> std::map<QString, QString> { return fromStdStringMap(map); });
-  return out;
-}
-} // namespace CustomInterfaces
-} // namespace MantidQt
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflFromStdStringMap.h b/qt/scientific_interfaces/ISISReflectometry/ReflFromStdStringMap.h
deleted file mode 100644
index 5bcf33d00ad..00000000000
--- a/qt/scientific_interfaces/ISISReflectometry/ReflFromStdStringMap.h
+++ /dev/null
@@ -1,28 +0,0 @@
-// Mantid Repository : https://github.com/mantidproject/mantid
-//
-// Copyright &copy; 2011 ISIS Rutherford Appleton Laboratory UKRI,
-//     NScD Oak Ridge National Laboratory, European Spallation Source
-//     & Institut Laue - Langevin
-// SPDX - License - Identifier: GPL - 3.0 +
-#ifndef MANTID_CUSTOMINTERFACES_REFLFROMSTDSTRINGMAP_H
-#define MANTID_CUSTOMINTERFACES_REFLFROMSTDSTRINGMAP_H
-#include "DllConfig.h"
-#include <QString>
-#include <map>
-#include <vector>
-/**
-This file contains some functions used to convert map data structures using
-std::string
-to those using QString.
-*/
-namespace MantidQt {
-namespace CustomInterfaces {
-std::map<QString, QString> MANTIDQT_ISISREFLECTOMETRY_DLL
-fromStdStringMap(std::map<std::string, std::string> const &inMap);
-
-std::vector<std::map<QString, QString>>
-    MANTIDQT_ISISREFLECTOMETRY_DLL fromStdStringVectorMap(
-        std::vector<std::map<std::string, std::string>> const &inVectorMap);
-} // namespace CustomInterfaces
-} // namespace MantidQt
-#endif /*MANTID_CUSTOMINTERFACES_REFLFROMSTDSTRINGMAP_H*/
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflMainWindowPresenter.h b/qt/scientific_interfaces/ISISReflectometry/ReflMainWindowPresenter.h
deleted file mode 100644
index 8825dd0afa1..00000000000
--- a/qt/scientific_interfaces/ISISReflectometry/ReflMainWindowPresenter.h
+++ /dev/null
@@ -1,46 +0,0 @@
-// Mantid Repository : https://github.com/mantidproject/mantid
-//
-// Copyright &copy; 2011 ISIS Rutherford Appleton Laboratory UKRI,
-//     NScD Oak Ridge National Laboratory, European Spallation Source
-//     & Institut Laue - Langevin
-// SPDX - License - Identifier: GPL - 3.0 +
-#ifndef MANTID_ISISREFLECTOMETRY_REFLMAINWINDOWPRESENTER_H
-#define MANTID_ISISREFLECTOMETRY_REFLMAINWINDOWPRESENTER_H
-
-#include "DllConfig.h"
-#include "IReflMainWindowPresenter.h"
-#include "ReflBatchPresenterFactory.h"
-#include <memory>
-
-namespace MantidQt {
-namespace CustomInterfaces {
-
-class IReflMainWindowView;
-
-/** @class ReflMainWindowPresenter
-
-ReflMainWindowPresenter is the concrete main window presenter implementing the
-functionality defined by the interface IReflMainWindowPresenter.
-*/
-class MANTIDQT_ISISREFLECTOMETRY_DLL ReflMainWindowPresenter
-    : public IReflMainWindowPresenter {
-public:
-  /// Constructor
-  ReflMainWindowPresenter(IReflMainWindowView *view,
-                          ReflBatchPresenterFactory batchPresenterFactory);
-  /// Run a python algorithm
-  std::string runPythonAlgorithm(const std::string &pythonCode) override;
-  bool isProcessing() const override;
-  void notifyHelpPressed() override;
-  void notifyNewBatchRequested() override;
-  void notifyCloseBatchRequested(int batchIndex) override;
-
-private:
-  void showHelp();
-  IReflMainWindowView *m_view;
-  ReflBatchPresenterFactory m_batchPresenterFactory;
-  std::vector<std::shared_ptr<IReflBatchPresenter>> m_batchPresenters;
-};
-} // namespace CustomInterfaces
-} // namespace MantidQt
-#endif /* MANTID_ISISREFLECTOMETRY_REFLMAINWINDOWPRESENTER_H */
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflMeasurementItemSource.h b/qt/scientific_interfaces/ISISReflectometry/ReflMeasurementItemSource.h
deleted file mode 100644
index 024e9901717..00000000000
--- a/qt/scientific_interfaces/ISISReflectometry/ReflMeasurementItemSource.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// Mantid Repository : https://github.com/mantidproject/mantid
-//
-// Copyright &copy; 2015 ISIS Rutherford Appleton Laboratory UKRI,
-//     NScD Oak Ridge National Laboratory, European Spallation Source
-//     & Institut Laue - Langevin
-// SPDX - License - Identifier: GPL - 3.0 +
-#ifndef MANTIDQT_CUSTOMINTERFACES_REFLMEASUREMENTITEMSOURCE_H_
-#define MANTIDQT_CUSTOMINTERFACES_REFLMEASUREMENTITEMSOURCE_H_
-
-#include "DllConfig.h"
-#include "MeasurementItem.h"
-#include <string>
-
-namespace MantidQt {
-namespace CustomInterfaces {
-
-/** ReflMeasurementSource : Repository pattern abstracting data mapping from
- domain. Specifically for accessing
- * measurement information from some data map/repository.
-*/
-class MANTIDQT_ISISREFLECTOMETRY_DLL ReflMeasurementItemSource {
-public:
-  /// Get the measurement somehow using location, or fuzzy path
-  virtual MeasurementItem obtain(const std::string &definedPath,
-                                 const std::string &fuzzyName) const = 0;
-  /// Virtual destructor
-  virtual ReflMeasurementItemSource *clone() const = 0;
-  /// Destructor
-  virtual ~ReflMeasurementItemSource(){};
-};
-
-} // namespace CustomInterfaces
-} // namespace MantidQt
-
-#endif /* MANTIDQT_CUSTOMINTERFACES_REFLMEASUREMENTITEMSOURCE_H_ */
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflNexusMeasurementItemSource.cpp b/qt/scientific_interfaces/ISISReflectometry/ReflNexusMeasurementItemSource.cpp
deleted file mode 100644
index bf43f6afcb0..00000000000
--- a/qt/scientific_interfaces/ISISReflectometry/ReflNexusMeasurementItemSource.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-// Mantid Repository : https://github.com/mantidproject/mantid
-//
-// Copyright &copy; 2018 ISIS Rutherford Appleton Laboratory UKRI,
-//     NScD Oak Ridge National Laboratory, European Spallation Source
-//     & Institut Laue - Langevin
-// SPDX - License - Identifier: GPL - 3.0 +
-#include "ReflNexusMeasurementItemSource.h"
-#include "MantidAPI/AlgorithmManager.h"
-#include "MantidAPI/MatrixWorkspace.h"
-#include "MantidAPI/Run.h"
-#include "MantidAPI/Workspace.h"
-#include "MantidAPI/WorkspaceFactory.h"
-#include "MantidKernel/TimeSeriesProperty.h"
-#include <Poco/Exception.h>
-#include <Poco/File.h>
-#include <boost/regex.hpp>
-#include <iostream>
-#include <sstream>
-#include <string>
-
-using namespace Mantid::API;
-using namespace Mantid::Kernel;
-
-namespace MantidQt {
-namespace CustomInterfaces {
-
-/** Constructor
- */
-ReflNexusMeasurementItemSource::ReflNexusMeasurementItemSource() {}
-
-/** Destructor
- */
-ReflNexusMeasurementItemSource::~ReflNexusMeasurementItemSource() {}
-
-MeasurementItem
-ReflNexusMeasurementItemSource::obtain(const std::string &definedPath,
-                                       const std::string &fuzzyName) const {
-  std::string filenameArg = fuzzyName;
-  if (!definedPath.empty()) {
-    Poco::File file(definedPath);
-    try {
-      if (file.exists() && file.isFile()) {
-        // Load the exact path
-        filenameArg = definedPath;
-      }
-    } catch (Poco::PathNotFoundException &) {
-      /* Deliberately swallow the exception.
-         Poco::File::exists throws for network drives
-      */
-    }
-  }
-  try {
-
-    auto hostWorkspace =
-        WorkspaceFactory::Instance().create("Workspace2D", 1, 1, 1);
-
-    IAlgorithm_sptr algLoadRun =
-        AlgorithmManager::Instance().create("LoadNexusLogs");
-    algLoadRun->setChild(true);
-    algLoadRun->setRethrows(true);
-    algLoadRun->initialize();
-    algLoadRun->setProperty("Filename", filenameArg);
-    algLoadRun->setProperty("Workspace", hostWorkspace);
-    algLoadRun->execute();
-
-    auto run = hostWorkspace->run();
-    const std::string measurementItemId =
-        run.getPropertyValueAsType<std::string>("measurement_id");
-    const std::string measurementItemSubId =
-        run.getPropertyValueAsType<std::string>("measurement_subid");
-    const std::string measurementItemLabel =
-        run.getPropertyValueAsType<std::string>("measurement_label");
-    const std::string measurementItemType =
-        run.getPropertyValueAsType<std::string>("measurement_type");
-    std::string runNumber;
-    try {
-      runNumber = run.getPropertyValueAsType<std::string>("run_number");
-    } catch (Exception::NotFoundError &) {
-      boost::regex re("([0-9]*)$");
-      boost::smatch match;
-      bool regex_res = boost::regex_search(fuzzyName, match, re);
-      if (regex_res) {
-        runNumber = match[0];
-      }
-    }
-    std::string runTitle;
-    try {
-      runTitle = run.getPropertyValueAsType<std::string>("run_title");
-    } catch (Exception::NotFoundError &) {
-      // OK, runTitle will be empty
-    }
-
-    double theta = -1.0;
-    try {
-      Property *prop = run.getProperty("stheta");
-      if (TimeSeriesProperty<double> *tsp =
-              dynamic_cast<TimeSeriesProperty<double> *>(prop)) {
-        theta = tsp->valuesAsVector().back();
-      }
-    } catch (Exception::NotFoundError &) {
-    }
-
-    return MeasurementItem(measurementItemId, measurementItemSubId,
-                           measurementItemLabel, measurementItemType, theta,
-                           runNumber, runTitle);
-
-  } catch (std::invalid_argument &ex) {
-    std::stringstream buffer;
-    buffer << "Meta-data load attemped a load using: " << filenameArg << '\n';
-    buffer << ex.what();
-    const std::string message = buffer.str();
-    return MeasurementItem::InvalidMeasurementItem(message);
-  }
-}
-
-ReflNexusMeasurementItemSource *ReflNexusMeasurementItemSource::clone() const {
-  return new ReflNexusMeasurementItemSource(*this);
-}
-
-} // namespace CustomInterfaces
-} // namespace MantidQt
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflNexusMeasurementItemSource.h b/qt/scientific_interfaces/ISISReflectometry/ReflNexusMeasurementItemSource.h
deleted file mode 100644
index a3639aecd5b..00000000000
--- a/qt/scientific_interfaces/ISISReflectometry/ReflNexusMeasurementItemSource.h
+++ /dev/null
@@ -1,37 +0,0 @@
-// Mantid Repository : https://github.com/mantidproject/mantid
-//
-// Copyright &copy; 2015 ISIS Rutherford Appleton Laboratory UKRI,
-//     NScD Oak Ridge National Laboratory, European Spallation Source
-//     & Institut Laue - Langevin
-// SPDX - License - Identifier: GPL - 3.0 +
-#ifndef MANTIDQT_CUSTOMINTERFACES_REFLNEXUSMEASUREMENTITEMSOURCE_H_
-#define MANTIDQT_CUSTOMINTERFACES_REFLNEXUSMEASUREMENTITEMSOURCE_H_
-
-#include "DllConfig.h"
-#include "MeasurementItem.h"
-#include "ReflMeasurementItemSource.h"
-
-#include <string>
-
-namespace MantidQt {
-namespace CustomInterfaces {
-
-/** ReflNexusMeasurementSource : ReflMeasurementSource repository realization
-  that
-  fetches data out off disk using load algorithms and Nexus formats.
-*/
-class MANTIDQT_ISISREFLECTOMETRY_DLL ReflNexusMeasurementItemSource
-    : public ReflMeasurementItemSource {
-public:
-  ReflNexusMeasurementItemSource();
-  MeasurementItem obtain(const std::string &definedPath,
-                         const std::string &fuzzyName) const override;
-  /// Virtual destructor
-  ReflNexusMeasurementItemSource *clone() const override;
-  ~ReflNexusMeasurementItemSource() override;
-};
-
-} // namespace CustomInterfaces
-} // namespace MantidQt
-
-#endif /* MANTIDQT_CUSTOMINTERFACES_REFLNEXUSMEASUREMENTSOURCE_H_ */
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflTableSchema.cpp b/qt/scientific_interfaces/ISISReflectometry/ReflTableSchema.cpp
deleted file mode 100644
index b9d24253daa..00000000000
--- a/qt/scientific_interfaces/ISISReflectometry/ReflTableSchema.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-// Mantid Repository : https://github.com/mantidproject/mantid
-//
-// Copyright &copy; 2018 ISIS Rutherford Appleton Laboratory UKRI,
-//     NScD Oak Ridge National Laboratory, European Spallation Source
-//     & Institut Laue - Langevin
-// SPDX - License - Identifier: GPL - 3.0 +
-#include "ReflTableSchema.h"
-#include <utility>
-
-namespace MantidQt {
-namespace CustomInterfaces {
-namespace ReflTableSchema {
-
-ColumnIndexNameMap makeColumnIndexMap() {
-  return {{COL_RUNS, RUNS},
-          {COL_ANGLE, ANGLE},
-          {COL_TRANSMISSION, TRANSMISSION},
-          {COL_QMIN, QMINDEF},
-          {COL_QMAX, QMAXDEF},
-          {COL_DQQ, DQQ},
-          {COL_SCALE, SCALE},
-          {COL_GROUP, GROUP},
-          {COL_OPTIONS, OPTIONS}};
-}
-
-ColumnNameIndexMap makeColumnNameMap() {
-  auto indexMap = makeColumnIndexMap();
-  ColumnNameIndexMap columnMap;
-  for (auto it = indexMap.begin(); it != indexMap.end(); ++it) {
-    columnMap.emplace(it->second, it->first);
-  }
-  return columnMap;
-}
-} // namespace ReflTableSchema
-} // namespace CustomInterfaces
-} // namespace MantidQt
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflTableSchema.h b/qt/scientific_interfaces/ISISReflectometry/ReflTableSchema.h
deleted file mode 100644
index 6b080b404ac..00000000000
--- a/qt/scientific_interfaces/ISISReflectometry/ReflTableSchema.h
+++ /dev/null
@@ -1,70 +0,0 @@
-// Mantid Repository : https://github.com/mantidproject/mantid
-//
-// Copyright &copy; 2018 ISIS Rutherford Appleton Laboratory UKRI,
-//     NScD Oak Ridge National Laboratory, European Spallation Source
-//     & Institut Laue - Langevin
-// SPDX - License - Identifier: GPL - 3.0 +
-#ifndef MANTID_ISISREFLECTOMETRY_REFLTABLESCHEMA_H_
-#define MANTID_ISISREFLECTOMETRY_REFLTABLESCHEMA_H_
-
-#include "DllConfig.h"
-#include "map"
-#include "string"
-
-namespace MantidQt {
-namespace CustomInterfaces {
-namespace ReflTableSchema {
-
-using ColumnNameType = std::string;
-using ColumnValueType = std::string;
-using ColumnIndexNameMap = std::map<int, ColumnNameType>;
-using ColumnNameIndexMap = std::map<ColumnNameType, int>;
-
-/// Label for run number column
-static const std::string RUNS("Run(s)");
-/// Label for angle column
-static const std::string ANGLE("Angle");
-/// Label for transmission column
-static const std::string TRANSMISSION("Transmission Run(s)");
-/// Label for qmin column
-static const std::string QMINDEF("Q min");
-/// Label for qmax column
-static const std::string QMAXDEF("Q max");
-/// Label for dq/q column
-static const std::string DQQ("dQ/Q");
-/// Label for scale column
-static const std::string SCALE("Scale");
-/// Label for group column
-static const std::string GROUP("Group");
-/// Label for options column
-static const std::string OPTIONS("Options");
-
-/// Index for run number column
-const int COL_RUNS(0);
-/// Index for angle column
-const int COL_ANGLE(1);
-/// Index for transmission column
-const int COL_TRANSMISSION(2);
-/// Index for qmin column
-const int COL_QMIN(3);
-/// Index for qmax column
-const int COL_QMAX(4);
-/// Index for dq/q column
-const int COL_DQQ(5);
-/// Index for scale column
-const int COL_SCALE(6);
-/// Index for group column
-const int COL_GROUP(7);
-/// Index for options column
-const int COL_OPTIONS(8);
-
-/// Make the column index map.
-ColumnIndexNameMap makeColumnIndexMap();
-/// Make the column name map.
-ColumnNameIndexMap makeColumnNameMap();
-
-} // namespace ReflTableSchema
-} // namespace CustomInterfaces
-} // namespace MantidQt
-
-#endif /* MANTID_ISISREFLECTOMETRY_REFLTABLESCHEMA_H_ */
diff --git a/qt/scientific_interfaces/ISISReflectometry/ReflWindow.ui b/qt/scientific_interfaces/ISISReflectometry/ReflWindow.ui
deleted file mode 100644
index 98bcbcfd90a..00000000000
--- a/qt/scientific_interfaces/ISISReflectometry/ReflWindow.ui
+++ /dev/null
@@ -1,599 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>windowRefl</class>
- <widget class="QMainWindow" name="windowRefl">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>897</width>
-    <height>412</height>
-   </rect>
-  </property>
-  <property name="acceptDrops">
-   <bool>true</bool>
-  </property>
-  <property name="windowTitle">
-   <string>ISIS Reflectometry</string>
-  </property>
-  <widget class="QWidget" name="widgetMainRow">
-   <layout class="QVBoxLayout" name="layoutMain">
-    <item>
-     <layout class="QHBoxLayout" name="layoutTopRow">
-      <item>
-       <widget class="QLabel" name="labelInstrument">
-        <property name="text">
-         <string>Instrument:</string>
-        </property>
-        <property name="buddy">
-         <cstring>comboInstrument</cstring>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QComboBox" name="comboInstrument">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="font">
-         <font>
-          <weight>75</weight>
-          <bold>true</bold>
-         </font>
-        </property>
-        <property name="toolTip">
-         <string>Sets the instrument to use.</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <spacer name="spacer_2">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>40</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <item>
-       <widget class="QLabel" name="labelRuns">
-        <property name="text">
-         <string>Transmission run(s):</string>
-        </property>
-        <property name="buddy">
-         <cstring>textRuns</cstring>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QLineEdit" name="textRuns">
-        <property name="minimumSize">
-         <size>
-          <width>90</width>
-          <height>0</height>
-         </size>
-        </property>
-        <property name="maximumSize">
-         <size>
-          <width>120</width>
-          <height>16777215</height>
-         </size>
-        </property>
-        <property name="toolTip">
-         <string>Transmission run number to be automatically entered into the 'trans' column when transferring runs.</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <spacer name="horizontalSpacer_2">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>40</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <item>
-       <widget class="QLabel" name="labelPolarCorrect">
-        <property name="text">
-         <string>Polarisation corrections:</string>
-        </property>
-        <property name="buddy">
-         <cstring>comboPolarCorrect</cstring>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QComboBox" name="comboPolarCorrect">
-        <property name="font">
-         <font>
-          <weight>75</weight>
-          <bold>true</bold>
-         </font>
-        </property>
-        <property name="toolTip">
-         <string>Sets the polarisation corrections to be done when processing.</string>
-        </property>
-        <item>
-         <property name="text">
-          <string>None</string>
-         </property>
-        </item>
-        <item>
-         <property name="text">
-          <string>1-PNR</string>
-         </property>
-        </item>
-        <item>
-         <property name="text">
-          <string>2-PA</string>
-         </property>
-        </item>
-       </widget>
-      </item>
-      <item>
-       <spacer name="horizontalSpacer_3">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>40</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <item>
-       <widget class="QPushButton" name="buttonColumns">
-        <property name="text">
-         <string>Choose Columns...</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </item>
-    <item>
-     <layout class="QHBoxLayout" name="layoutMidRow">
-      <property name="spacing">
-       <number>12</number>
-      </property>
-      <item>
-       <widget class="MantidQt::MantidWidgets::WorkspaceSelector" name="workspaceSelector"/>
-      </item>
-      <item>
-       <widget class="QLabel" name="labelRB">
-        <property name="text">
-         <string>RB Search:</string>
-        </property>
-        <property name="buddy">
-         <cstring>textRB</cstring>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QLineEdit" name="textRB">
-        <property name="minimumSize">
-         <size>
-          <width>40</width>
-          <height>0</height>
-         </size>
-        </property>
-        <property name="maximumSize">
-         <size>
-          <width>70</width>
-          <height>16777215</height>
-         </size>
-        </property>
-        <property name="toolTip">
-         <string>The term to search the archives for</string>
-        </property>
-        <property name="inputMethodHints">
-         <set>Qt::ImhDigitsOnly</set>
-        </property>
-        <property name="cursorPosition">
-         <number>0</number>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QLabel" name="labelDepth">
-        <property name="text">
-         <string>Search Depth (Cycles):</string>
-        </property>
-        <property name="buddy">
-         <cstring>spinDepth</cstring>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QSpinBox" name="spinDepth">
-        <property name="toolTip">
-         <string>The depth in cycles of the serach to to on the archives. A depth of '1' seraches only the most recent cycle.</string>
-        </property>
-        <property name="minimum">
-         <number>1</number>
-        </property>
-        <property name="maximum">
-         <number>99</number>
-        </property>
-        <property name="value">
-         <number>5</number>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QPushButton" name="buttonSearch">
-        <property name="text">
-         <string>Search</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <spacer name="horizontalSpacer">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>40</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <item>
-       <widget class="QPushButton" name="buttonAuto">
-        <property name="text">
-         <string>AutoFill</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </item>
-    <item>
-     <widget class="QSplitter" name="splitterTables">
-      <property name="sizePolicy">
-       <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-        <horstretch>0</horstretch>
-        <verstretch>0</verstretch>
-       </sizepolicy>
-      </property>
-      <property name="orientation">
-       <enum>Qt::Horizontal</enum>
-      </property>
-      <widget class="QTableWidget" name="tableRuns">
-       <attribute name="horizontalHeaderHighlightSections">
-        <bool>false</bool>
-       </attribute>
-       <attribute name="horizontalHeaderStretchLastSection">
-        <bool>true</bool>
-       </attribute>
-       <attribute name="verticalHeaderVisible">
-        <bool>false</bool>
-       </attribute>
-       <attribute name="verticalHeaderHighlightSections">
-        <bool>false</bool>
-       </attribute>
-       <column>
-        <property name="text">
-         <string>Run #</string>
-        </property>
-       </column>
-       <column>
-        <property name="text">
-         <string>Title</string>
-        </property>
-       </column>
-      </widget>
-      <widget class="QWidget" name="layoutWidget">
-       <layout class="QHBoxLayout" name="layoutTableView">
-        <item>
-         <widget class="QPushButton" name="buttonTransfer">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Fixed" vsizetype="Expanding">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="maximumSize">
-           <size>
-            <width>25</width>
-            <height>16777215</height>
-           </size>
-          </property>
-          <property name="text">
-           <string>=&gt;</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <layout class="QVBoxLayout" name="layoutButtonsTable">
-          <item>
-           <widget class="QTableView" name="viewTable">
-            <property name="sizePolicy">
-             <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-              <horstretch>0</horstretch>
-              <verstretch>0</verstretch>
-             </sizepolicy>
-            </property>
-           </widget>
-          </item>
-          <item>
-           <layout class="QHBoxLayout" name="layoutButtons">
-            <item>
-             <widget class="QPushButton" name="buttonProcess">
-              <property name="sizePolicy">
-               <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-                <horstretch>0</horstretch>
-                <verstretch>0</verstretch>
-               </sizepolicy>
-              </property>
-              <property name="text">
-               <string>Process</string>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <widget class="QPushButton" name="buttonClear">
-              <property name="text">
-               <string>Clear all</string>
-              </property>
-             </widget>
-            </item>
-           </layout>
-          </item>
-         </layout>
-        </item>
-       </layout>
-      </widget>
-     </widget>
-    </item>
-   </layout>
-   <zorder>splitterTables</zorder>
-  </widget>
-  <widget class="QMenuBar" name="menuBar">
-   <property name="geometry">
-    <rect>
-     <x>0</x>
-     <y>0</y>
-     <width>897</width>
-     <height>21</height>
-    </rect>
-   </property>
-   <widget class="QMenu" name="menuFile">
-    <property name="title">
-     <string>File</string>
-    </property>
-    <addaction name="actionOpen_Table"/>
-    <addaction name="actionReload_from_Disk"/>
-    <addaction name="separator"/>
-    <addaction name="actionSave"/>
-    <addaction name="actionSave_As"/>
-    <addaction name="actionSave_Workspaces"/>
-    <addaction name="separator"/>
-    <addaction name="actionClose_Refl_Gui"/>
-   </widget>
-   <widget class="QMenu" name="menuHelp">
-    <property name="title">
-     <string>Help</string>
-    </property>
-    <addaction name="actionMantid_Help"/>
-   </widget>
-   <widget class="QMenu" name="menuFunction">
-    <property name="title">
-     <string>Function</string>
-    </property>
-    <addaction name="actionTransfer"/>
-    <addaction name="actionAutofill"/>
-    <addaction name="separator"/>
-    <addaction name="actionProcess"/>
-    <addaction name="actionClear_Table"/>
-    <addaction name="separator"/>
-    <addaction name="actionSearch_RB"/>
-   </widget>
-   <widget class="QMenu" name="menuEdit">
-    <property name="title">
-     <string>Edit</string>
-    </property>
-    <addaction name="actionCopy"/>
-    <addaction name="actionCut"/>
-    <addaction name="actionPaste"/>
-    <addaction name="actionClear"/>
-   </widget>
-   <widget class="QMenu" name="menuOptions">
-    <property name="title">
-     <string>Options</string>
-    </property>
-    <addaction name="actionChoose_Columns"/>
-    <addaction name="actionRefl_Gui_Options"/>
-   </widget>
-   <addaction name="menuFile"/>
-   <addaction name="menuEdit"/>
-   <addaction name="menuOptions"/>
-   <addaction name="menuFunction"/>
-   <addaction name="menuHelp"/>
-  </widget>
-  <widget class="QStatusBar" name="statusMain">
-   <property name="font">
-    <font>
-     <pointsize>11</pointsize>
-    </font>
-   </property>
-  </widget>
-  <action name="actionSave_As">
-   <property name="text">
-    <string>Save As...</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+Alt+S</string>
-   </property>
-  </action>
-  <action name="actionOpen_Table">
-   <property name="text">
-    <string>Open Table...</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+O</string>
-   </property>
-  </action>
-  <action name="actionReload_from_Disk">
-   <property name="text">
-    <string>Reload from Disk</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+R</string>
-   </property>
-  </action>
-  <action name="actionSave_Workspaces">
-   <property name="text">
-    <string>Save Workspaces</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+Shift+S</string>
-   </property>
-  </action>
-  <action name="actionMantid_Help">
-   <property name="text">
-    <string>Mantid Help</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+H</string>
-   </property>
-  </action>
-  <action name="actionSave">
-   <property name="text">
-    <string>Save</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+S</string>
-   </property>
-  </action>
-  <action name="actionClose_Refl_Gui">
-   <property name="text">
-    <string>Close Refl Gui</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+F4</string>
-   </property>
-  </action>
-  <action name="actionAutofill">
-   <property name="text">
-    <string>Autofill</string>
-   </property>
-   <property name="shortcut">
-    <string>Alt+A</string>
-   </property>
-  </action>
-  <action name="actionProcess">
-   <property name="text">
-    <string>Process</string>
-   </property>
-   <property name="shortcut">
-    <string>Alt+P</string>
-   </property>
-  </action>
-  <action name="actionTransfer">
-   <property name="text">
-    <string>Transfer</string>
-   </property>
-   <property name="shortcut">
-    <string>Alt+T</string>
-   </property>
-  </action>
-  <action name="actionClear_Table">
-   <property name="text">
-    <string>Clear Table</string>
-   </property>
-   <property name="shortcut">
-    <string>Alt+C</string>
-   </property>
-  </action>
-  <action name="actionSearch_RB">
-   <property name="text">
-    <string>Search RB</string>
-   </property>
-   <property name="shortcut">
-    <string>Alt+R</string>
-   </property>
-  </action>
-  <action name="actionCopy">
-   <property name="text">
-    <string>Copy</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+C</string>
-   </property>
-  </action>
-  <action name="actionPaste">
-   <property name="text">
-    <string>Paste</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+V</string>
-   </property>
-  </action>
-  <action name="actionCut">
-   <property name="text">
-    <string>Cut</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+X</string>
-   </property>
-  </action>
-  <action name="actionClear">
-   <property name="text">
-    <string>Clear</string>
-   </property>
-   <property name="shortcut">
-    <string>Del</string>
-   </property>
-  </action>
-  <action name="actionChoose_Columns">
-   <property name="text">
-    <string>Choose Columns...</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+M</string>
-   </property>
-  </action>
-  <action name="actionRefl_Gui_Options">
-   <property name="text">
-    <string>Refl Gui Options...</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+Shift+O</string>
-   </property>
-  </action>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>MantidQt::MantidWidgets::WorkspaceSelector</class>
-   <extends>QComboBox</extends>
-   <header>MantidQtWidgets/Common/WorkspaceSelector.h</header>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>comboInstrument</tabstop>
-  <tabstop>textRuns</tabstop>
-  <tabstop>comboPolarCorrect</tabstop>
-  <tabstop>textRB</tabstop>
-  <tabstop>spinDepth</tabstop>
-  <tabstop>buttonSearch</tabstop>
-  <tabstop>buttonAuto</tabstop>
-  <tabstop>buttonTransfer</tabstop>
- </tabstops>
- <resources/>
- <connections/>
-</ui>
diff --git a/qt/scientific_interfaces/ISISReflectometry/TransferResults.cpp b/qt/scientific_interfaces/ISISReflectometry/TransferResults.cpp
deleted file mode 100644
index 3b1fc8fc40d..00000000000
--- a/qt/scientific_interfaces/ISISReflectometry/TransferResults.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-// Mantid Repository : https://github.com/mantidproject/mantid
-//
-// Copyright &copy; 2018 ISIS Rutherford Appleton Laboratory UKRI,
-//     NScD Oak Ridge National Laboratory, European Spallation Source
-//     & Institut Laue - Langevin
-// SPDX - License - Identifier: GPL - 3.0 +
-#include "TransferResults.h"
-
-namespace MantidQt {
-namespace CustomInterfaces {
-TransferResults::TransferResults(std::vector<COLUMN_MAP_TYPE> transferRuns,
-                                 std::vector<COLUMN_MAP_TYPE> errorRuns) {
-
-  m_transferRuns = transferRuns;
-  m_errorRuns = errorRuns;
-}
-
-std::vector<std::map<std::string, std::string>>
-TransferResults::getTransferRuns() {
-  return m_transferRuns;
-}
-
-std::vector<std::map<std::string, std::string>>
-TransferResults::getErrorRuns() {
-  return m_errorRuns;
-}
-
-void TransferResults::addTransferRow(const COLUMN_MAP_TYPE &row) {
-  m_transferRuns.push_back(row);
-}
-void TransferResults::addErrorRow(COLUMN_NAME_TYPE id,
-                                  COLUMN_VALUE_TYPE error) {
-  m_errorRuns.push_back({{id, error}});
-}
-} // namespace CustomInterfaces
-} // namespace MantidQt
diff --git a/qt/scientific_interfaces/ISISReflectometry/TransferResults.h b/qt/scientific_interfaces/ISISReflectometry/TransferResults.h
deleted file mode 100644
index a3ecae3b169..00000000000
--- a/qt/scientific_interfaces/ISISReflectometry/TransferResults.h
+++ /dev/null
@@ -1,39 +0,0 @@
-// Mantid Repository : https://github.com/mantidproject/mantid
-//
-// Copyright &copy; 2018 ISIS Rutherford Appleton Laboratory UKRI,
-//     NScD Oak Ridge National Laboratory, European Spallation Source
-//     & Institut Laue - Langevin
-// SPDX - License - Identifier: GPL - 3.0 +
-#ifndef MANTID_ISISREFLECTOMETRY_TRASNFERRESULTS_H_
-#define MANTID_ISISREFLECTOMETRY_TRASNFERRESULTS_H_
-
-#include "DllConfig.h"
-#include <boost/make_shared.hpp>
-#include <map>
-#include <vector>
-
-namespace MantidQt {
-namespace CustomInterfaces {
-class MANTIDQT_ISISREFLECTOMETRY_DLL TransferResults {
-public:
-  using COLUMN_NAME_TYPE = std::string;
-  using COLUMN_VALUE_TYPE = std::string;
-
-  using COLUMN_MAP_TYPE = std::map<COLUMN_NAME_TYPE, COLUMN_VALUE_TYPE>;
-
-  TransferResults(std::vector<COLUMN_MAP_TYPE> transferRuns,
-                  std::vector<COLUMN_MAP_TYPE> errorRuns);
-
-  std::vector<COLUMN_MAP_TYPE> getTransferRuns();
-  std::vector<COLUMN_MAP_TYPE> getErrorRuns();
-
-  void addTransferRow(const COLUMN_MAP_TYPE &row);
-  void addErrorRow(COLUMN_NAME_TYPE id, COLUMN_VALUE_TYPE error);
-
-  std::vector<COLUMN_MAP_TYPE> m_transferRuns;
-  std::vector<COLUMN_MAP_TYPE> m_errorRuns;
-};
-} // namespace CustomInterfaces
-} // namespace MantidQt
-
-#endif // MANTID_ISISREFLECTOMETRY_TRASNFERRESULTS_H_!
diff --git a/qt/scientific_interfaces/test/ISISReflectometry/Event/EventPresenterTest.h b/qt/scientific_interfaces/test/ISISReflectometry/Event/EventPresenterTest.h
index b728a2231d9..2e8d01cf5b4 100644
--- a/qt/scientific_interfaces/test/ISISReflectometry/Event/EventPresenterTest.h
+++ b/qt/scientific_interfaces/test/ISISReflectometry/Event/EventPresenterTest.h
@@ -222,7 +222,7 @@ public:
 
 private:
   NiceMock<MockEventView> m_view;
-  NiceMock<MockReflBatchPresenter> m_mainPresenter;
+  NiceMock<MockBatchPresenter> m_mainPresenter;
 
   EventPresenter makePresenter() {
     auto presenter = EventPresenter(&m_view);
diff --git a/qt/scientific_interfaces/test/ISISReflectometry/Experiment/ExperimentPresenterTest.h b/qt/scientific_interfaces/test/ISISReflectometry/Experiment/ExperimentPresenterTest.h
index fa2edb07a03..0ec832bf088 100644
--- a/qt/scientific_interfaces/test/ISISReflectometry/Experiment/ExperimentPresenterTest.h
+++ b/qt/scientific_interfaces/test/ISISReflectometry/Experiment/ExperimentPresenterTest.h
@@ -407,7 +407,7 @@ public:
 
 private:
   NiceMock<MockExperimentView> m_view;
-  NiceMock<MockReflBatchPresenter> m_mainPresenter;
+  NiceMock<MockBatchPresenter> m_mainPresenter;
   double m_thetaTolerance{0.01};
 
   Experiment makeModel() {
diff --git a/qt/scientific_interfaces/test/ISISReflectometry/Instrument/InstrumentPresenterTest.h b/qt/scientific_interfaces/test/ISISReflectometry/Instrument/InstrumentPresenterTest.h
index d013106f60e..b2b3a7f4c55 100644
--- a/qt/scientific_interfaces/test/ISISReflectometry/Instrument/InstrumentPresenterTest.h
+++ b/qt/scientific_interfaces/test/ISISReflectometry/Instrument/InstrumentPresenterTest.h
@@ -225,7 +225,7 @@ public:
 
 private:
   NiceMock<MockInstrumentView> m_view;
-  NiceMock<MockReflBatchPresenter> m_mainPresenter;
+  NiceMock<MockBatchPresenter> m_mainPresenter;
 
   Instrument makeModel() {
     auto wavelengthRange = RangeInLambda(0.0, 0.0);
diff --git a/qt/scientific_interfaces/test/ISISReflectometry/Reduction/ReductionJobsMergeTest.h b/qt/scientific_interfaces/test/ISISReflectometry/Reduction/ReductionJobsMergeTest.h
index b4fcaa7cf96..91c7bb15f95 100644
--- a/qt/scientific_interfaces/test/ISISReflectometry/Reduction/ReductionJobsMergeTest.h
+++ b/qt/scientific_interfaces/test/ISISReflectometry/Reduction/ReductionJobsMergeTest.h
@@ -6,8 +6,8 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #ifndef MANTID_CUSTOMINTERFACES_REDUCTIONJOBSMERGETEST_H_
 #define MANTID_CUSTOMINTERFACES_REDUCTIONJOBSMERGETEST_H_
-#include "../../../ISISReflectometry/Reduction/ReductionJobs.h"
-#include "../../../ISISReflectometry/ZipRange.h"
+#include "Common/ZipRange.h"
+#include "Reduction/ReductionJobs.h"
 #include <cxxtest/TestSuite.h>
 #include <gmock/gmock.h>
 
diff --git a/qt/scientific_interfaces/test/ISISReflectometry/Reduction/ValidateRowTest.h b/qt/scientific_interfaces/test/ISISReflectometry/Reduction/ValidateRowTest.h
index 2e6b10cff7e..68d732cec62 100644
--- a/qt/scientific_interfaces/test/ISISReflectometry/Reduction/ValidateRowTest.h
+++ b/qt/scientific_interfaces/test/ISISReflectometry/Reduction/ValidateRowTest.h
@@ -6,7 +6,7 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #ifndef MANTID_CUSTOMINTERFACES_VALIDATEROWTEST_H_
 #define MANTID_CUSTOMINTERFACES_VALIDATEROWTEST_H_
-#include "../../../ISISReflectometry/Parse.h"
+#include "../../../ISISReflectometry/Common/Parse.h"
 #include "../../../ISISReflectometry/Reduction/ValidateRow.h"
 #include <cxxtest/TestSuite.h>
 
diff --git a/qt/scientific_interfaces/test/ISISReflectometry/Runs/MockRunsPresenter.h b/qt/scientific_interfaces/test/ISISReflectometry/Runs/MockRunsPresenter.h
index 7d633a43560..e337e6cb79f 100644
--- a/qt/scientific_interfaces/test/ISISReflectometry/Runs/MockRunsPresenter.h
+++ b/qt/scientific_interfaces/test/ISISReflectometry/Runs/MockRunsPresenter.h
@@ -20,7 +20,7 @@ public:
   MOCK_CONST_METHOD0(isAutoreducing, bool());
   MOCK_METHOD0(settingsChanged, void());
   void notify(IRunsPresenter::Flag flag) override { UNUSED_ARG(flag); };
-  void acceptMainPresenter(IReflBatchPresenter *presenter) override {
+  void acceptMainPresenter(IBatchPresenter *presenter) override {
     UNUSED_ARG(presenter);
   }
   bool isProcessing() const override { return false; }
diff --git a/qt/scientific_interfaces/test/ISISReflectometry/Runs/RunsPresenterTest.h b/qt/scientific_interfaces/test/ISISReflectometry/Runs/RunsPresenterTest.h
index bbc99919800..6dc6fc8eecd 100644
--- a/qt/scientific_interfaces/test/ISISReflectometry/Runs/RunsPresenterTest.h
+++ b/qt/scientific_interfaces/test/ISISReflectometry/Runs/RunsPresenterTest.h
@@ -271,7 +271,7 @@ private:
                         double thetaTolerance,
                         std::vector<std::string> const &instruments,
                         int defaultInstrumentIndex,
-                        IReflMessageHandler *messageHandler,
+                        IMessageHandler *messageHandler,
                         boost::shared_ptr<IReflAutoreduction> autoreduction =
                             boost::shared_ptr<IReflAutoreduction>(),
                         boost::shared_ptr<IReflSearcher> searcher =
@@ -426,7 +426,7 @@ private:
   std::vector<std::string> m_instruments;
   NiceMock<MockRunsView> m_view;
   NiceMock<MockRunsTableView> m_runsTableView;
-  NiceMock<MockReflBatchPresenter> m_mainPresenter;
+  NiceMock<MockBatchPresenter> m_mainPresenter;
   NiceMock<MockProgressableView> m_progressView;
   NiceMock<MockMessageHandler> m_messageHandler;
   boost::shared_ptr<MockReflAutoreduction> m_autoreduction;
diff --git a/qt/scientific_interfaces/test/ISISReflectometry/Save/SavePresenterTest.h b/qt/scientific_interfaces/test/ISISReflectometry/Save/SavePresenterTest.h
index 538fa462eee..6a0aac8fc86 100644
--- a/qt/scientific_interfaces/test/ISISReflectometry/Save/SavePresenterTest.h
+++ b/qt/scientific_interfaces/test/ISISReflectometry/Save/SavePresenterTest.h
@@ -7,8 +7,8 @@
 #ifndef MANTID_CUSTOMINTERFACES_SAVEPRESENTERTEST_H_
 #define MANTID_CUSTOMINTERFACES_SAVEPRESENTERTEST_H_
 
-#include "../../../ISISReflectometry/GUI/Save/SavePresenter.h"
-#include "../../../ISISReflectometry/IReflAsciiSaver.h"
+#include "GUI/Save/SavePresenter.h"
+#include "GUI/Save/IReflAsciiSaver.h"
 #include "../../ReflMockObjects.h"
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/AnalysisDataService.h"
@@ -463,7 +463,7 @@ private:
   }
 
   NiceMock<MockSaveView> m_view;
-  NiceMock<MockReflBatchPresenter> m_mainPresenter;
+  NiceMock<MockBatchPresenter> m_mainPresenter;
   NiceMock<MockReflAsciiSaver> *m_asciiSaver;
   std::string m_savePath;
   // file format options for ascii saver
diff --git a/qt/scientific_interfaces/test/MeasurementItemTest.h b/qt/scientific_interfaces/test/MeasurementItemTest.h
deleted file mode 100644
index 24b2b6d2bd7..00000000000
--- a/qt/scientific_interfaces/test/MeasurementItemTest.h
+++ /dev/null
@@ -1,94 +0,0 @@
-// Mantid Repository : https://github.com/mantidproject/mantid
-//
-// Copyright &copy; 2018 ISIS Rutherford Appleton Laboratory UKRI,
-//     NScD Oak Ridge National Laboratory, European Spallation Source
-//     & Institut Laue - Langevin
-// SPDX - License - Identifier: GPL - 3.0 +
-#ifndef MANTIDQT_CUSTOMINTERFACES_MEASUREMENTITEMTEST_H_
-#define MANTIDQT_CUSTOMINTERFACES_MEASUREMENTITEMTEST_H_
-
-#include <cxxtest/TestSuite.h>
-
-#include "../ISISReflectometry/MeasurementItem.h"
-
-using namespace MantidQt::CustomInterfaces;
-
-class MeasurementItemTest : public CxxTest::TestSuite {
-public:
-  // This pair of boilerplate methods prevent the suite being created statically
-  // This means the constructor isn't called when running other tests
-  static MeasurementItemTest *createSuite() {
-    return new MeasurementItemTest();
-  }
-  static void destroySuite(MeasurementItemTest *suite) { delete suite; }
-
-  void test_invalid_construction_via_constructional_method() {
-    std::string message = "Gave up";
-    auto measure = MeasurementItem::InvalidMeasurementItem(message);
-    TS_ASSERT(!measure.isUseable());
-    TS_ASSERT_EQUALS(message, measure.whyUnuseable());
-  }
-
-  void test_valid_construction_via_constructor() {
-    const std::string measurementId = "a";
-    const std::string measurementSubId = "s";
-    const std::string measurementLabel = "l";
-    const std::string measurementType = "t";
-    const double angle = 0.1;
-    const std::string run = "123";
-    const std::string title = "title";
-
-    MeasurementItem measurement(measurementId, measurementSubId,
-                                measurementLabel, measurementType, angle, run,
-                                title);
-
-    TS_ASSERT(measurement.isUseable());
-    TS_ASSERT_EQUALS(measurementId, measurement.id());
-    TS_ASSERT_EQUALS(measurementSubId, measurement.subId());
-    TS_ASSERT_EQUALS(measurementLabel, measurement.label());
-    TS_ASSERT_EQUALS(measurementType, measurement.type());
-    TS_ASSERT_EQUALS(angle, measurement.angle());
-    TS_ASSERT_EQUALS(run, measurement.run());
-  }
-
-  void test_invalid_construction_when_measurementId_empty() {
-
-    MeasurementItem measurement("", "measurementSubId", "measurementLabel",
-                                "measurementType", 0.1, "111", "title");
-
-    TS_ASSERT(!measurement.isUseable());
-  }
-
-  void test_invalid_construction_when_measurementSubId_empty() {
-
-    MeasurementItem measurement("measurementId", "", "measurementLabel",
-                                "measurementType", 0.1, "111", "title");
-
-    TS_ASSERT(!measurement.isUseable());
-  }
-
-  void test_valid_construction_when_label_empty() {
-
-    MeasurementItem measurement("measurementId", "measurementSubId", "",
-                                "measurementType", 0.1, "111", "title");
-
-    TSM_ASSERT("Empty labels are not terminal", measurement.isUseable());
-  }
-
-  void test_valid_construction_when_type_empty() {
-    MeasurementItem measurement("measurementId", "measurementSubId",
-                                "measurementLabel", "", 0.1, "111", "title");
-
-    TSM_ASSERT("Empty type info is not terminal", measurement.isUseable());
-  }
-
-  void test_valid_construction_when_title_empty() {
-    MeasurementItem measurement("measurementId", "measurementSubId",
-                                "measurementLabel", "measurementType", 0.1,
-                                "111", "");
-
-    TSM_ASSERT("Empty run title is not terminal", measurement.isUseable());
-  }
-};
-
-#endif /* MANTIDQT_CUSTOMINTERFACES_MEASUREMENTITEMTEST_H_ */
diff --git a/qt/scientific_interfaces/test/ReflMockObjects.h b/qt/scientific_interfaces/test/ReflMockObjects.h
index c2d6f0a814f..7c433c39fed 100644
--- a/qt/scientific_interfaces/test/ReflMockObjects.h
+++ b/qt/scientific_interfaces/test/ReflMockObjects.h
@@ -7,15 +7,15 @@
 #ifndef MANTID_CUSTOMINTERFACES_REFLMOCKOBJECTS_H
 #define MANTID_CUSTOMINTERFACES_REFLMOCKOBJECTS_H
 
-#include "../ISISReflectometry/IReflAsciiSaver.h"
-#include "../ISISReflectometry/IReflAutoreduction.h"
-#include "../ISISReflectometry/IReflBatchPresenter.h"
-#include "../ISISReflectometry/IReflMainWindowPresenter.h"
-#include "../ISISReflectometry/IReflMainWindowView.h"
-#include "../ISISReflectometry/IReflMessageHandler.h"
-#include "../ISISReflectometry/IReflSearcher.h"
-#include "../ISISReflectometry/InstrumentOptionDefaults.h"
-#include "../ISISReflectometry/ReflSearchModel.h"
+#include "Common/IMessageHandler.h"
+#include "GUI/Batch/IBatchPresenter.h"
+#include "GUI/Instrument/InstrumentOptionDefaults.h"
+#include "GUI/MainWindow/IMainWindowPresenter.h"
+#include "GUI/MainWindow/IMainWindowView.h"
+#include "GUI/Runs/IReflAutoreduction.h"
+#include "GUI/Runs/IReflSearcher.h"
+#include "GUI/Runs/ReflSearchModel.h"
+#include "GUI/Save/IReflAsciiSaver.h"
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidKernel/ICatalogInfo.h"
@@ -53,7 +53,7 @@ private:
 
 /**** Views ****/
 
-class MockMainWindowView : public IReflMainWindowView {
+class MockMainWindowView : public IMainWindowView {
 public:
   MOCK_METHOD3(askUserString,
                std::string(const std::string &, const std::string &,
@@ -69,7 +69,7 @@ public:
 
 /**** Presenters ****/
 
-class MockMainWindowPresenter : public IReflMainWindowPresenter {
+class MockMainWindowPresenter : public IMainWindowPresenter {
 public:
   MOCK_METHOD1(runPythonAlgorithm, std::string(const std::string &));
   MOCK_METHOD1(settingsChanged, void(int));
@@ -78,7 +78,7 @@ public:
   ~MockMainWindowPresenter() override{};
 };
 
-class MockReflBatchPresenter : public IReflBatchPresenter {
+class MockBatchPresenter : public IBatchPresenter {
 public:
   MOCK_METHOD0(notifyReductionResumed, void());
   MOCK_METHOD0(notifyReductionPaused, void());
@@ -139,7 +139,7 @@ public:
 };
 
 /**** Catalog ****/
-class MockMessageHandler : public IReflMessageHandler {
+class MockMessageHandler : public IMessageHandler {
 public:
   MOCK_METHOD2(giveUserCritical,
                void(const std::string &, const std::string &));
diff --git a/qt/scientific_interfaces/test/ReflNexusMeasurementItemSourceTest.h b/qt/scientific_interfaces/test/ReflNexusMeasurementItemSourceTest.h
deleted file mode 100644
index 7840726fb88..00000000000
--- a/qt/scientific_interfaces/test/ReflNexusMeasurementItemSourceTest.h
+++ /dev/null
@@ -1,62 +0,0 @@
-// Mantid Repository : https://github.com/mantidproject/mantid
-//
-// Copyright &copy; 2018 ISIS Rutherford Appleton Laboratory UKRI,
-//     NScD Oak Ridge National Laboratory, European Spallation Source
-//     & Institut Laue - Langevin
-// SPDX - License - Identifier: GPL - 3.0 +
-#ifndef MANTIDQT_CUSTOMINTERFACES_REFLNEXUSMEASUREMENTITEMSOURCETEST_H_
-#define MANTIDQT_CUSTOMINTERFACES_REFLNEXUSMEASUREMENTITEMSOURCETEST_H_
-
-#include "../ISISReflectometry/ReflNexusMeasurementItemSource.h"
-#include "MantidAPI/FileFinder.h"
-#include <Poco/File.h>
-#include <cxxtest/TestSuite.h>
-
-using namespace MantidQt::CustomInterfaces;
-
-class ReflNexusMeasurementItemSourceTest : public CxxTest::TestSuite {
-public:
-  // This pair of boilerplate methods prevent the suite being created statically
-  // This means the constructor isn't called when running other tests
-  static ReflNexusMeasurementItemSourceTest *createSuite() {
-    return new ReflNexusMeasurementItemSourceTest();
-  }
-  static void destroySuite(ReflNexusMeasurementItemSourceTest *suite) {
-    delete suite;
-  }
-
-  void test_obtain_via_full_path() {
-
-    std::string path =
-        Mantid::API::FileFinder::Instance().findRun("POLREF14966");
-    Poco::File file(path);
-    TSM_ASSERT("Test setup incorrect", !path.empty() && file.exists());
-
-    ReflNexusMeasurementItemSource source;
-    MeasurementItem measurementItem = source.obtain(path, "POLREF1111");
-    TS_ASSERT(measurementItem.isUseable());
-    TS_ASSERT(measurementItem.isUseable());
-    TS_ASSERT_EQUALS("34", measurementItem.id());
-    TS_ASSERT_EQUALS("0", measurementItem.subId());
-    TS_ASSERT_EQUALS(
-        "1111",
-        measurementItem
-            .run()); // Run number is taken from fuzzy because log is missing.
-    TS_ASSERT_EQUALS("", measurementItem.label());
-    TS_ASSERT_EQUALS("", measurementItem.label());
-  }
-
-  void test_obtain_via_fuzzy_path() {
-    ReflNexusMeasurementItemSource source;
-
-    MeasurementItem measurementItem = source.obtain("made_up", "POLREF14966");
-    TS_ASSERT(measurementItem.isUseable());
-    TS_ASSERT_EQUALS("34", measurementItem.id());
-    TS_ASSERT_EQUALS("0", measurementItem.subId());
-    TS_ASSERT_EQUALS("14966", measurementItem.run());
-    TS_ASSERT_EQUALS("", measurementItem.label());
-    TS_ASSERT_EQUALS("", measurementItem.label());
-  }
-};
-
-#endif /* MANTIDQT_CUSTOMINTERFACES_REFLNEXUSMEASUREMENTITEMSOURCETEST_H_ */
-- 
GitLab