diff --git a/qt/scientific_interfaces/CMakeLists.txt b/qt/scientific_interfaces/CMakeLists.txt
index 06cee9ee82c69a26d8a578ce71ddc7e7d03c3ff2..b102625903f48c79a8c771d2e395d134e179fc9c 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 06140803266918c94d61e56e4ddb0b88840400c5..265b937fd8fdf57decb0750bd475413a703ed265 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 0000000000000000000000000000000000000000..2869898c5a2dd4dae08eee5e485079300571c4c6
--- /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 51206f1a3d2378843e0e82aa1ace6e850758add0..8f04bfa1c16eb3d1aad7448b7c44044d75862791 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 0525fe428a87797eafa7198beca5b6a44f16fcb4..7c0f9700dc540968af2b0411ad648487ac6e2fa0 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 2bc15f13507c3e7f6a8049a9592d70a20b98a2a8..5fc1224e9f35b8f2936eb8f27b00fa1a7c13258b 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 0e26d69d95ac6a8cc84ec27a15d7a18641353887..92e8caf9fcb5c640cb11a364b5ca4dad7e8877d7 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 2549a7570bba716fb31eae664d48198a02310032..86188a49bfb7118831e04fa36128af53641179a1 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 53953da9fe58ba985fefbf702e8069a18f0709b6..61d1c4a3ddd45116d2220c15cdedfa94dc0f6c8b 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 94856d259fbea35f3742b083bd61833eaf1a5e21..bf51b0a472d8c9ca5496a725b0c30e6f75dae56d 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 ed5bb31bcae4591da258d02fac4093457154cd44..e4970f1db502bbb39a7324adef24ae947dabe42e 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 538e3c4d7081eb3f1e9221de2416aaccdbc9528f..eac9d5deec3256f84dd45b4ae1359c246144cb40 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 0000000000000000000000000000000000000000..687138fdf939bb99325dfdaf5c5a1243ea5f3095
--- /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 dfbe14180ca02996d170a0a5590eae44c29d836f..bd01bac1a5bd4e95f75ca05d38d2a04862683fa9 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 c11fefaaa111098555196046e9e234ed7385585c..7dee75a3bf3a8ca2f8918c5db5cdcc61e3c077f3 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 5e1b3db9718e0067eeebc546cba9d226c9aa6abe..16c9824199ddc0ee9e732cfc8942d05e3ac007a0 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 c56eae3aed33f1ea089242cde4892f87aa6aaf5c..d321f24ca29077e3e8e381865479e723c3aa3a7d 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 1b6e6f0c69e602b9e5861b375395ce80e03d7090..aef659e0682f6db0e75fc7712fceb45b23b1df29 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 4351d732f0914291cf73f1be760d158fe8691f0f..e28d25f588b4a3d909a49c0ed335f605f12ba2c3 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 0bec4357b11f185991c202e6fc94a0661b6ddd71..de2754b62fea1527e8a376b780133256a35e176a 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 4168e83f5ab3c6a3af0bcbbeb9f8ace68a1d0927..a905bfdadb3be59756cbe2f9cca05739f3ed48b4 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 ed52629a07a499acea944af3de0a95afdd9ab058..4d78823195fb56a9d5ac4b54f461e8a405843ce2 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 e32793f043dc5f208031ac1e44e9ad0c1050ad04..434e7fb9038a0e9f5a92cad814c5e0112f990bb4 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 e19fc6a4ea3eec05836d749adcf5f0996fc7def1..02147c69448a95d79de276141c540ea3040ede88 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 f223055b0a5ab3adfc70f023b96f1ef7c7876ab0..81e6775e401fddac291f08eaa71698c669f82579 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 6062b63959b9776e73fae18e986a404ef5e46592..812a9c20348fb5c7788da77e7713257c5d7ca080 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 eac28eed88dac49a0704f826008fc965f969fe2f..79c7a59df771b95e4a69d3ecc2c501dc89651d5d 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 dc1fa88eb82713b7f4ea3880e8aa08a33c30f4d6..f8027c6199b367a315a0bc3433b2e004cd17cc96 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 4a1c29d0fcf2672914e6976c6925972f706de842..a35bc58c8761a6af03ca8fe99fdfee1b8a5b0178 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 624836265d78bb58bc3a90adbd4fa1de4a5390aa..112da3da432528a49bc65ad1e65d198f4f2e8219 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 8bcf7c5f504b64258cdf522baa110098bc35bb2f..d254b6b1eef6644c67bd21ae69bf4818f123f937 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 0347e138771fe71127899d6a2316387582bdfa6a..f3bc871557b7ed4614365b4eee12e351b63e907b 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 177f976a765511d0b45eebc1bc9847c1ab788e7a..ed7b21659cafcdf15b4de1e3846cd7eddf906482 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 eb7b83967fd8b251bc82a9f2e6f79541339c7daf..c936d37ac043b4cf5e59b55121e8fbbcd9be785d 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 70622829458feedac15a909cfde8b5010288c9ae..b8d90e201580c9e6d52b7eb40da6a5f3c48b767d 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 b6868fee74d95fd8ab540ac8afeadf1a2af24feb..3a09141905a015e7c3a3821f9a6379622f973585 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 5135c0344bdea2d6c98202ee67ff3f8b028c6aa2..2c1ccdcdccc9344b735251f0598c0f71f368a073 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 e71930c44986e7b545fa5ada6efa06e35774fae2..bf64e5afd9950cf05b0b1e040c4265d5e19d3ff6 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 4fcea74614b07defbb408fae6880689e1ef76488..b55125d98ab4125eabd2fbe1f24be9b447c1d410 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 d72b00e16df0b686af0287c74497999977b032dd..c4edf53b9fa1296404ac8cde73cf3fb7c496e965 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 3759ebbaaa3d918637d7f7814bcf5b56dd3b286d..89274e503ffd298b8c0b8b10c4155264954063e4 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 3678417b9a7620602ee10d1d5616b45896736c9e..569707d0ce72b35ab8fc76867ff06d7bec0d5552 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 0000000000000000000000000000000000000000..97d38a41fef0cad026cbfe1547dcca43a4536d11
--- /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 4b5496f2514ea09977bd474d946677077922fe0e..4cb8f8f3df82ed9d991dc0f2a8e22c6ea83a5cf4 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 dcb229eebbf193be8dd2ef134074ead68aa20c8f..ac7247a207aedfc28930702e157f8974269a5f89 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 254db344beb2ce35aa7801c7d389ed77ecf59f01..b53e5a7816b5354be3f4af37c0d40953164fde3c 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 0000000000000000000000000000000000000000..481fe20ccfc6062a452d2256f9f34c050b5d045a
--- /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 84db9fe4846a504ad985b6ab07a8f3243e934ef9..09d4a70a09b19a7de2b8b05c5d29fc956f90cdd6 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 e7b1853bf8213081dfd36bafbff21cf78bdd0eec..3e2250bdd9191999b310845c4844826db4c7119f 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 16352054b4838af9f5f07480854036655fc92e1e..19857773ac22e2793d4224c84013f726014a4644 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 b13956dcea6018e4449cd91327032725b57e2b9a..cff44ade0b05ec2b79d23ae311124341fb857701 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 e9b00773ff56cc79eeacd7f1876c0207d3f1d457..75d3a7e6ce5754edfa3f2efee011a02fba8997f6 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 83ad2767f5300dfff72d37b917902e1c5300d6ba..e25f6c5ebfe629a25ed766225a04afea607857ba 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 b0b4f0bab72857798b7bcc1ffb67aea9d2f71705..b5f9a9fe3d013e83e36b1769cf37916f9e95a51e 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 62ebb079d20a32e77b60f250f157f0fa2e1cbf4f..bbd06147c0c8e13813d458ea260b85f576d33180 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 197f972e112748e13f8bc201d5b8346d08cfaa25..c92585ee3c84a134e214f50baecad6e81abcfc7c 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 ca4eb928d4154b448366a97ba39be69ae149ac0b..2ce04256d7dc42208f4ddce23e01b041ba721e97 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 cd462cede419b42b6bb72853456535c131a137d9..2333811eca0f1d8b46fb9b5533200cf797c3fe7e 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 0fb0f697187f08c91fed65d950dbd4d9abba125c..6073c35480a5487daca23ad469634b27e9cde0d0 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 fd65d3dd843ab16f9b7a5aa282bef5084bf52861..4ce9bb85d204bcbef434c8edd81e65bce7afc819 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 bda66b1e8ca53d1b895880d3bc4aba5f72ad1013..406844d42695abe25e79d638987b01eaf4653836 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 ad0e1ca0bdd5cf02526b1ba90e1767a1b87278e7..e880ae663bf276e3f3ea1ed1b1a5eabc17b7c16f 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 3aee16a4be83df4d08611ba2e54497e44577ca83..77b660bbd4e51d6eee51fc9ae448e8daa833d483 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 e917d8e018b50f0cac1263112e0680b9379bb545..ef747a38a68731a8934cb52d9038b805f1ff97af 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 4a4eaf732a1fd9cd8a670453ede3596e0d360e2e..9c45f760a4085a3c2fc6d0978cffb6ce9a20189c 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 404636438f55c6ac59f75789f8614a6fbbf14613..1d962c73e64d54f3d154268af958ff5e89e2ecd9 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 1e584cf13b9c8e058b47cc02aebac30f75f70bd5..c540a8f79ddd17b5c80ec349328b2b6ffe2cee50 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 d8f513bcc263915b6407e3b354f3d9785a8a7426..4e7524b195da9bb8c547ebb022e48dfd1daae7c1 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 99f522fce1f28a95d9e79e23173a7a9f5fce6516..d92d3a31902a4375212b392aba48df280fa5c644 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 c88d8c958bfa5ac187ade283af60c85488f24a8b..c613dd26ff0f60fa3af5736363dea02b80f35ebf 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 2e0c7a4d02b6efd1a556ebb7fa68e8b2baa84a6d..4a23d55aae07851f96fa4ea38bf4e50922e8802c 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 b02c84d0c80d70cc4967cb5cbb3ef0fc17cfbca7..3f6ce3ca2237c6aeea4bd7a785e19539482c8428 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 fde3b86fec82a0745be0eb94abb18f62943d2471..ec848344cf7240faf5355c5c5c6f4140768988fa 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 6b6d5884f704d0bd9d8a1f4c0f2cf3be9155e4dd..70b71524827ba13e3aa7835003eb76fcf659ea6b 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 3f2807bc10cb32f8f7753c147882954aa7a7d1f0..60ccf5dbac6f306679a9cf87182841932ab373ad 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 326725b085926490dc749fdb0d4947a9cc5d8b9e..62da9260a856e4b11763915111a30461523da571 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 619f68c6b11729de77ae4daf35c423b6de0e41c6..c744a086445cd5b69c96553003d4a797200692b7 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 00fb62505113a14e7505b03c7047bb31c980d99d..0000000000000000000000000000000000000000
--- 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 ffcc1a62338d008a9fba1c17c4ee11e8a0504909..0000000000000000000000000000000000000000
--- 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 8609138a5fa04f367bb0ed3ad1e585b941e86318..0e5221a15f15732763bad76ea68fb4be4248e14c 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 447188156617f27126196640051a653f17185c59..0ce36c1a76c258eecc9c47c9e284ef7e09900e5a 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 6b6e3c4e6733fb3d8906f65e399f4ac4ab5a39f4..6c1eaa1e5fe7043f3d201b60f884739165dfc770 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 f892c94663a46d47b167bf99533529268da7fc1b..9c09f65e87c06c33c54c83d50865950d19114e49 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 186f888077532c099f70f7392e4bd4407d91710e..dc164b0e2cfcccfaee64831cb419c56a5563ad27 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 317f5deb0a26f37c74a650957cf448e71ef799be..2c8fe28abfafeb040be85a0bb79874b1cab2bb65 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 23d8fc325826da263e85ca515ddf069d85fcb503..171230b0f342592859a7fe39472d8eda26ce531b 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 e49ae684d1f23bb5cbce5c93c6fdc2d259e7ab98..30fed488deef916b48c4468e85dd821ddee78a20 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 72914a92aace24014f78318504fd2d5c71136542..fe5e97e929dab4f71e3560f717616b58110ec982 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 014c298f8b4ef6b1167a557e116e46465b5b6be1..f51e6d85c5b8e40bd6a1c1164ef0ae219114552b 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 0d1e3ccc4889d099ce2e968d7d36a497b3b18a08..4b4e421adc36686908cc6b5f9fc098859f1d0a07 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 285503cad73795ebd35b7c45b349bb7ff2af2987..0dbd272cffa2c7aeff7f43741c9c40eee87579a8 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 f54803425944738db7f1f9bc4185898eee4ca4b6..315d54e036d6e65d728f8006c0c6d260f7c0474d 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 581cb683e9cfe2b95e76dd452841ea0789b35ff7..1c3928c196315dd65b5931ce8ebbf96f818da880 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 4dc1d5e3d4e26d56618a137bf6c47b6cc943f7a3..2fa1a768efe8cf65ad65de3b3c5b44f7552cce94 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 2ebacb2eff981f2b8ece3bb398ba4b00e2b258f7..7e0f26af5adab1ced33c4037446483b7b7bcd1e2 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 780a614dc193b00c8ef565b83ef04ae4423c8fff..efd11fc11492dbad450782426c48f4e9412f59c8 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 c646b167910c1afc196486b1b89a52dcc8ef9184..454611f1893a1e136655c9363995172984ccd033 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 1dcc48dcabba7d33cf0968a045505b1ad739f432..9c40b85416ddaf961d4a7fe3e0c93b94a34ecb77 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 bf9acc3cb11756a9312c1a1012b3dff62e3e4c5a..11540d082d1c8a95fb17c17536360683fd13f256 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 bfbad3fb249c561323adb7bac03a5360be9e0313..655c85d497feb4ff67e4469cb3ca802b21585eab 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 1188e56b8ee0f26d3ff31a313246fb807b1de18c..634fe04cd23dff6e999bde16e0a7a98ee3014ff7 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 8593a7863cca35f31ee26c455ad09a1a415317d4..d91f89aad5a294761afa07a78456dd53299b1356 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 6b86ec245dceaae8487e83cd6e08086b9b10bbfe..f6f7f9f3865850951fcf262f955ecb4398ddfb54 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 fbb65f73cce583d3bdc713bc1b439bb5e4a90509..19e8a962392d73909a57b5953868b582602b503b 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 a9800b542fecf890787a69c1454ab99f344323d9..a7cb599b17f3d448aefc112db8effe110a23e9bb 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 13cc7ce0be774f6ec7c065bbc454b71a6caf1d7b..7308d5c48d0778a714531f6b49a8e9445527ee1d 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 ff828d31122828ff51b3a14052daeccbdb8860bd..c5a4519e9041a7de4fd4835c09a27f2fcc0208ea 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 1e091d82d3c448991493019ff3c9d016879dc820..0000000000000000000000000000000000000000
--- 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 5bcf33d00adc9515fd74b30d91ac67e89dde35d2..0000000000000000000000000000000000000000
--- 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 8825dd0afa1fcbdab261162131f3c7c4f7a8d1e7..0000000000000000000000000000000000000000
--- 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 024e9901717177bc0768221ec1e9aea9fc9d592f..0000000000000000000000000000000000000000
--- 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 bf43f6afcb0c8285557268f9992edaf8a3c4b051..0000000000000000000000000000000000000000
--- 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 a3639aecd5b20130281550dc27070c18cecd4c3e..0000000000000000000000000000000000000000
--- 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 b9d24253daa43b7ca983e6d64c879c5fb3583277..0000000000000000000000000000000000000000
--- 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 6b080b404ac36c7ab32768a2a256c0e2d560cfa4..0000000000000000000000000000000000000000
--- 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 98bcbcfd90a7642fedc9dbc52d681d221c9d3766..0000000000000000000000000000000000000000
--- 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 3b1fc8fc40d1140d7996402c13bcc0a4ddbc5a0c..0000000000000000000000000000000000000000
--- 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 a3ecae3b1691f3b67c6dba8642872b0ba6886f9c..0000000000000000000000000000000000000000
--- 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 b728a2231d9469dcff2a7584d0e1d24163b19d4a..2e8d01cf5b44f784868fb583a907461f37bece92 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 fa2edb07a03160063ab799a42daa8270f2c7a5ea..0ec832bf0884b8882daabf67ee77dff6ec003812 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 d013106f60e45dd033741f003880dfca18fb2a9e..b2b3a7f4c55957713d2d9f1e62f7c252c4faad86 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 b4fcaa7cf9635ad861d7aa17caaa3530fa8270a3..91c7bb15f95f7f0bb82af069fed3938b41aad8b5 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 2e6b10cff7e5b6a324bb1aa8e5a4fdb4a83e5111..68d732cec620fb3634d25708147fa988aebace9e 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 7d633a4356006bdd60de5e379c7ac82cc18587af..e337e6cb79f5b6f061b757bf5316e62cc758da99 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 bbc99919800582878d6de26747962118019d9835..6dc6fc8eecd2015588f83f4663036b58761f7f9b 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 538fa462eee7cdca0ffc6e6c307aadbd8737cdc8..6a0aac8fc86cc169895d9ff8f682f82b3db9e6ce 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 24b2b6d2bd782cab2e3781ede696508501d6825a..0000000000000000000000000000000000000000
--- 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 c2d6f0a814fdeac6dc6bdbea3863aea7d9fe3a07..7c433c39fed0257c97e3b13bc5993f6247637caf 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 7840726fb884502f35bc5ae2095de414f7a234ba..0000000000000000000000000000000000000000
--- 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_ */