diff --git a/scripts/Diffraction/isis_powder/abstract_inst.py b/scripts/Diffraction/isis_powder/abstract_inst.py
index 050e5aa63828c5230b640e86c79adc609ca822fe..4dfa3020de6f8bb21290e6af0a1c0bba8639c918 100644
--- a/scripts/Diffraction/isis_powder/abstract_inst.py
+++ b/scripts/Diffraction/isis_powder/abstract_inst.py
@@ -1,10 +1,6 @@
 from __future__ import (absolute_import, division, print_function)
 
 import os
-from abc import ABCMeta, abstractmethod
-
-from six import add_metaclass
-
 from isis_powder.routines import calibrate, focus
 
 
@@ -17,7 +13,6 @@ from isis_powder.routines import calibrate, focus
 # to denote internal methods to abstract_inst we will use '_abs_' to denote it as a
 # private method for the scripts
 
-@add_metaclass(ABCMeta)
 class AbstractInst(object):
     def __init__(self, user_name=None, calibration_dir=None, output_dir=None):
         # ----- Properties common to ALL instruments -------- #
@@ -31,10 +26,6 @@ class AbstractInst(object):
     def calibration_dir(self):
         return self._calibration_dir
 
-    @property
-    def raw_data_dir(self):
-        return self._raw_data_dir
-
     @property
     def output_dir(self):
         return self._output_dir
@@ -43,8 +34,8 @@ class AbstractInst(object):
     def user_name(self):
         return self._user_name
 
-    def _create_calibration_vanadium(self, vanadium_runs, empty_runs,
-                                     do_absorb_corrections=True, gen_absorb_correction=False):
+    def _create_vanadium(self, vanadium_runs, empty_runs,
+                         do_absorb_corrections=True, gen_absorb_correction=False):
         """
         Creates a vanadium calibration - should be called by the concrete instrument
         :param vanadium_runs: The vanadium run or run in range (depending on instrument) to process
@@ -69,26 +60,23 @@ class AbstractInst(object):
 
     # Mandatory overrides
 
-    @abstractmethod
     def _get_run_details(self, run_number_string):
         """
         Returns a RunDetails object with various properties related to the current run set
         :param run_number_string: The run number to look up the properties of
         :return: A RunDetails object containing attributes relevant to that run_number_string
         """
-        pass
+        raise NotImplementedError("get_run_details must be implemented per instrument")
 
     @staticmethod
-    @abstractmethod
     def _generate_input_file_name(run_number):
         """
         Generates a name which Mantid uses within Load to find the file.
         :param run_number: The run number to convert into a valid format for Mantid
         :return: A filename that will allow Mantid to find the correct run for that instrument.
         """
-        pass
+        raise NotImplementedError("generate_input_file_name must be implemented per instrument")
 
-    @abstractmethod
     def _generate_output_file_name(self, run_number_string):
         """
         Generates the filename which is used to uniquely identify and save the workspace. This should include any
@@ -96,26 +84,26 @@ class AbstractInst(object):
         :param run_number_string: The run string to uniquely identify the run
         :return: The file name which identifies the run and appropriate parameter settings
         """
-        raise NotImplementedError("Output names not implemented")
+        raise NotImplementedError("generate_output_file_name must be implemented per instrument")
 
-    @abstractmethod
     def _spline_vanadium_ws(self, focused_vanadium_banks):
         """
         Takes a background spline of the list of processed vanadium banks
         :param focused_vanadium_banks: The list processed (and cropped) vanadium banks to take a spline of
         :return: The splined vanadium workspaces as a list
         """
-        return None
+        # XXX: Although this could be moved to common if enough instruments spline the same way and have
+        # the instrument override the optional behaviour
+        raise NotImplementedError("spline_vanadium_ws must be implemented per instrument")
 
     # Optional overrides
-    @abstractmethod
     def _apply_absorb_corrections(self, run_details, van_ws, gen_absorb=False):
         """
         Generates vanadium absorption corrections to compensate for the container
         :param van_ws: A reference vanadium workspace to match the binning of or correct
         :return: A workspace containing the corrections
         """
-        raise NotImplementedError("Not implemented for this instrument yet")
+        raise NotImplementedError("apply_absorb_corrections Not implemented for this instrument yet")
 
     def _attenuate_workspace(self, input_workspace):
         """
@@ -205,7 +193,6 @@ class AbstractInst(object):
         """
         Generates the various output paths and file names to be used during saving or as workspace names
         :param run_details: The run details associated with this run
-        :param output_directory: The output directory to use as part of the output path
         :return: A dictionary containing the various output paths and generated output name
         """
         output_directory = os.path.join(self._output_dir, run_details.label, self._user_name)
diff --git a/scripts/Diffraction/isis_powder/pearl.py b/scripts/Diffraction/isis_powder/pearl.py
index f2dd265989e40590e0c2c1cade65a22285af3ffa..3f299867ae36db3322a0914c844b71cdbc5c7a82 100644
--- a/scripts/Diffraction/isis_powder/pearl.py
+++ b/scripts/Diffraction/isis_powder/pearl.py
@@ -9,6 +9,7 @@ from isis_powder.pearl_routines import pearl_algs, pearl_output, pearl_advanced_
 
 
 class Pearl(AbstractInst):
+
     def __init__(self, **kwargs):
         basic_config_dict = yaml_parser.open_yaml_file_as_dictionary(kwargs.get("config_file", None))
 
@@ -29,7 +30,7 @@ class Pearl(AbstractInst):
         return self._focus(run_number=run_number, input_batching=InputBatchingEnum.Summed,
                            do_van_normalisation=self._inst_settings.van_norm)
 
-    def create_calibration_vanadium(self, run_in_range, **kwargs):
+    def create_vanadium(self, run_in_range, **kwargs):
         self._switch_long_mode_inst_settings(kwargs.get("long_mode"))
         kwargs["perform_attenuation"] = False
         self._inst_settings.update_attributes(kwargs=kwargs)
@@ -37,9 +38,9 @@ class Pearl(AbstractInst):
         run_details = self._get_run_details(run_number_string=run_in_range)
         run_details.run_number = run_details.vanadium_run_numbers
 
-        return self._create_calibration_vanadium(vanadium_runs=run_details.vanadium_run_numbers,
-                                                 empty_runs=run_details.empty_runs,
-                                                 do_absorb_corrections=self._inst_settings.absorb_corrections)
+        return self._create_vanadium(vanadium_runs=run_details.vanadium_run_numbers,
+                                     empty_runs=run_details.empty_runs,
+                                     do_absorb_corrections=self._inst_settings.absorb_corrections)
 
     # Params #
 
diff --git a/scripts/Diffraction/isis_powder/polaris.py b/scripts/Diffraction/isis_powder/polaris.py
index ea0130cdbbbefc11062872adaf2cb5d3e0780292..bfccfaea67505132e36f0095456f29a8e6708f22 100644
--- a/scripts/Diffraction/isis_powder/polaris.py
+++ b/scripts/Diffraction/isis_powder/polaris.py
@@ -32,12 +32,12 @@ class Polaris(AbstractInst):
         return self._focus(run_number=self._inst_settings.run_number, input_batching=self._inst_settings.input_mode,
                            do_van_normalisation=self._inst_settings.do_van_normalisation)
 
-    def create_calibration_vanadium(self, **kwargs):
+    def create_vanadium(self, **kwargs):
         self._inst_settings.update_attributes(kwargs=kwargs)
         run_details = self._get_run_details(run_number_string=int(self._inst_settings.run_in_range))
         run_details.run_number = run_details.vanadium_run_numbers
 
-        return self._create_calibration_vanadium(
+        return self._create_vanadium(
             vanadium_runs=run_details.vanadium_run_numbers, empty_runs=run_details.empty_runs,
             do_absorb_corrections=self._inst_settings.do_absorb_corrections,
             gen_absorb_correction=None)  # TODO POLARIS doesn't need this flag to gen abs. corrections does PEARL?