diff --git a/Framework/API/inc/MantidAPI/IFunction1D.h b/Framework/API/inc/MantidAPI/IFunction1D.h
index 61f9ea1d1b7bc85ad7f934af6978782dfa420740..be43c377419001ec235f83712783ea8482b89cdd 100644
--- a/Framework/API/inc/MantidAPI/IFunction1D.h
+++ b/Framework/API/inc/MantidAPI/IFunction1D.h
@@ -12,9 +12,11 @@
 namespace Mantid {
 
 namespace CurveFitting {
+namespace Algorithms
+{
 class Fit;
 }
-
+}
 namespace API {
 
 //----------------------------------------------------------------------
@@ -88,7 +90,7 @@ protected:
   static Kernel::Logger g_log;
 
   /// Making a friend
-  friend class CurveFitting::Fit;
+  friend class CurveFitting::Algorithms::Fit;
 };
 
 typedef boost::shared_ptr<IFunction1D> IFunction1D_sptr;
diff --git a/Framework/CurveFitting/CMakeLists.txt b/Framework/CurveFitting/CMakeLists.txt
index 65770666d1efc315f6585a940a8d1979a6693d29..dfbff31c86c754d00670840aa2275393a8de0276 100644
--- a/Framework/CurveFitting/CMakeLists.txt
+++ b/Framework/CurveFitting/CMakeLists.txt
@@ -3,23 +3,33 @@ set ( SRC_FILES
 	#	src/SCDPanelErrors.cpp
 	# src/ChebyshevPolynomialBackground.cpp
 	#src/RefinePowderInstrumentParameters.cpp
+	src/Algorithms/CalculateChiSquared.cpp
+	src/Algorithms/CalculateGammaBackground.cpp
+	src/Algorithms/CalculateMSVesuvio.cpp
+	src/Algorithms/ConvertToYSpace.cpp
+	src/Algorithms/ConvolveWorkspaces.cpp
+	src/Algorithms/EstimatePeakErrors.cpp
+	src/Algorithms/EvaluateFunction.cpp
+	src/Algorithms/Fit.cpp
+	src/Algorithms/Fit1D.cpp
+	src/Algorithms/FitPowderDiffPeaks.cpp
+	src/Algorithms/LeBailFit.cpp
+	src/Algorithms/LeBailFunction.cpp
+	src/Algorithms/NormaliseByPeakArea.cpp
+	src/Algorithms/PawleyFit.cpp
+	src/Algorithms/PlotPeakByLogValue.cpp
+	src/Algorithms/RefinePowderInstrumentParameters.cpp
+	src/Algorithms/RefinePowderInstrumentParameters3.cpp
+	src/Algorithms/SplineBackground.cpp
+	src/Algorithms/SplineInterpolation.cpp
+	src/Algorithms/SplineSmoothing.cpp
 	src/AugmentedLagrangianOptimizer.cpp
-	src/CalculateChiSquared.cpp
-	src/CalculateGammaBackground.cpp
-	src/CalculateMSVesuvio.cpp
 	src/Constraints/BoundaryConstraint.cpp
-	src/ConvertToYSpace.cpp
-	src/ConvolveWorkspaces.cpp
 	src/CostFunctions/CostFuncFitting.cpp
 	src/CostFunctions/CostFuncLeastSquares.cpp
 	src/CostFunctions/CostFuncRwp.cpp
 	src/CostFunctions/CostFuncUnweightedLeastSquares.cpp
-	src/EstimatePeakErrors.cpp
-	src/EvaluateFunction.cpp
-	src/Fit.cpp
-	src/Fit1D.cpp
 	src/FitMW.cpp
-	src/FitPowderDiffPeaks.cpp
 	src/FuncMinimizers/BFGS_Minimizer.cpp
 	src/FuncMinimizers/DampingMinimizer.cpp
 	src/FuncMinimizers/DerivMinimizer.cpp
@@ -99,22 +109,13 @@ set ( SRC_FILES
 	src/IFittingAlgorithm.cpp
 	src/LatticeDomainCreator.cpp
 	src/LatticeFunction.cpp
-	src/LeBailFit.cpp
-	src/LeBailFunction.cpp
 	src/MSVesuvioHelpers.cpp
 	src/MultiDomainCreator.cpp
-	src/NormaliseByPeakArea.cpp
 	src/ParDomain.cpp
 	src/ParameterEstimator.cpp
-	src/PawleyFit.cpp
-	src/PlotPeakByLogValue.cpp
-	src/RefinePowderInstrumentParameters3.cpp
 	src/SeqDomain.cpp
 	src/SeqDomainSpectrumCreator.cpp
 	src/SpecialFunctionHelper.cpp
-	src/SplineBackground.cpp
-	src/SplineInterpolation.cpp
-	src/SplineSmoothing.cpp
 )
 
 set ( SRC_UNITY_IGNORE_FILES src/Fit1D.cpp src/GSLFunctions.cpp )
@@ -124,24 +125,34 @@ set ( INC_FILES
 	#	inc/MantidCurveFitting/SCDPanelErrors.h
 	# inc/MantidCurveFitting/ChebyshevPolynomialBackground.h
 	#inc/MantidCurveFitting/RefinePowderInstrumentParameters.h
+	inc/MantidCurveFitting/Algorithms/CalculateChiSquared.h
+	inc/MantidCurveFitting/Algorithms/CalculateGammaBackground.h
+	inc/MantidCurveFitting/Algorithms/CalculateMSVesuvio.h
+	inc/MantidCurveFitting/Algorithms/ConvertToYSpace.h
+	inc/MantidCurveFitting/Algorithms/ConvolveWorkspaces.h
+	inc/MantidCurveFitting/Algorithms/EstimatePeakErrors.h
+	inc/MantidCurveFitting/Algorithms/EvaluateFunction.h
+	inc/MantidCurveFitting/Algorithms/Fit.h
+	inc/MantidCurveFitting/Algorithms/Fit1D.h
+	inc/MantidCurveFitting/Algorithms/FitPowderDiffPeaks.h
+	inc/MantidCurveFitting/Algorithms/LeBailFit.h
+	inc/MantidCurveFitting/Algorithms/LeBailFunction.h
+	inc/MantidCurveFitting/Algorithms/NormaliseByPeakArea.h
+	inc/MantidCurveFitting/Algorithms/PawleyFit.h
+	inc/MantidCurveFitting/Algorithms/PlotPeakByLogValue.h
+	inc/MantidCurveFitting/Algorithms/RefinePowderInstrumentParameters.h
+	inc/MantidCurveFitting/Algorithms/RefinePowderInstrumentParameters3.h
+	inc/MantidCurveFitting/Algorithms/SplineBackground.h
+	inc/MantidCurveFitting/Algorithms/SplineInterpolation.h
+	inc/MantidCurveFitting/Algorithms/SplineSmoothing.h
 	inc/MantidCurveFitting/AugmentedLagrangianOptimizer.h
-	inc/MantidCurveFitting/CalculateChiSquared.h
-	inc/MantidCurveFitting/CalculateGammaBackground.h
-	inc/MantidCurveFitting/CalculateMSVesuvio.h
 	inc/MantidCurveFitting/Constraints/BoundaryConstraint.h
-	inc/MantidCurveFitting/ConvertToYSpace.h
-	inc/MantidCurveFitting/ConvolveWorkspaces.h
 	inc/MantidCurveFitting/CostFunctions/CostFuncFitting.h
 	inc/MantidCurveFitting/CostFunctions/CostFuncLeastSquares.h
 	inc/MantidCurveFitting/CostFunctions/CostFuncRwp.h
 	inc/MantidCurveFitting/CostFunctions/CostFuncUnweightedLeastSquares.h
 	inc/MantidCurveFitting/DllConfig.h
-	inc/MantidCurveFitting/EstimatePeakErrors.h
-	inc/MantidCurveFitting/EvaluateFunction.h
-	inc/MantidCurveFitting/Fit.h
-	inc/MantidCurveFitting/Fit1D.h
 	inc/MantidCurveFitting/FitMW.h
-	inc/MantidCurveFitting/FitPowderDiffPeaks.h
 	inc/MantidCurveFitting/FuncMinimizers/BFGS_Minimizer.h
 	inc/MantidCurveFitting/FuncMinimizers/DampingMinimizer.h
 	inc/MantidCurveFitting/FuncMinimizers/DerivMinimizer.h
@@ -224,43 +235,45 @@ set ( INC_FILES
 	inc/MantidCurveFitting/Jacobian.h
 	inc/MantidCurveFitting/LatticeDomainCreator.h
 	inc/MantidCurveFitting/LatticeFunction.h
-	inc/MantidCurveFitting/LeBailFit.h
-	inc/MantidCurveFitting/LeBailFunction.h
 	inc/MantidCurveFitting/MSVesuvioHelpers.h
 	inc/MantidCurveFitting/MultiDomainCreator.h
-	inc/MantidCurveFitting/NormaliseByPeakArea.h
 	inc/MantidCurveFitting/ParDomain.h
 	inc/MantidCurveFitting/ParameterEstimator.h
-	inc/MantidCurveFitting/PawleyFit.h
-	inc/MantidCurveFitting/PlotPeakByLogValue.h
-	inc/MantidCurveFitting/RefinePowderInstrumentParameters3.h
 	inc/MantidCurveFitting/SeqDomain.h
 	inc/MantidCurveFitting/SeqDomainSpectrumCreator.h
 	inc/MantidCurveFitting/SpecialFunctionSupport.h
-	inc/MantidCurveFitting/SplineBackground.h
-	inc/MantidCurveFitting/SplineInterpolation.h
-	inc/MantidCurveFitting/SplineSmoothing.h
 )
 
 set ( TEST_FILES
 	# ChebyshevPolynomialBackgroundTest.h
 	# RefinePowderInstrumentParametersTest.h
 	#SCDPanelErrorsTest.h
+	Algorithms/CalculateChiSquaredTest.h
+	Algorithms/CalculateGammaBackgroundTest.h
+	Algorithms/CalculateMSVesuvioTest.h
+	Algorithms/ConvertToYSpaceTest.h
+	Algorithms/ConvolveWorkspacesTest.h
+	Algorithms/EstimatePeakErrorsTest.h
+	Algorithms/EvaluateFunctionTest.h
+	Algorithms/FitPowderDiffPeaksTest.h
+	Algorithms/FitTest.h
+	Algorithms/LeBailFitTest.h
+	Algorithms/LeBailFunctionTest.h
+	Algorithms/NormaliseByPeakAreaTest.h
+	Algorithms/PawleyFitTest.h
+	Algorithms/PlotPeakByLogValueTest.h
+	Algorithms/RefinePowderInstrumentParameters3Test.h
+	Algorithms/RefinePowderInstrumentParametersTest.h
+	Algorithms/SeqDomainSpectrumCreatorTest.h
+	Algorithms/SplineBackgroundTest.h
+	Algorithms/SplineInterpolationTest.h
+	Algorithms/SplineSmoothingTest.h
 	AugmentedLagrangianOptimizerTest.h
-	Constraints/BoundaryConstraintTest.h
-	CalculateChiSquaredTest.h
-	CalculateGammaBackgroundTest.h
-	CalculateMSVesuvioTest.h
 	CompositeFunctionTest.h
-	ConvertToYSpaceTest.h
-	ConvolveWorkspacesTest.h
+	Constraints/BoundaryConstraintTest.h
 	CostFunctions/CostFuncUnweightedLeastSquaresTest.h
 	CostFunctions/LeastSquaresTest.h
-	EstimatePeakErrorsTest.h
-	EvaluateFunctionTest.h
 	FitMWTest.h
-	FitPowderDiffPeaksTest.h
-	FitTest.h
 	FuncMinimizers/BFGSTest.h
 	FuncMinimizers/DampingMinimizerTest.h
 	FuncMinimizers/FABADAMinimizerTest.h
@@ -339,20 +352,10 @@ set ( TEST_FILES
 	IPeakFunctionIntensityTest.h
 	LatticeDomainCreatorTest.h
 	LatticeFunctionTest.h
-	LeBailFitTest.h
-	LeBailFunctionTest.h
 	MultiDomainCreatorTest.h
 	MultiDomainFunctionTest.h
-	NormaliseByPeakAreaTest.h
 	ParameterEstimatorTest.h
-	PawleyFitTest.h
-	PlotPeakByLogValueTest.h
-	RefinePowderInstrumentParameters3Test.h
-	SeqDomainSpectrumCreatorTest.h
 	SpecialFunctionSupportTest.h
-	SplineBackgroundTest.h
-	SplineInterpolationTest.h
-	SplineSmoothingTest.h
 )
 
 if (COVERALLS)
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/CalculateChiSquared.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/CalculateChiSquared.h
similarity index 97%
rename from Framework/CurveFitting/inc/MantidCurveFitting/CalculateChiSquared.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/CalculateChiSquared.h
index 34d50d67839be92218d2d149aad8272f7c9ce575..867ec832b324d9ad2353e516c3235fc791d48ed4 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/CalculateChiSquared.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/CalculateChiSquared.h
@@ -6,6 +6,7 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 /**
 
@@ -51,6 +52,7 @@ private:
   std::vector<size_t> m_fixedParameters;
 };
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
 
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/CalculateGammaBackground.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/CalculateGammaBackground.h
similarity index 95%
rename from Framework/CurveFitting/inc/MantidCurveFitting/CalculateGammaBackground.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/CalculateGammaBackground.h
index a7c97b9d8c0e2df881662d1519b7ed79b926887b..74a42ea1fe69c698cad413ad1fee1b92aac17136 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/CalculateGammaBackground.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/CalculateGammaBackground.h
@@ -7,13 +7,15 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Functions {
+struct ResolutionParams;
+}
+namespace Algorithms {
 //---------------------------------------------------------------------------
 // Forward declarations
 //---------------------------------------------------------------------------
 struct DetectorParams;
-namespace Functions {
-struct ResolutionParams;
-}
+
 
 /**
 
@@ -82,12 +84,12 @@ private:
                                      const FoilInfo &foilInfo,
                                      const Kernel::V3D &detPos,
                                      const DetectorParams &detPar,
-                                     const Functions::ResolutionParams &detRes);
+                                     const CurveFitting::Functions::ResolutionParams &detRes);
   /// Compute a TOF spectrum for the given inputs & spectrum
   void calculateTofSpectrum(std::vector<double> &result,
                             std::vector<double> &tmpWork, const size_t wsIndex,
                             const DetectorParams &detpar,
-                            const Functions::ResolutionParams &respar);
+                            const CurveFitting::Functions::ResolutionParams &respar);
 
   /// Check and store appropriate input data
   void retrieveInputs();
@@ -135,6 +137,7 @@ private:
   API::Progress *m_progress;
 };
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
 
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/CalculateMSVesuvio.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/CalculateMSVesuvio.h
similarity index 97%
rename from Framework/CurveFitting/inc/MantidCurveFitting/CalculateMSVesuvio.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/CalculateMSVesuvio.h
index 49691f5f00dd132911356d618afe40da92ca5577..70bc7eced890f2f1750c21056843afc4903f3ee6 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/CalculateMSVesuvio.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/CalculateMSVesuvio.h
@@ -9,15 +9,18 @@
 
 namespace Mantid {
 namespace CurveFitting {
-struct DetectorParams;
-namespace Functions{
-struct ResolutionParams;
-}
 namespace MSVesuvioHelper {
 class RandomNumberGenerator;
 struct Simulation;
 struct SimulationWithErrors;
 }
+namespace Functions{
+struct ResolutionParams;
+}
+namespace Algorithms {
+struct DetectorParams;
+
+
 
 /**
   Calculates the multiple scattering & total scattering contributions
@@ -115,7 +118,7 @@ private:
                     const double e1res) const;
 
   // Member Variables
-  MSVesuvioHelper::RandomNumberGenerator *m_randgen; // random number generator
+  CurveFitting::MSVesuvioHelper::RandomNumberGenerator *m_randgen; // random number generator
 
   size_t m_acrossIdx, m_upIdx, m_beamIdx; // indices of each direction
   Kernel::V3D m_beamDir;                  // Directional vector for beam
@@ -135,6 +138,7 @@ private:
   API::MatrixWorkspace_sptr m_inputWS;
 };
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
 
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/ConvertToYSpace.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/ConvertToYSpace.h
similarity index 98%
rename from Framework/CurveFitting/inc/MantidCurveFitting/ConvertToYSpace.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/ConvertToYSpace.h
index c548e60ad362f48487a0dfdb134dc85c73cfccdd..6ed4648408a367518609fab46670ec8d4c4dbe18 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/ConvertToYSpace.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/ConvertToYSpace.h
@@ -5,6 +5,7 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 /// Simple data structure to store nominal detector values
 /// It avoids some functions taking a huge number of arguments
@@ -101,6 +102,7 @@ private:
   API::MatrixWorkspace_sptr m_qOutputWS;
 };
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
 
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/ConvolveWorkspaces.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/ConvolveWorkspaces.h
similarity index 98%
rename from Framework/CurveFitting/inc/MantidCurveFitting/ConvolveWorkspaces.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/ConvolveWorkspaces.h
index 6ddf94ef02f09d5fe9d03eb6e3e5634aeaaaac83..19fa08127b0e1a54c8fdd6a0a6594e1faba251ec 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/ConvolveWorkspaces.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/ConvolveWorkspaces.h
@@ -15,6 +15,7 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 /** Convolution of two workspaces
 
     Copyright &copy; 2012 ISIS Rutherford Appleton Laboratory, NScD Oak Ridge
@@ -65,6 +66,7 @@ private:
   API::Progress *prog;
 };
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
 
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/EstimatePeakErrors.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/EstimatePeakErrors.h
similarity index 96%
rename from Framework/CurveFitting/inc/MantidCurveFitting/EstimatePeakErrors.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/EstimatePeakErrors.h
index fa886873c50b189aa5aab1cb5bc594f5b5a98c5b..c16a6b037959f973eed6c93204d73d11ed92ac45 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/EstimatePeakErrors.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/EstimatePeakErrors.h
@@ -5,6 +5,7 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 //---------------------------------------------------------------------------
 /**
 
@@ -44,6 +45,7 @@ private:
   void exec();
 };
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
 
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/EvaluateFunction.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/EvaluateFunction.h
similarity index 97%
rename from Framework/CurveFitting/inc/MantidCurveFitting/EvaluateFunction.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/EvaluateFunction.h
index 48bfd7abe57983d68d45b5c817c6361fb06313fa..55be4b63901ced996a404c85b2980f8702f52d29 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/EvaluateFunction.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/EvaluateFunction.h
@@ -6,6 +6,7 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 /**
 
@@ -44,6 +45,7 @@ private:
   void execConcrete();
 };
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
 
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/Fit.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/Fit.h
similarity index 98%
rename from Framework/CurveFitting/inc/MantidCurveFitting/Fit.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/Fit.h
index baaf264d06d012cfa0efda8169d7ae9181d28c68..20c76810d8a5affe143d42be189d9fd0b77ca9d6 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/Fit.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/Fit.h
@@ -20,6 +20,7 @@ class IFuncMinimizer;
 }
 
 namespace CurveFitting {
+namespace Algorithms {
 /**
 
 A generic fitting algorithm. It fits a function to some data in a workspace.
@@ -114,6 +115,7 @@ protected:
   void copyMinimizerOutput(const API::IFuncMinimizer &minimizer);
 };
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
 
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/Fit1D.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/Fit1D.h
similarity index 99%
rename from Framework/CurveFitting/inc/MantidCurveFitting/Fit1D.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/Fit1D.h
index 132ce49ede9e9ea965ca0537a32b2925355d4b0c..9cfc546a20c3023fc0d609560b8d3eece550cf72 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/Fit1D.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/Fit1D.h
@@ -10,6 +10,7 @@
 namespace Mantid {
 
 namespace CurveFitting {
+namespace Algorithms {
 /**
 Deprecation notice: instead of using this algorithm please use the Fit algorithm
 instead.
@@ -140,6 +141,7 @@ protected:
   friend struct FitData;
 };
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
 
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/FitPowderDiffPeaks.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/FitPowderDiffPeaks.h
similarity index 99%
rename from Framework/CurveFitting/inc/MantidCurveFitting/FitPowderDiffPeaks.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/FitPowderDiffPeaks.h
index 99b67e7fa3fdf861b7d18c98803991608cb52308..452946ce661313484e357f363ce5f3b4f6a90e87 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/FitPowderDiffPeaks.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/FitPowderDiffPeaks.h
@@ -15,6 +15,7 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 /** FitPowderDiffPeaks : Fit peaks in powder diffraction pattern.
 
@@ -434,6 +435,7 @@ size_t findMaxValue(API::MatrixWorkspace_sptr dataws, size_t wsindex,
 /// Get function parameter name, value and etc information in string
 std::string getFunctionInfo(API::IFunction_sptr function);
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
 
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/LeBailFit.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/LeBailFit.h
similarity index 99%
rename from Framework/CurveFitting/inc/MantidCurveFitting/LeBailFit.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/LeBailFit.h
index ac2377fab9b64fdb09f5c07b74f7ff75a993adfd..852642ba42cb98880ad875c823bb965abf46a333 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/LeBailFit.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/LeBailFit.h
@@ -3,7 +3,7 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
-#include "MantidCurveFitting/LeBailFunction.h"
+#include "MantidCurveFitting/Algorithms/LeBailFunction.h"
 #include "MantidDataObjects/TableWorkspace.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidAPI/MatrixWorkspace_fwd.h"
@@ -16,6 +16,7 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 /** LeBailFit : Algorithm to do Le Bail Fit.
   The workflow and architecture of this algorithm is different from LeBailFit,
@@ -474,6 +475,7 @@ void convertTableWorkspaceToMaps(
     std::vector<std::map<std::string, std::string>> strmaps,
     std::vector<std::map<std::string, double>> dblmaps);
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
 
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/LeBailFunction.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/LeBailFunction.h
similarity index 97%
rename from Framework/CurveFitting/inc/MantidCurveFitting/LeBailFunction.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/LeBailFunction.h
index 5133b660fb0a925a0e9952d544b8953ae50c0adf..081e9f5e84483f6bfb3556019af5d7f517e6d5f4 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/LeBailFunction.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/LeBailFunction.h
@@ -9,10 +9,13 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 /** LeBailFunction : LeBailFunction is to calculate peak intensities in a
  composite
  *                   function including neutron peak and background functions.
+ *                   Note: This is not a Mantid Fit Function, just a helper 
+ *                   class to the algorithm
 
   @date 2013-04-26 : original LeBailFunction is not used by any other functions.
  And thus
@@ -212,6 +215,7 @@ private:
 
 typedef boost::shared_ptr<LeBailFunction> LeBailFunction_sptr;
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
 
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/NormaliseByPeakArea.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/NormaliseByPeakArea.h
similarity index 98%
rename from Framework/CurveFitting/inc/MantidCurveFitting/NormaliseByPeakArea.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/NormaliseByPeakArea.h
index 56ae1b98d345e495576ea53cf04931ecaebae29d..4cfac079922ccc7d1b7579199dad4aae0f9fc293 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/NormaliseByPeakArea.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/NormaliseByPeakArea.h
@@ -6,6 +6,7 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 /**
 
@@ -87,6 +88,7 @@ private:
   API::Progress *m_progress;
 };
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
 
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/PawleyFit.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/PawleyFit.h
similarity index 98%
rename from Framework/CurveFitting/inc/MantidCurveFitting/PawleyFit.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/PawleyFit.h
index e7a45729d8721215c81e00e58a93d9068956b721..6b83f391c2a35e71c3c0e0e82922e7e09329d8af 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/PawleyFit.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/PawleyFit.h
@@ -10,6 +10,7 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 /** @class V3DFromHKLColumnExtractor
 
@@ -95,6 +96,7 @@ protected:
   Kernel::Unit_sptr m_dUnit;
 };
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
 
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/PlotPeakByLogValue.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/PlotPeakByLogValue.h
similarity index 98%
rename from Framework/CurveFitting/inc/MantidCurveFitting/PlotPeakByLogValue.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/PlotPeakByLogValue.h
index 891f455c6e78482bd644cc1a74e8a563730eded7..0c0acc74d34543a09c5202729c92f1c91aebdfaf 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/PlotPeakByLogValue.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/PlotPeakByLogValue.h
@@ -9,6 +9,7 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 /**
 
 Takes a workspace group and fits the same spectrum in all workspaces with
@@ -119,6 +120,7 @@ private:
   std::map<std::string, std::vector<std::string>> m_minimizerWorkspaces;
 };
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
 
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/RefinePowderInstrumentParameters.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/RefinePowderInstrumentParameters.h
similarity index 94%
rename from Framework/CurveFitting/inc/MantidCurveFitting/RefinePowderInstrumentParameters.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/RefinePowderInstrumentParameters.h
index debe7054a8bbfc3ff26d11c0638cd687034fec87..ae51ee6bc546147d19ee3d365b728512e0bf0641 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/RefinePowderInstrumentParameters.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/RefinePowderInstrumentParameters.h
@@ -8,15 +8,16 @@
 #include "MantidAPI/ITableWorkspace_fwd.h"
 #include "MantidDataObjects/TableWorkspace.h"
 #include "MantidDataObjects/Workspace2D.h"
-#include "MantidCurveFitting/BackgroundFunction.h"
-#include "MantidCurveFitting/Polynomial.h"
-#include "MantidCurveFitting/BackToBackExponential.h"
-#include "MantidCurveFitting/ThermalNeutronDtoTOFFunction.h"
+#include "MantidCurveFitting/Functions/BackgroundFunction.h"
+#include "MantidCurveFitting/Functions/Polynomial.h"
+#include "MantidCurveFitting/Functions/BackToBackExponential.h"
+#include "MantidCurveFitting/Functions/ThermalNeutronDtoTOFFunction.h"
 #include "MantidAPI/FunctionDomain.h"
 #include "MantidAPI/FunctionValues.h"
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 /** RefinePowderInstrumentParameters : Algorithm to refine instrument geometry
   parameters only.
@@ -154,7 +155,7 @@ private:
   DataObjects::Workspace2D_sptr dataWS;
 
   /// Map for all peaks to fit individually
-  std::map<std::vector<int>, CurveFitting::BackToBackExponential_sptr> mPeaks;
+  std::map<std::vector<int>, Functions::BackToBackExponential_sptr> mPeaks;
 
   /// Map for all peaks' error (fitted vs. experimental): [HKL]: Chi^2
   std::map<std::vector<int>, double> mPeakErrors;
@@ -187,7 +188,7 @@ private:
   size_t mMaxNumberStoredParameters;
 
   /// Modelling function
-  CurveFitting::ThermalNeutronDtoTOFFunction_sptr mFunction;
+  Functions::ThermalNeutronDtoTOFFunction_sptr mFunction;
 };
 
 /** Formular for linear iterpolation: X = [(xf-x0)*Y - (xf*y0-x0*yf)]/(yf-y0)
@@ -206,6 +207,7 @@ inline double linearInterpolateY(double x0, double xf, double y0, double yf,
   return y;
 }
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
 
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/RefinePowderInstrumentParameters3.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/RefinePowderInstrumentParameters3.h
similarity index 98%
rename from Framework/CurveFitting/inc/MantidCurveFitting/RefinePowderInstrumentParameters3.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/RefinePowderInstrumentParameters3.h
index 46cbed993a578cf530235ec39e26daff51c12d6b..56875c6c88568c1c49d67c13d29018a34627fb3b 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/RefinePowderInstrumentParameters3.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/RefinePowderInstrumentParameters3.h
@@ -8,12 +8,13 @@
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidDataObjects/TableWorkspace.h"
 
-#include "MantidCurveFitting/LeBailFit.h"
+#include "MantidCurveFitting/Algorithms/LeBailFit.h"
 #include "MantidCurveFitting/Functions/ThermalNeutronDtoTOFFunction.h"
 #include "MantidCurveFitting/Constraints/BoundaryConstraint.h"
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 /** RefinePowderInstrumentParameters3 :
 
@@ -226,6 +227,7 @@ double calculateFunctionChiSquare(const std::vector<double> &modelY,
                                   const std::vector<double> &dataY,
                                   const std::vector<double> &dataE);
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
 
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/SplineBackground.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/SplineBackground.h
similarity index 97%
rename from Framework/CurveFitting/inc/MantidCurveFitting/SplineBackground.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/SplineBackground.h
index 53d877e613b3670c049e7683fa8f5c8c83114ca1..9aa91c96228c809036a56bac61cf5da9e9e01a36 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/SplineBackground.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/SplineBackground.h
@@ -9,6 +9,7 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 /** SplineBackground
 
@@ -61,6 +62,7 @@ private:
   void exec();
 };
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
 
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/SplineInterpolation.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/SplineInterpolation.h
similarity index 98%
rename from Framework/CurveFitting/inc/MantidCurveFitting/SplineInterpolation.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/SplineInterpolation.h
index f74ba662a3c9666a289727a1e3116f61427d91a3..fbb797729d6c07784b7d6fa7efed53a4bfec8d2f 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/SplineInterpolation.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/SplineInterpolation.h
@@ -7,6 +7,7 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 /** Takes two workspaces as input. One contain a set of points which define a
   spline,
@@ -91,6 +92,7 @@ private:
                             int order) const;
 };
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
 
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/SplineSmoothing.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/SplineSmoothing.h
similarity index 98%
rename from Framework/CurveFitting/inc/MantidCurveFitting/SplineSmoothing.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/SplineSmoothing.h
index 86692dee31c4ed70e481f1e5e0b463e01fd00444..ee17aa3dca0fb55f9ece30aee9b9fb5fc0cc8503 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/SplineSmoothing.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/SplineSmoothing.h
@@ -8,6 +8,7 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 /** Takes a 2D workspace and produces an output workspace containing a smoothed
   version of the data by selecting
@@ -117,6 +118,7 @@ private:
   API::MatrixWorkspace_sptr m_outputWorkspace;
 };
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
 
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/Functions/ComptonProfile.h b/Framework/CurveFitting/inc/MantidCurveFitting/Functions/ComptonProfile.h
index 5190737dc2d1239a0e2eb0177d3317015c184672..3fcc850f8a0f37f3025b46dc08c7541550df7f5f 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/Functions/ComptonProfile.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Functions/ComptonProfile.h
@@ -9,10 +9,12 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 //---------------------------------------------------------------------------
 // Forward declarations
 //---------------------------------------------------------------------------
 struct DetectorParams;
+}
 
 namespace Functions {
 /**
@@ -60,13 +62,13 @@ public:
 
   /// Pre-calculate the Y-space values with specified resolution parameters
   void cacheYSpaceValues(const std::vector<double> &tseconds,
-                         const bool isHistogram, const CurveFitting::DetectorParams &detpar,
+                         const bool isHistogram, const Algorithms::DetectorParams &detpar,
                          const ResolutionParams &respar);
 
   /// Pre-calculate the Y-space values
   virtual void cacheYSpaceValues(const std::vector<double> &tseconds,
                                  const bool isHistogram,
-                                 const CurveFitting::DetectorParams &detpar);
+                                 const Algorithms::DetectorParams &detpar);
   /// Turn off logger
   void disableLogging() { m_log.setEnabled(false); }
   ///@}
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/Functions/GramCharlierComptonProfile.h b/Framework/CurveFitting/inc/MantidCurveFitting/Functions/GramCharlierComptonProfile.h
index 5a28323ba55a3c4efeced1b6f125f62bed8d7cf4..8425949c14319b4942b5a0047e1c7b116c09a8c9 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/Functions/GramCharlierComptonProfile.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Functions/GramCharlierComptonProfile.h
@@ -76,7 +76,7 @@ private:
                      size_t wi, double startX, double endX);
   /// Pre-calculate the Y-space values
   void cacheYSpaceValues(const std::vector<double> &tseconds,
-                         const bool isHistogram, const DetectorParams &detpar);
+                         const bool isHistogram, const Algorithms::DetectorParams &detpar);
 
   /// The active hermite coefficents
   std::vector<short> m_hermite;
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/Functions/Lorentzian1D.h b/Framework/CurveFitting/inc/MantidCurveFitting/Functions/Lorentzian1D.h
index 0977728612c5850509fd14eb012872a3b1899485..6211f2d053b617abcf03f5084cc31ee7966ec979 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/Functions/Lorentzian1D.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Functions/Lorentzian1D.h
@@ -4,7 +4,7 @@
 //----------------------------------------------------------------------
 // Includes
 //----------------------------------------------------------------------
-#include "MantidCurveFitting/Fit1D.h"
+#include "MantidCurveFitting/Algorithms/Fit1D.h"
 
 namespace Mantid {
 namespace CurveFitting {
@@ -51,7 +51,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 File change history is stored at: <https://github.com/mantidproject/mantid>
 Code Documentation is available at: <http://doxygen.mantidproject.org>
 */
-class DLLExport Lorentzian1D : public Fit1D {
+class DLLExport Lorentzian1D : public Algorithms::Fit1D {
 public:
   /// Destructor
   virtual ~Lorentzian1D(){};
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/Functions/UserFunction1D.h b/Framework/CurveFitting/inc/MantidCurveFitting/Functions/UserFunction1D.h
index e8d09262245053945049377510f308c4923c24e0..fefde7f6549aa277abcce768ea6d1d2a5f6d7a43 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/Functions/UserFunction1D.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Functions/UserFunction1D.h
@@ -4,7 +4,7 @@
 //----------------------------------------------------------------------
 // Includes
 //----------------------------------------------------------------------
-#include "MantidCurveFitting/Fit1D.h"
+#include "MantidCurveFitting/Algorithms/Fit1D.h"
 #include "MantidGeometry/muParser_Silent.h"
 #include <boost/shared_array.hpp>
 
@@ -71,7 +71,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 File change history is stored at: <https://github.com/mantidproject/mantid>
 Code Documentation is available at: <http://doxygen.mantidproject.org>
 */
-class UserFunction1D : public Fit1D {
+class UserFunction1D : public Algorithms::Fit1D {
 public:
   /// Constructor
   UserFunction1D()
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/Functions/VesuvioResolution.h b/Framework/CurveFitting/inc/MantidCurveFitting/Functions/VesuvioResolution.h
index 0dee35e10664b01d075743673351b34726ca81e1..4d0594a1818ec46a1e0f4535fb91d0343e6d84c2 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/Functions/VesuvioResolution.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Functions/VesuvioResolution.h
@@ -8,10 +8,12 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 //---------------------------------------------------------------------------
 // Forward declarations
 //---------------------------------------------------------------------------
 struct DetectorParams;
+}
 namespace Functions {
 
 
@@ -83,7 +85,7 @@ public:
   setMatrixWorkspace(boost::shared_ptr<const API::MatrixWorkspace> workspace,
                      size_t wi, double startX, double endX);
   /// Pre-calculate the resolution components values
-  void cacheResolutionComponents(const DetectorParams &detpar,
+  void cacheResolutionComponents(const Algorithms::DetectorParams &detpar,
                                  const ResolutionParams &respar);
   /// Turn off logger
   void disableLogging() { m_log.setEnabled(false); }
diff --git a/Framework/CurveFitting/src/CalculateChiSquared.cpp b/Framework/CurveFitting/src/Algorithms/CalculateChiSquared.cpp
similarity index 99%
rename from Framework/CurveFitting/src/CalculateChiSquared.cpp
rename to Framework/CurveFitting/src/Algorithms/CalculateChiSquared.cpp
index 5c6016c6ba077eacf37bd7fcb5bf2c8554bb093a..17104a9e4b23dd8223a42f8cc5647bc397ee9d10 100644
--- a/Framework/CurveFitting/src/CalculateChiSquared.cpp
+++ b/Framework/CurveFitting/src/Algorithms/CalculateChiSquared.cpp
@@ -1,4 +1,4 @@
-#include "MantidCurveFitting/CalculateChiSquared.h"
+#include "MantidCurveFitting/Algorithms/CalculateChiSquared.h"
 #include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/WorkspaceFactory.h"
 #include "MantidAPI/Column.h"
@@ -8,6 +8,7 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 using namespace Kernel;
 using namespace API;
@@ -652,5 +653,6 @@ void CalculateChiSquared::refixParameters() {
   }
 }
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
diff --git a/Framework/CurveFitting/src/CalculateGammaBackground.cpp b/Framework/CurveFitting/src/Algorithms/CalculateGammaBackground.cpp
similarity index 96%
rename from Framework/CurveFitting/src/CalculateGammaBackground.cpp
rename to Framework/CurveFitting/src/Algorithms/CalculateGammaBackground.cpp
index 35467b55fe113949670d243e2595ddcbb7469a51..c86a0fb231e540337252bcff296f640660d8610f 100644
--- a/Framework/CurveFitting/src/CalculateGammaBackground.cpp
+++ b/Framework/CurveFitting/src/Algorithms/CalculateGammaBackground.cpp
@@ -1,6 +1,6 @@
-#include "MantidCurveFitting/CalculateGammaBackground.h"
+#include "MantidCurveFitting/Algorithms/CalculateGammaBackground.h"
+#include "MantidCurveFitting/Algorithms/ConvertToYSpace.h"
 #include "MantidCurveFitting/Functions/ComptonProfile.h"
-#include "MantidCurveFitting/ConvertToYSpace.h"
 #include "MantidCurveFitting/Functions/VesuvioResolution.h"
 
 #include "MantidAPI/CompositeFunction.h"
@@ -16,9 +16,11 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 using namespace API;
 using namespace Kernel;
-using namespace Functions;
+using namespace CurveFitting;
+using namespace CurveFitting::Functions;
 using namespace BOOST_FUNCTION_STD_NS;
 using namespace std;
 
@@ -229,8 +231,8 @@ void CalculateGammaBackground::calculateSpectrumFromDetector(
   // -- Setup detector & resolution parameters --
   DetectorParams detPar =
       ConvertToYSpace::getDetectorParameters(m_inputWS, inputIndex);
-  Functions::ResolutionParams detRes =
-    Functions::VesuvioResolution::getResolutionParameters(m_inputWS, inputIndex);
+  CurveFitting::Functions::ResolutionParams detRes =
+    CurveFitting::Functions::VesuvioResolution::getResolutionParameters(m_inputWS, inputIndex);
 
   // Compute a time of flight spectrum convolved with a Voigt resolution
   // function for each mass
@@ -256,8 +258,8 @@ void CalculateGammaBackground::calculateBackgroundFromFoils(
   // -- Setup detector & resolution parameters --
   DetectorParams detPar =
       ConvertToYSpace::getDetectorParameters(m_inputWS, inputIndex);
-  ResolutionParams detRes =
-      VesuvioResolution::getResolutionParameters(m_inputWS, inputIndex);
+  CurveFitting::Functions::ResolutionParams detRes =
+    CurveFitting::Functions::VesuvioResolution::getResolutionParameters(m_inputWS, inputIndex);
 
   const size_t nxvalues = m_backgroundWS->blocksize();
   std::vector<double> foilSpectrum(nxvalues);
@@ -322,7 +324,7 @@ void CalculateGammaBackground::calculateBackgroundSingleFoil(
   // Structs to hold geometry & resolution information
   DetectorParams foilPar = detPar; // copy
   foilPar.t0 = 0.0;
-  ResolutionParams foilRes = detRes; // copy
+  CurveFitting::Functions::ResolutionParams foilRes = detRes; // copy
   foilRes.dEnGauss = foilInfo.gaussWidth;
   foilRes.dEnLorentz = foilInfo.lorentzWidth;
 
@@ -390,7 +392,7 @@ void CalculateGammaBackground::calculateTofSpectrum(
       FunctionFactory::Instance().createInitialized(m_profileFunction));
 
   for (size_t i = 0; i < m_npeaks; ++i) {
-    auto profile = boost::dynamic_pointer_cast<ComptonProfile>(
+    auto profile = boost::dynamic_pointer_cast<CurveFitting::Functions::ComptonProfile>(
         profileFunction->getFunction(i));
     profile->disableLogging();
     profile->setUpForFit();
@@ -424,7 +426,7 @@ void CalculateGammaBackground::retrieveInputs() {
           boost::dynamic_pointer_cast<CompositeFunction>(profileFunction)) {
     m_npeaks = composite->nFunctions();
     for (size_t i = 0; i < m_npeaks; ++i) {
-      auto single = boost::dynamic_pointer_cast<ComptonProfile>(
+      auto single = boost::dynamic_pointer_cast<CurveFitting::Functions::ComptonProfile>(
           composite->getFunction(i));
       if (!single) {
         throw std::invalid_argument("Invalid function. Composite must contain "
@@ -597,5 +599,6 @@ std::pair<double, double> CalculateGammaBackground::calculateThetaRange(
   return std::make_pair(theta - dtheta, theta + dtheta);
 }
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
diff --git a/Framework/CurveFitting/src/CalculateMSVesuvio.cpp b/Framework/CurveFitting/src/Algorithms/CalculateMSVesuvio.cpp
similarity index 96%
rename from Framework/CurveFitting/src/CalculateMSVesuvio.cpp
rename to Framework/CurveFitting/src/Algorithms/CalculateMSVesuvio.cpp
index ff8d17b1f56d15e31136c0f2a663abb0200b2e43..48a2acdd3752a6bf9e3412bea11c8983f4c5b067 100644
--- a/Framework/CurveFitting/src/CalculateMSVesuvio.cpp
+++ b/Framework/CurveFitting/src/Algorithms/CalculateMSVesuvio.cpp
@@ -1,9 +1,9 @@
 //-----------------------------------------------------------------------------
 // Includes
 //-----------------------------------------------------------------------------
-#include "MantidCurveFitting/CalculateMSVesuvio.h"
+#include "MantidCurveFitting/Algorithms/CalculateMSVesuvio.h"
 // Use helpers for storing detector/resolution parameters
-#include "MantidCurveFitting/ConvertToYSpace.h"
+#include "MantidCurveFitting/Algorithms/ConvertToYSpace.h"
 #include "MantidCurveFitting/MSVesuvioHelpers.h"
 #include "MantidCurveFitting/Functions/VesuvioResolution.h"
 
@@ -25,9 +25,11 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 using namespace API;
 using namespace Kernel;
-using namespace Functions;
+using namespace CurveFitting;
+using namespace CurveFitting::Functions;
 using Geometry::Link;
 using Geometry::ParameterMap;
 using Geometry::Track;
@@ -138,7 +140,7 @@ void CalculateMSVesuvio::exec() {
   MatrixWorkspace_sptr multsc = WorkspaceFactory::Instance().create(m_inputWS);
 
   // Initialize random number generator
-  m_randgen = new MSVesuvioHelper::RandomNumberGenerator(getProperty("Seed"));
+  m_randgen = new CurveFitting::MSVesuvioHelper::RandomNumberGenerator(getProperty("Seed"));
 
   // Setup progress
   const size_t nhist = m_inputWS->getNumberHistograms();
@@ -324,7 +326,7 @@ void CalculateMSVesuvio::calculateMS(const size_t wsIndex,
       Functions::VesuvioResolution::getResolutionParameters(m_inputWS, wsIndex);
 
   // Final counts averaged over all simulations
-  MSVesuvioHelper::SimulationAggregator accumulator(m_nruns);
+  CurveFitting::MSVesuvioHelper::SimulationAggregator accumulator(m_nruns);
   for (size_t i = 0; i < m_nruns; ++i) {
     m_progress->report("MS calculation: idx=" +
                        boost::lexical_cast<std::string>(wsIndex) + ", run=" +
@@ -339,7 +341,7 @@ void CalculateMSVesuvio::calculateMS(const size_t wsIndex,
   }
 
   // Average over all runs and assign to output workspaces
-  MSVesuvioHelper::SimulationWithErrors avgCounts = accumulator.average();
+  CurveFitting::MSVesuvioHelper::SimulationWithErrors avgCounts = accumulator.average();
   avgCounts.normalise();
   assignToOutput(avgCounts, totalsc, multsc);
 }
@@ -355,7 +357,7 @@ void CalculateMSVesuvio::calculateMS(const size_t wsIndex,
  */
 void CalculateMSVesuvio::simulate(
     const DetectorParams &detpar, const ResolutionParams &respar,
-    MSVesuvioHelper::Simulation &simulCounts) const {
+    CurveFitting::MSVesuvioHelper::Simulation &simulCounts) const {
   for (size_t i = 0; i < m_nevents; ++i) {
     calculateCounts(detpar, respar, simulCounts);
   }
@@ -370,7 +372,7 @@ void CalculateMSVesuvio::simulate(
  * scattering contribution
  */
 void CalculateMSVesuvio::assignToOutput(
-    const MSVesuvioHelper::SimulationWithErrors &avgCounts,
+    const CurveFitting::MSVesuvioHelper::SimulationWithErrors &avgCounts,
     API::ISpectrum &totalsc, API::ISpectrum &multsc) const {
   // Sum up all multiple scatter events
   auto &msscatY = multsc.dataY();
@@ -405,7 +407,7 @@ void CalculateMSVesuvio::assignToOutput(
  */
 double CalculateMSVesuvio::calculateCounts(
     const DetectorParams &detpar, const ResolutionParams &respar,
-    MSVesuvioHelper::Simulation &simulation) const {
+    CurveFitting::MSVesuvioHelper::Simulation &simulation) const {
   double weightSum(0.0);
 
   // moderator coord in lab frame
@@ -786,13 +788,14 @@ double CalculateMSVesuvio::generateE1(const double angle, const double e1nom,
   const double randv = m_randgen->flat();
   if (e1nom < 5000.0) {
     if (angle > 90.0)
-      return MSVesuvioHelper::finalEnergyAuDD(randv);
+      return CurveFitting::MSVesuvioHelper::finalEnergyAuDD(randv);
     else
-      return MSVesuvioHelper::finalEnergyAuYap(randv);
+      return CurveFitting::MSVesuvioHelper::finalEnergyAuYap(randv);
   } else {
-    return MSVesuvioHelper::finalEnergyUranium(randv);
+    return CurveFitting::MSVesuvioHelper::finalEnergyUranium(randv);
   }
 }
 
 } // namespace Algorithms
+} // namespace CurveFitting
 } // namespace Mantid
diff --git a/Framework/CurveFitting/src/ConvertToYSpace.cpp b/Framework/CurveFitting/src/Algorithms/ConvertToYSpace.cpp
similarity index 98%
rename from Framework/CurveFitting/src/ConvertToYSpace.cpp
rename to Framework/CurveFitting/src/Algorithms/ConvertToYSpace.cpp
index e7c099c6f5d44cb04c4c958dc3115f5c79776928..1124ff0504e39bf341dc6e2d45f958ec507eeda8 100644
--- a/Framework/CurveFitting/src/ConvertToYSpace.cpp
+++ b/Framework/CurveFitting/src/Algorithms/ConvertToYSpace.cpp
@@ -1,4 +1,4 @@
-#include "MantidCurveFitting/ConvertToYSpace.h"
+#include "MantidCurveFitting/Algorithms/ConvertToYSpace.h"
 
 #include "MantidAPI/WorkspaceValidators.h"
 #include "MantidGeometry/Instrument/DetectorGroup.h"
@@ -8,6 +8,7 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 // Register the algorithm into the AlgorithmFactory
 DECLARE_ALGORITHM(ConvertToYSpace)
@@ -299,5 +300,6 @@ void ConvertToYSpace::cacheInstrumentGeometry() {
   m_samplePos = sample->getPos();
 }
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
diff --git a/Framework/CurveFitting/src/ConvolveWorkspaces.cpp b/Framework/CurveFitting/src/Algorithms/ConvolveWorkspaces.cpp
similarity index 96%
rename from Framework/CurveFitting/src/ConvolveWorkspaces.cpp
rename to Framework/CurveFitting/src/Algorithms/ConvolveWorkspaces.cpp
index 3234f14e9eedd5cb3c8f096804ba6d13dd36040a..860d527201a1ef0c1501070ca0fb35f7b680b631 100644
--- a/Framework/CurveFitting/src/ConvolveWorkspaces.cpp
+++ b/Framework/CurveFitting/src/Algorithms/ConvolveWorkspaces.cpp
@@ -1,7 +1,7 @@
 //----------------------------------------------------------------------
 // Includes
 //----------------------------------------------------------------------
-#include "MantidCurveFitting/ConvolveWorkspaces.h"
+#include "MantidCurveFitting/Algorithms/ConvolveWorkspaces.h"
 #include "MantidCurveFitting/Functions/Convolution.h"
 #include "MantidCurveFitting/Functions/TabulatedFunction.h"
 #include <sstream>
@@ -11,6 +11,7 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 // Register the algorithm into the AlgorithmFactory
 DECLARE_ALGORITHM(ConvolveWorkspaces)
@@ -97,4 +98,5 @@ void ConvolveWorkspaces::exec() {
 }
 
 } // namespace Algorithms
+} // namespace CurveFitting
 } // namespace Mantid
diff --git a/Framework/CurveFitting/src/EstimatePeakErrors.cpp b/Framework/CurveFitting/src/Algorithms/EstimatePeakErrors.cpp
similarity index 98%
rename from Framework/CurveFitting/src/EstimatePeakErrors.cpp
rename to Framework/CurveFitting/src/Algorithms/EstimatePeakErrors.cpp
index aa69cb5b550de1ad9726c8bd297d41f4504a5bdc..3990ef3fbabf9c2d809877eac4c9ca43622d12b0 100644
--- a/Framework/CurveFitting/src/EstimatePeakErrors.cpp
+++ b/Framework/CurveFitting/src/Algorithms/EstimatePeakErrors.cpp
@@ -1,4 +1,4 @@
-#include "MantidCurveFitting/EstimatePeakErrors.h"
+#include "MantidCurveFitting/Algorithms/EstimatePeakErrors.h"
 #include "MantidCurveFitting/GSLMatrix.h"
 #include "MantidCurveFitting/Functions/PeakParameterFunction.h"
 
@@ -12,6 +12,7 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 using namespace API;
 using namespace Kernel;
 using namespace std;
@@ -164,5 +165,6 @@ void EstimatePeakErrors::exec() {
   setProperty("OutputWorkspace", results);
 }
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
diff --git a/Framework/CurveFitting/src/EvaluateFunction.cpp b/Framework/CurveFitting/src/Algorithms/EvaluateFunction.cpp
similarity index 94%
rename from Framework/CurveFitting/src/EvaluateFunction.cpp
rename to Framework/CurveFitting/src/Algorithms/EvaluateFunction.cpp
index d5c5e9e7099de52de4bcca1fd6203f2ed22cc061..9e072bd88875299e3e259ac3f7b024717c91d27e 100644
--- a/Framework/CurveFitting/src/EvaluateFunction.cpp
+++ b/Framework/CurveFitting/src/Algorithms/EvaluateFunction.cpp
@@ -1,7 +1,8 @@
-#include "MantidCurveFitting/EvaluateFunction.h"
+#include "MantidCurveFitting/Algorithms/EvaluateFunction.h"
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 using namespace Mantid::Kernel;
 using namespace Mantid::API;
@@ -55,5 +56,6 @@ void EvaluateFunction::execConcrete() {
   setProperty("OutputWorkspace", outputWS);
 }
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
diff --git a/Framework/CurveFitting/src/Fit.cpp b/Framework/CurveFitting/src/Algorithms/Fit.cpp
similarity index 99%
rename from Framework/CurveFitting/src/Fit.cpp
rename to Framework/CurveFitting/src/Algorithms/Fit.cpp
index 95bae234e21f9c80d9e36c9b8d8a56aab6b049e6..b10b66a8a918dca32327fc32d80a04a0136e399e 100644
--- a/Framework/CurveFitting/src/Fit.cpp
+++ b/Framework/CurveFitting/src/Algorithms/Fit.cpp
@@ -1,7 +1,7 @@
 //----------------------------------------------------------------------
 // Includes
 //----------------------------------------------------------------------
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidCurveFitting/CostFunctions/CostFuncFitting.h"
 
 #include "MantidAPI/CostFunctionFactory.h"
@@ -18,6 +18,7 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 // Register the class into the algorithm factory
 DECLARE_ALGORITHM(Fit)
@@ -362,5 +363,6 @@ void Fit::execConcrete() {
   progress(1.0);
 }
 
-} // namespace Algorithm
+} // namespace Algorithms
+} // namespace CurveFitting
 } // namespace Mantid
diff --git a/Framework/CurveFitting/src/Fit1D.cpp b/Framework/CurveFitting/src/Algorithms/Fit1D.cpp
similarity index 99%
rename from Framework/CurveFitting/src/Fit1D.cpp
rename to Framework/CurveFitting/src/Algorithms/Fit1D.cpp
index f4c054ddc095e1976d0812b46d7c2373ed6bc562..3710f49389ff760c5db775d2b1c3ecb8fb51441b 100644
--- a/Framework/CurveFitting/src/Fit1D.cpp
+++ b/Framework/CurveFitting/src/Algorithms/Fit1D.cpp
@@ -1,7 +1,7 @@
 //----------------------------------------------------------------------
 // Includes
 //----------------------------------------------------------------------
-#include "MantidCurveFitting/Fit1D.h"
+#include "MantidCurveFitting/Algorithms/Fit1D.h"
 #include <sstream>
 #include <numeric>
 #include <cmath>
@@ -21,6 +21,7 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 using namespace Kernel;
 using API::WorkspaceProperty;
@@ -777,5 +778,6 @@ FitData::FitData(Fit1D *fit, const std::string &fixed)
       J.m_map[i] = -1;
 }
 
-} // namespace Algorithm
+} // namespace Algorithms
+} // namespace CurveFitting
 } // namespace Mantid
diff --git a/Framework/CurveFitting/src/FitPowderDiffPeaks.cpp b/Framework/CurveFitting/src/Algorithms/FitPowderDiffPeaks.cpp
similarity index 99%
rename from Framework/CurveFitting/src/FitPowderDiffPeaks.cpp
rename to Framework/CurveFitting/src/Algorithms/FitPowderDiffPeaks.cpp
index 4506e6acd5bfdfc82775d095840d43f2e1b00529..72eb9e1db570b9aa0bf7a7056ba7a0df99c5f92c 100644
--- a/Framework/CurveFitting/src/FitPowderDiffPeaks.cpp
+++ b/Framework/CurveFitting/src/Algorithms/FitPowderDiffPeaks.cpp
@@ -1,4 +1,4 @@
-#include "MantidCurveFitting/FitPowderDiffPeaks.h"
+#include "MantidCurveFitting/Algorithms/FitPowderDiffPeaks.h"
 
 #include "MantidKernel/ListValidator.h"
 #include "MantidKernel/ArrayProperty.h"
@@ -16,7 +16,7 @@
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidAPI/TextAxis.h"
 
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidCurveFitting/Constraints/BoundaryConstraint.h"
 #include "MantidCurveFitting/Functions/BackgroundFunction.h"
 #include "MantidCurveFitting/Functions/ThermalNeutronDtoTOFFunction.h"
@@ -58,6 +58,7 @@ using namespace std;
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 DECLARE_ALGORITHM(FitPowderDiffPeaks)
 
@@ -3450,5 +3451,6 @@ size_t findMaxValue(MatrixWorkspace_sptr dataws, size_t wsindex,
   return imax;
 }
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
diff --git a/Framework/CurveFitting/src/LeBailFit.cpp b/Framework/CurveFitting/src/Algorithms/LeBailFit.cpp
similarity index 99%
rename from Framework/CurveFitting/src/LeBailFit.cpp
rename to Framework/CurveFitting/src/Algorithms/LeBailFit.cpp
index 22e7a9340d1ccc65515b0692756438c6919fd01b..199a2233541310638b26851b990c1001e77245e4 100644
--- a/Framework/CurveFitting/src/LeBailFit.cpp
+++ b/Framework/CurveFitting/src/Algorithms/LeBailFit.cpp
@@ -4,12 +4,12 @@
 
  * COMMIT NOTES */
 
-#include "MantidCurveFitting/LeBailFit.h"
+#include "MantidCurveFitting/Algorithms/LeBailFit.h"
 #include "MantidKernel/ListValidator.h"
 #include "MantidAPI/TableRow.h"
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidAPI/FuncMinimizerFactory.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidKernel/ArrayProperty.h"
 #include "MantidKernel/VisibleWhenProperty.h"
 #include "MantidCurveFitting/Functions/BackgroundFunction.h"
@@ -44,6 +44,7 @@ using namespace std;
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 const Rfactor badR(DBL_MAX, DBL_MAX);
 
@@ -2692,5 +2693,6 @@ void writeRfactorsToFile(vector<double> vecX, vector<Rfactor> vecR,
   return;
 }
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
diff --git a/Framework/CurveFitting/src/LeBailFunction.cpp b/Framework/CurveFitting/src/Algorithms/LeBailFunction.cpp
similarity index 99%
rename from Framework/CurveFitting/src/LeBailFunction.cpp
rename to Framework/CurveFitting/src/Algorithms/LeBailFunction.cpp
index 6835b74fea4c67b9127fa0c8082e4c1cacbe2930..0c01dcc99944c5a2fed697b2ee53b86e808e67a0 100644
--- a/Framework/CurveFitting/src/LeBailFunction.cpp
+++ b/Framework/CurveFitting/src/Algorithms/LeBailFunction.cpp
@@ -1,9 +1,9 @@
 #include "MantidAPI/Algorithm.h"
-#include "MantidCurveFitting/LeBailFunction.h"
+#include "MantidCurveFitting/Algorithms/LeBailFunction.h"
 #include "MantidKernel/System.h"
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidCurveFitting/Constraints/BoundaryConstraint.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 
 #include <sstream>
 
@@ -18,6 +18,7 @@ const double NEG_DBL_MAX(-1. * DBL_MAX);
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 namespace {
 const double PEAKRANGECONSTANT = 5.0;
 
@@ -1153,4 +1154,5 @@ double LeBailFunction::getPeakMaximumValue(std::vector<int> hkl,
 }
 
 } // namespace Mantid
+} // namespace Algorithms
 } // namespace CurveFitting
diff --git a/Framework/CurveFitting/src/NormaliseByPeakArea.cpp b/Framework/CurveFitting/src/Algorithms/NormaliseByPeakArea.cpp
similarity index 99%
rename from Framework/CurveFitting/src/NormaliseByPeakArea.cpp
rename to Framework/CurveFitting/src/Algorithms/NormaliseByPeakArea.cpp
index f3a7522bbfac8b7f93e12d9980b70f9c502b4814..780f0feb4261bf251d0c137fae577124e818ec44 100644
--- a/Framework/CurveFitting/src/NormaliseByPeakArea.cpp
+++ b/Framework/CurveFitting/src/Algorithms/NormaliseByPeakArea.cpp
@@ -1,4 +1,4 @@
-#include "MantidCurveFitting/NormaliseByPeakArea.h"
+#include "MantidCurveFitting/Algorithms/NormaliseByPeakArea.h"
 
 #include "MantidAPI/IFunction.h"
 #include "MantidAPI/FunctionFactory.h"
@@ -10,6 +10,7 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 /// Starting value of peak position in y-space for fit
 double PEAK_POS_GUESS = -0.1;
@@ -381,5 +382,6 @@ void NormaliseByPeakArea::symmetriseYSpace() {
   }
 }
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
diff --git a/Framework/CurveFitting/src/PawleyFit.cpp b/Framework/CurveFitting/src/Algorithms/PawleyFit.cpp
similarity index 99%
rename from Framework/CurveFitting/src/PawleyFit.cpp
rename to Framework/CurveFitting/src/Algorithms/PawleyFit.cpp
index 90c55982d74c0e3b963e081ec8daad8327df1ff7..a8debbfa28d9c39b6401032506e0b92b960d85ea 100644
--- a/Framework/CurveFitting/src/PawleyFit.cpp
+++ b/Framework/CurveFitting/src/Algorithms/PawleyFit.cpp
@@ -1,4 +1,4 @@
-#include "MantidCurveFitting/PawleyFit.h"
+#include "MantidCurveFitting/Algorithms/PawleyFit.h"
 
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidCurveFitting/Functions/PawleyFunction.h"
@@ -14,6 +14,7 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 using namespace API;
 using namespace Kernel;
@@ -416,5 +417,6 @@ V3D V3DFromHKLColumnExtractor::getHKLFromString(
   return hkl;
 }
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
diff --git a/Framework/CurveFitting/src/PlotPeakByLogValue.cpp b/Framework/CurveFitting/src/Algorithms/PlotPeakByLogValue.cpp
similarity index 99%
rename from Framework/CurveFitting/src/PlotPeakByLogValue.cpp
rename to Framework/CurveFitting/src/Algorithms/PlotPeakByLogValue.cpp
index f380f15c43c792e136b2fa2f5451103819fb68b2..11392adee19dc945b290e423484b89de3a8117de 100644
--- a/Framework/CurveFitting/src/PlotPeakByLogValue.cpp
+++ b/Framework/CurveFitting/src/Algorithms/PlotPeakByLogValue.cpp
@@ -11,7 +11,7 @@
 #include <boost/lexical_cast.hpp>
 #include <boost/algorithm/string/replace.hpp>
 
-#include "MantidCurveFitting/PlotPeakByLogValue.h"
+#include "MantidCurveFitting/Algorithms/PlotPeakByLogValue.h"
 #include "MantidAPI/IFuncMinimizer.h"
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/FuncMinimizerFactory.h"
@@ -36,6 +36,7 @@ Mantid::Kernel::Logger g_log("PlotPeakByLogValue");
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 using namespace Kernel;
 using namespace API;
@@ -619,5 +620,6 @@ PlotPeakByLogValue::getMinimizerString(const std::string &wsName,
   return format;
 }
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
diff --git a/Framework/CurveFitting/src/RefinePowderInstrumentParameters.cpp b/Framework/CurveFitting/src/Algorithms/RefinePowderInstrumentParameters.cpp
similarity index 97%
rename from Framework/CurveFitting/src/RefinePowderInstrumentParameters.cpp
rename to Framework/CurveFitting/src/Algorithms/RefinePowderInstrumentParameters.cpp
index 56a400e3b11d329ebde5463760d0e7e9b4c5e117..3423ca0b62113f5c55226a9e0bb793456a36a73e 100644
--- a/Framework/CurveFitting/src/RefinePowderInstrumentParameters.cpp
+++ b/Framework/CurveFitting/src/Algorithms/RefinePowderInstrumentParameters.cpp
@@ -1,4 +1,4 @@
-#include "MantidCurveFitting/RefinePowderInstrumentParameters.h"
+#include "MantidCurveFitting/Algorithms/RefinePowderInstrumentParameters.h"
 
 #include "MantidKernel/ListValidator.h"
 #include "MantidKernel/ArrayProperty.h"
@@ -14,11 +14,11 @@
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidAPI/TextAxis.h"
 
-#include "MantidCurveFitting/Fit.h"
-#include "MantidCurveFitting/BackgroundFunction.h"
-#include "MantidCurveFitting/Polynomial.h"
-#include "MantidCurveFitting/BoundaryConstraint.h"
-#include "MantidCurveFitting/Gaussian.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
+#include "MantidCurveFitting/Constraints/BoundaryConstraint.h"
+#include "MantidCurveFitting/Functions/BackgroundFunction.h"
+#include "MantidCurveFitting/Functions/Polynomial.h"
+#include "MantidCurveFitting/Functions/Gaussian.h"
 
 #include "MantidGeometry/Crystal/UnitCell.h"
 
@@ -34,11 +34,15 @@ using namespace Mantid;
 using namespace Mantid::API;
 using namespace Mantid::Kernel;
 using namespace Mantid::DataObjects;
+using namespace Mantid::CurveFitting::Algorithms;
+using namespace Mantid::CurveFitting::Functions;
+using namespace Mantid::CurveFitting::Constraints;
 
 using namespace std;
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 DECLARE_ALGORITHM(RefinePowderInstrumentParameters)
 
@@ -224,9 +228,9 @@ void RefinePowderInstrumentParameters::fitInstrumentParameters() {
        << endl;
 
   // 1. Initialize the fitting function
-  CurveFitting::ThermalNeutronDtoTOFFunction rawfunc;
+  ThermalNeutronDtoTOFFunction rawfunc;
   mFunction =
-      boost::make_shared<CurveFitting::ThermalNeutronDtoTOFFunction>(rawfunc);
+      boost::make_shared<ThermalNeutronDtoTOFFunction>(rawfunc);
   mFunction->initialize();
 
   API::FunctionDomain1DVector domain(dataWS->readX(1));
@@ -803,7 +807,7 @@ void RefinePowderInstrumentParameters::getD2TOFFuncParamNames(
   parnames.clear();
 
   // 2. Get the parameter names from function
-  CurveFitting::ThermalNeutronDtoTOFFunction d2toffunc;
+  ThermalNeutronDtoTOFFunction d2toffunc;
   d2toffunc.initialize();
   std::vector<std::string> funparamnames = d2toffunc.getParameterNames();
 
@@ -879,7 +883,7 @@ void RefinePowderInstrumentParameters::genPeaksFromTable(
 
   for (size_t ir = 0; ir < numrows; ++ir) {
     // a) Generate peak
-    CurveFitting::BackToBackExponential newpeak;
+    BackToBackExponential newpeak;
     newpeak.initialize();
 
     // b) Parse parameters
@@ -930,8 +934,8 @@ void RefinePowderInstrumentParameters::genPeaksFromTable(
     newpeak.setParameter("I", height);
 
     // d) Make to share pointer and set to instance data structure (map)
-    CurveFitting::BackToBackExponential_sptr newpeakptr =
-        boost::make_shared<CurveFitting::BackToBackExponential>(newpeak);
+    BackToBackExponential_sptr newpeakptr =
+        boost::make_shared<BackToBackExponential>(newpeak);
 
     std::vector<int> hkl;
     hkl.push_back(h);
@@ -1168,7 +1172,7 @@ void RefinePowderInstrumentParameters::genPeakCentersWorkspace(
     throw runtime_error(errss.str());
   }
 
-  std::map<std::vector<int>, CurveFitting::BackToBackExponential_sptr>::iterator
+  std::map<std::vector<int>, BackToBackExponential_sptr>::iterator
       peakiter;
   std::vector<std::pair<double, std::pair<double, double>>>
       peakcenters; // d_h [TOF_h, CHI2]
@@ -1300,5 +1304,6 @@ RefinePowderInstrumentParameters::genOutputInstrumentParameterTable() {
   return newtablews;
 }
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
diff --git a/Framework/CurveFitting/src/RefinePowderInstrumentParameters3.cpp b/Framework/CurveFitting/src/Algorithms/RefinePowderInstrumentParameters3.cpp
similarity index 99%
rename from Framework/CurveFitting/src/RefinePowderInstrumentParameters3.cpp
rename to Framework/CurveFitting/src/Algorithms/RefinePowderInstrumentParameters3.cpp
index 22c96159ba9bcb39f9be9ed40b89532da6a62974..5f146549166932d416f816b99b813c9c1c507d1f 100644
--- a/Framework/CurveFitting/src/RefinePowderInstrumentParameters3.cpp
+++ b/Framework/CurveFitting/src/Algorithms/RefinePowderInstrumentParameters3.cpp
@@ -1,4 +1,4 @@
-#include "MantidCurveFitting/RefinePowderInstrumentParameters3.h"
+#include "MantidCurveFitting/Algorithms/RefinePowderInstrumentParameters3.h"
 
 #include "MantidAPI/Axis.h"
 #include "MantidAPI/TextAxis.h"
@@ -14,6 +14,7 @@ using namespace std;
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 DECLARE_ALGORITHM(RefinePowderInstrumentParameters3)
 
@@ -1429,5 +1430,6 @@ void restoreFunctionParameterValue(
   return;
 }
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
diff --git a/Framework/CurveFitting/src/SplineBackground.cpp b/Framework/CurveFitting/src/Algorithms/SplineBackground.cpp
similarity index 97%
rename from Framework/CurveFitting/src/SplineBackground.cpp
rename to Framework/CurveFitting/src/Algorithms/SplineBackground.cpp
index d3eddbab62067a8297f96e73f2911bfccfe6eab8..93b2e86016a7320e17d3ae657789ec49ad86da6f 100644
--- a/Framework/CurveFitting/src/SplineBackground.cpp
+++ b/Framework/CurveFitting/src/Algorithms/SplineBackground.cpp
@@ -1,7 +1,7 @@
 //----------------------------------------------------------------------
 // Includes
 //----------------------------------------------------------------------
-#include "MantidCurveFitting/SplineBackground.h"
+#include "MantidCurveFitting/Algorithms/SplineBackground.h"
 #include <gsl/gsl_bspline.h>
 #include <gsl/gsl_multifit.h>
 #include <gsl/gsl_statistics.h>
@@ -9,6 +9,7 @@
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 DECLARE_ALGORITHM(SplineBackground)
 
@@ -170,5 +171,6 @@ void SplineBackground::exec() {
   setProperty("OutputWorkspace", outWS);
 }
 
-} // namespace Algorithm
+} // namespace Algorithms
+} // namespace CurveFitting
 } // namespace Mantid
diff --git a/Framework/CurveFitting/src/SplineInterpolation.cpp b/Framework/CurveFitting/src/Algorithms/SplineInterpolation.cpp
similarity index 98%
rename from Framework/CurveFitting/src/SplineInterpolation.cpp
rename to Framework/CurveFitting/src/Algorithms/SplineInterpolation.cpp
index 37a81ceee3ce744dd5ec1e9fb8407a67fa5ebcce..9d1a1bc531c9d0dc3c765ddf3a904e1bf1955a7c 100644
--- a/Framework/CurveFitting/src/SplineInterpolation.cpp
+++ b/Framework/CurveFitting/src/Algorithms/SplineInterpolation.cpp
@@ -2,10 +2,11 @@
 #include "MantidAPI/NumericAxis.h"
 #include "MantidAPI/Progress.h"
 #include "MantidKernel/BoundedValidator.h"
-#include "MantidCurveFitting/SplineInterpolation.h"
+#include "MantidCurveFitting/Algorithms/SplineInterpolation.h"
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 // Register the algorithm into the AlgorithmFactory
 DECLARE_ALGORITHM(SplineInterpolation)
@@ -254,5 +255,6 @@ void SplineInterpolation::calculateSpline(
   m_cspline->function1D(yValues, xValues, nData);
 }
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
diff --git a/Framework/CurveFitting/src/SplineSmoothing.cpp b/Framework/CurveFitting/src/Algorithms/SplineSmoothing.cpp
similarity index 99%
rename from Framework/CurveFitting/src/SplineSmoothing.cpp
rename to Framework/CurveFitting/src/Algorithms/SplineSmoothing.cpp
index 9c942956ac08e3169a28f39c02704bddf7dc0a9d..87fcfb16e36bfd4af6e18a84ed51b9c459f27e3c 100644
--- a/Framework/CurveFitting/src/SplineSmoothing.cpp
+++ b/Framework/CurveFitting/src/Algorithms/SplineSmoothing.cpp
@@ -4,12 +4,13 @@
 #include "MantidAPI/TextAxis.h"
 #include "MantidAPI/WorkspaceFactory.h"
 #include "MantidKernel/BoundedValidator.h"
-#include "MantidCurveFitting/SplineSmoothing.h"
+#include "MantidCurveFitting/Algorithms/SplineSmoothing.h"
 
 #include <algorithm>
 
 namespace Mantid {
 namespace CurveFitting {
+namespace Algorithms {
 
 // Register the algorithm into the AlgorithmFactory
 DECLARE_ALGORITHM(SplineSmoothing)
@@ -370,5 +371,6 @@ void SplineSmoothing::selectSmoothingPoints(
   }
 }
 
+} // namespace Algorithms
 } // namespace CurveFitting
 } // namespace Mantid
diff --git a/Framework/CurveFitting/src/Functions/ComptonPeakProfile.cpp b/Framework/CurveFitting/src/Functions/ComptonPeakProfile.cpp
index f13a5e20c075340bb990222310745efa8cb54089..9408c811342219f80e22a3ab8bac607bd97a232b 100644
--- a/Framework/CurveFitting/src/Functions/ComptonPeakProfile.cpp
+++ b/Framework/CurveFitting/src/Functions/ComptonPeakProfile.cpp
@@ -2,7 +2,7 @@
 // Includes
 //-----------------------------------------------------------------------------
 #include "MantidCurveFitting/Functions/ComptonPeakProfile.h"
-#include "MantidCurveFitting/ConvertToYSpace.h"
+#include "MantidCurveFitting/Algorithms/ConvertToYSpace.h"
 #include "MantidAPI/FunctionFactory.h"
 
 #include <cmath>
@@ -10,8 +10,9 @@
 namespace Mantid {
 namespace CurveFitting {
 namespace Functions {
+  
 
-using namespace CurveFitting;
+using namespace CurveFitting::Algorithms;
 
 DECLARE_FUNCTION(ComptonPeakProfile)
 
diff --git a/Framework/CurveFitting/src/Functions/ComptonProfile.cpp b/Framework/CurveFitting/src/Functions/ComptonProfile.cpp
index 0810d501baf30b8e1ba11c98176bce304ae5e1ef..a7560b705db7e15a097f55d4177f475e0464c694 100644
--- a/Framework/CurveFitting/src/Functions/ComptonProfile.cpp
+++ b/Framework/CurveFitting/src/Functions/ComptonProfile.cpp
@@ -2,15 +2,16 @@
 // Includes
 //-----------------------------------------------------------------------------
 #include "MantidCurveFitting/Functions/ComptonProfile.h"
-#include "MantidCurveFitting/ConvertToYSpace.h"
+#include "MantidCurveFitting/Algorithms/ConvertToYSpace.h"
 #include "MantidAPI/FunctionFactory.h"
 #include <gsl/gsl_poly.h>
 
 namespace Mantid {
 namespace CurveFitting {
 namespace Functions {
-
+  
 using namespace CurveFitting;
+using namespace CurveFitting::Algorithms;
 
 namespace {
 ///@cond
@@ -97,7 +98,7 @@ void ComptonProfile::setMatrixWorkspace(
   m_resolutionFunction->setAttributeValue("Mass", m_mass);
   m_resolutionFunction->setMatrixWorkspace(workspace, wsIndex, startX, endX);
 
-  CurveFitting::DetectorParams detpar =
+  Algorithms::DetectorParams detpar =
       ConvertToYSpace::getDetectorParameters(workspace, m_wsIndex);
   this->cacheYSpaceValues(workspace->readX(m_wsIndex),
                           workspace->isHistogramData(), detpar);
@@ -105,7 +106,7 @@ void ComptonProfile::setMatrixWorkspace(
 
 void ComptonProfile::cacheYSpaceValues(const std::vector<double> &tseconds,
                                        const bool isHistogram,
-                                       const CurveFitting::DetectorParams &detpar,
+                                       const Algorithms::DetectorParams &detpar,
                                        const ResolutionParams &respar) {
   m_resolutionFunction->cacheResolutionComponents(detpar, respar);
   this->cacheYSpaceValues(tseconds, isHistogram, detpar);
@@ -118,7 +119,7 @@ void ComptonProfile::cacheYSpaceValues(const std::vector<double> &tseconds,
  */
 void ComptonProfile::cacheYSpaceValues(const std::vector<double> &tseconds,
                                        const bool isHistogram,
-                                       const CurveFitting::DetectorParams &detpar) {
+                                       const Algorithms::DetectorParams &detpar) {
   // ------ Fixed coefficients related to resolution & Y-space transforms
   // ------------------
   const double mevToK = PhysicalConstants::E_mev_toNeutronWavenumberSq;
diff --git a/Framework/CurveFitting/src/Functions/GramCharlierComptonProfile.cpp b/Framework/CurveFitting/src/Functions/GramCharlierComptonProfile.cpp
index 40efd9a5ea24c3df05c1c295f000a31b7fb1b5ee..16960d97dab6eb7f7dfa76927cd465d6cd959c9d 100644
--- a/Framework/CurveFitting/src/Functions/GramCharlierComptonProfile.cpp
+++ b/Framework/CurveFitting/src/Functions/GramCharlierComptonProfile.cpp
@@ -368,7 +368,7 @@ void GramCharlierComptonProfile::setMatrixWorkspace(
  */
 void GramCharlierComptonProfile::cacheYSpaceValues(
     const std::vector<double> &tseconds, const bool isHistogram,
-    const DetectorParams &detpar) {
+    const Algorithms::DetectorParams &detpar) {
   ComptonProfile::cacheYSpaceValues(tseconds, isHistogram,
                                     detpar); // base-class calculations
 
diff --git a/Framework/CurveFitting/src/Functions/IkedaCarpenterPV.cpp b/Framework/CurveFitting/src/Functions/IkedaCarpenterPV.cpp
index b74d920b0eae28a2cbffa31f5cf8d21f95053c5d..20fce38bd90881ffc88d94d6dcb402633a75c4c9 100644
--- a/Framework/CurveFitting/src/Functions/IkedaCarpenterPV.cpp
+++ b/Framework/CurveFitting/src/Functions/IkedaCarpenterPV.cpp
@@ -33,7 +33,7 @@ Kernel::Logger g_log("IkedaCarpenterPV");
 
 using namespace Kernel;
 
-using namespace SpecialFunctionSupport;
+using namespace CurveFitting::SpecialFunctionSupport;
 
 using namespace Geometry;
 using namespace Constraints;
diff --git a/Framework/CurveFitting/src/Functions/VesuvioResolution.cpp b/Framework/CurveFitting/src/Functions/VesuvioResolution.cpp
index e1acbb1aba3cf0eab96d39f2ba6e98848e3951cd..0dcf67b8f02286e42b9ccf9b73854895cb88f36c 100644
--- a/Framework/CurveFitting/src/Functions/VesuvioResolution.cpp
+++ b/Framework/CurveFitting/src/Functions/VesuvioResolution.cpp
@@ -2,15 +2,17 @@
 // Includes
 //-----------------------------------------------------------------------------
 #include "MantidCurveFitting/Functions/VesuvioResolution.h"
-#include "MantidCurveFitting/ConvertToYSpace.h"
+#include "MantidCurveFitting/Algorithms/ConvertToYSpace.h"
 #include "MantidAPI/FunctionFactory.h"
 #include <gsl/gsl_poly.h>
 
 namespace Mantid {
 namespace CurveFitting {
 namespace Functions {
-
-using namespace CurveFitting;
+  
+using namespace Mantid;
+using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 namespace {
 ///@cond
 const char *MASS_NAME = "Mass";
@@ -112,7 +114,7 @@ void VesuvioResolution::setMatrixWorkspace(
  * @param respar Structure containing resolution parameters
  */
 void VesuvioResolution::cacheResolutionComponents(
-    const DetectorParams &detpar, const ResolutionParams &respar) {
+    const Algorithms::DetectorParams &detpar, const ResolutionParams &respar) {
   // geometry
   double theta = detpar.theta; // cache for frequent access
   double hwhmLorentzE = respar.dEnLorentz;
diff --git a/Framework/CurveFitting/src/LatticeDomainCreator.cpp b/Framework/CurveFitting/src/LatticeDomainCreator.cpp
index 69901d090985206b121217ff3a25cc940bff389d..db2ebe4bde9fca3df9b46c7a12805e94876df8e1 100644
--- a/Framework/CurveFitting/src/LatticeDomainCreator.cpp
+++ b/Framework/CurveFitting/src/LatticeDomainCreator.cpp
@@ -9,7 +9,7 @@
 #include "MantidAPI/WorkspaceFactory.h"
 
 #include "MantidDataObjects/Peak.h"
-#include "MantidCurveFitting/PawleyFit.h"
+#include "MantidCurveFitting/Algorithms/PawleyFit.h"
 
 namespace Mantid {
 namespace CurveFitting {
@@ -17,6 +17,7 @@ namespace CurveFitting {
 using namespace API;
 using namespace Kernel;
 using namespace DataObjects;
+using namespace CurveFitting::Algorithms;
 
 /// Constructor
 LatticeDomainCreator::LatticeDomainCreator(
diff --git a/Framework/CurveFitting/test/CalculateChiSquaredTest.h b/Framework/CurveFitting/test/Algorithms/CalculateChiSquaredTest.h
similarity index 99%
rename from Framework/CurveFitting/test/CalculateChiSquaredTest.h
rename to Framework/CurveFitting/test/Algorithms/CalculateChiSquaredTest.h
index 39fb96307a24056335df98216d80fd5641bf899b..fb29bda4b80738fd99f9a2d89838ab547850f606 100644
--- a/Framework/CurveFitting/test/CalculateChiSquaredTest.h
+++ b/Framework/CurveFitting/test/Algorithms/CalculateChiSquaredTest.h
@@ -3,7 +3,7 @@
 
 #include <cxxtest/TestSuite.h>
 
-#include "MantidCurveFitting/CalculateChiSquared.h"
+#include "MantidCurveFitting/Algorithms/CalculateChiSquared.h"
 #include "MantidAPI/FunctionDomain1D.h"
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidAPI/FunctionValues.h"
@@ -16,7 +16,7 @@
 #include <boost/math/special_functions/fpclassify.hpp>
 #include <limits>
 
-using Mantid::CurveFitting::CalculateChiSquared;
+using Mantid::CurveFitting::Algorithms::CalculateChiSquared;
 using namespace Mantid;
 using namespace Mantid::API;
 
diff --git a/Framework/CurveFitting/test/CalculateGammaBackgroundTest.h b/Framework/CurveFitting/test/Algorithms/CalculateGammaBackgroundTest.h
similarity index 98%
rename from Framework/CurveFitting/test/CalculateGammaBackgroundTest.h
rename to Framework/CurveFitting/test/Algorithms/CalculateGammaBackgroundTest.h
index 8fdc2508eced2b78d1194164b186955e271d061e..502479b5f363c09a4312cdab88c88b92e233be80 100644
--- a/Framework/CurveFitting/test/CalculateGammaBackgroundTest.h
+++ b/Framework/CurveFitting/test/Algorithms/CalculateGammaBackgroundTest.h
@@ -3,10 +3,10 @@
 
 #include <cxxtest/TestSuite.h>
 
-#include "MantidCurveFitting/CalculateGammaBackground.h"
-#include "Functions/ComptonProfileTestHelpers.h"
+#include "MantidCurveFitting/Algorithms/CalculateGammaBackground.h"
+#include "../Functions/ComptonProfileTestHelpers.h"
 
-using Mantid::CurveFitting::CalculateGammaBackground;
+using Mantid::CurveFitting::Algorithms::CalculateGammaBackground;
 
 class CalculateGammaBackgroundTest : public CxxTest::TestSuite {
 public:
diff --git a/Framework/CurveFitting/test/CalculateMSVesuvioTest.h b/Framework/CurveFitting/test/Algorithms/CalculateMSVesuvioTest.h
similarity index 98%
rename from Framework/CurveFitting/test/CalculateMSVesuvioTest.h
rename to Framework/CurveFitting/test/Algorithms/CalculateMSVesuvioTest.h
index b1cd29c4d738dbd71eaabf473920395d6604f588..f6eefbb0e35fd18579c0e7b04b0cc30398b88512 100644
--- a/Framework/CurveFitting/test/CalculateMSVesuvioTest.h
+++ b/Framework/CurveFitting/test/Algorithms/CalculateMSVesuvioTest.h
@@ -5,7 +5,7 @@
 
 #include "boost/version.hpp"
 
-#include "MantidCurveFitting/CalculateMSVesuvio.h"
+#include "MantidCurveFitting/Algorithms/CalculateMSVesuvio.h"
 #include "MantidGeometry/Instrument/Goniometer.h"
 #include "MantidGeometry/Instrument/Detector.h"
 #include "MantidGeometry/Objects/ShapeFactory.h"
@@ -13,9 +13,9 @@
 #include "MantidTestHelpers/ComponentCreationHelper.h"
 #include "MantidTestHelpers/WorkspaceCreationHelper.h"
 
-#include "Functions/ComptonProfileTestHelpers.h"
+#include "../Functions/ComptonProfileTestHelpers.h"
 
-using Mantid::CurveFitting::CalculateMSVesuvio;
+using Mantid::CurveFitting::Algorithms::CalculateMSVesuvio;
 
 class CalculateMSVesuvioTest : public CxxTest::TestSuite {
 public:
diff --git a/Framework/CurveFitting/test/ConvertToYSpaceTest.h b/Framework/CurveFitting/test/Algorithms/ConvertToYSpaceTest.h
similarity index 96%
rename from Framework/CurveFitting/test/ConvertToYSpaceTest.h
rename to Framework/CurveFitting/test/Algorithms/ConvertToYSpaceTest.h
index c439658b075daf32105cdbadffb1c21f74eda4e0..839a9202dcdaa6ca483a5d439f97522d1dba0471 100644
--- a/Framework/CurveFitting/test/ConvertToYSpaceTest.h
+++ b/Framework/CurveFitting/test/Algorithms/ConvertToYSpaceTest.h
@@ -3,10 +3,10 @@
 
 #include <cxxtest/TestSuite.h>
 
-#include "MantidCurveFitting/ConvertToYSpace.h"
-#include "Functions/ComptonProfileTestHelpers.h"
+#include "MantidCurveFitting/Algorithms/ConvertToYSpace.h"
+#include "../Functions/ComptonProfileTestHelpers.h"
 
-using Mantid::CurveFitting::ConvertToYSpace;
+using Mantid::CurveFitting::Algorithms::ConvertToYSpace;
 
 class ConvertToYSpaceTest : public CxxTest::TestSuite {
 public:
diff --git a/Framework/CurveFitting/test/ConvolveWorkspacesTest.h b/Framework/CurveFitting/test/Algorithms/ConvolveWorkspacesTest.h
similarity index 94%
rename from Framework/CurveFitting/test/ConvolveWorkspacesTest.h
rename to Framework/CurveFitting/test/Algorithms/ConvolveWorkspacesTest.h
index 64d07f6281f49ebc61c14b256a1cb314cb664c94..fe9dc90f597485b84dc5257466b1ec3f8a180aed 100644
--- a/Framework/CurveFitting/test/ConvolveWorkspacesTest.h
+++ b/Framework/CurveFitting/test/Algorithms/ConvolveWorkspacesTest.h
@@ -5,8 +5,8 @@
 
 #include "MantidAPI/FrameworkManager.h"
 #include "MantidAPI/AnalysisDataService.h"
-#include "MantidCurveFitting/ConvolveWorkspaces.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/ConvolveWorkspaces.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidDataObjects/TableWorkspace.h"
 #include "MantidAPI/IPeakFunction.h"
 #include "MantidAPI/TableRow.h"
@@ -21,6 +21,7 @@ using namespace Mantid;
 using namespace Mantid::API;
 using namespace Mantid::DataObjects;
 using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 
 class ConvolveWorkspacesTest : public CxxTest::TestSuite {
 public:
diff --git a/Framework/CurveFitting/test/EstimatePeakErrorsTest.h b/Framework/CurveFitting/test/Algorithms/EstimatePeakErrorsTest.h
similarity index 98%
rename from Framework/CurveFitting/test/EstimatePeakErrorsTest.h
rename to Framework/CurveFitting/test/Algorithms/EstimatePeakErrorsTest.h
index 3ea8b1328cfa5098cdffdc2af7219645d00b2a4f..04baa92e562d387740477077d681853d54945792 100644
--- a/Framework/CurveFitting/test/EstimatePeakErrorsTest.h
+++ b/Framework/CurveFitting/test/Algorithms/EstimatePeakErrorsTest.h
@@ -3,7 +3,7 @@
 
 #include <cxxtest/TestSuite.h>
 
-#include "MantidCurveFitting/EstimatePeakErrors.h"
+#include "MantidCurveFitting/Algorithms/EstimatePeakErrors.h"
 
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/AnalysisDataService.h"
@@ -19,6 +19,7 @@
 using namespace Mantid;
 using namespace Mantid::API;
 using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace WorkspaceCreationHelper;
 
 class EstimatePeakErrorsTest : public CxxTest::TestSuite {
diff --git a/Framework/CurveFitting/test/EvaluateFunctionTest.h b/Framework/CurveFitting/test/Algorithms/EvaluateFunctionTest.h
similarity index 98%
rename from Framework/CurveFitting/test/EvaluateFunctionTest.h
rename to Framework/CurveFitting/test/Algorithms/EvaluateFunctionTest.h
index 22e8a5aac0777d3003c7215b26ff7a1eb1f1f18f..cf8b80f4d991cbd76fe4a197c039c5eea0e15e6f 100644
--- a/Framework/CurveFitting/test/EvaluateFunctionTest.h
+++ b/Framework/CurveFitting/test/Algorithms/EvaluateFunctionTest.h
@@ -3,7 +3,7 @@
 
 #include <cxxtest/TestSuite.h>
 
-#include "MantidCurveFitting/EvaluateFunction.h"
+#include "MantidCurveFitting/Algorithms/EvaluateFunction.h"
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/FunctionFactory.h"
@@ -15,7 +15,7 @@
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidKernel/EmptyValues.h"
 
-using Mantid::CurveFitting::EvaluateFunction;
+using Mantid::CurveFitting::Algorithms::EvaluateFunction;
 using namespace Mantid;
 using namespace Mantid::API;
 
diff --git a/Framework/CurveFitting/test/FitPowderDiffPeaksTest.h b/Framework/CurveFitting/test/Algorithms/FitPowderDiffPeaksTest.h
similarity index 99%
rename from Framework/CurveFitting/test/FitPowderDiffPeaksTest.h
rename to Framework/CurveFitting/test/Algorithms/FitPowderDiffPeaksTest.h
index ffc3aa2b5be75b21602fda724cfd7ee954fd182e..2eea28afa5bc7c29710dadd82f362ece62d132fb 100644
--- a/Framework/CurveFitting/test/FitPowderDiffPeaksTest.h
+++ b/Framework/CurveFitting/test/Algorithms/FitPowderDiffPeaksTest.h
@@ -3,7 +3,7 @@
 
 #include <cxxtest/TestSuite.h>
 
-#include "MantidCurveFitting/FitPowderDiffPeaks.h"
+#include "MantidCurveFitting/Algorithms/FitPowderDiffPeaks.h"
 #include "MantidDataHandling/LoadAscii.h"
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidDataObjects/Workspace2D.h"
@@ -11,7 +11,7 @@
 #include "MantidAPI/TableRow.h"
 #include <fstream>
 
-using Mantid::CurveFitting::FitPowderDiffPeaks;
+using Mantid::CurveFitting::Algorithms::FitPowderDiffPeaks;
 
 using namespace std;
 using namespace Mantid;
@@ -32,7 +32,7 @@ public:
   /** Test init
     */
   void test_Init() {
-    CurveFitting::FitPowderDiffPeaks alg;
+    Algorithms::FitPowderDiffPeaks alg;
     TS_ASSERT_THROWS_NOTHING(alg.initialize());
     TS_ASSERT(alg.isInitialized());
 
diff --git a/Framework/CurveFitting/test/FitTest.h b/Framework/CurveFitting/test/Algorithms/FitTest.h
similarity index 98%
rename from Framework/CurveFitting/test/FitTest.h
rename to Framework/CurveFitting/test/Algorithms/FitTest.h
index d4ce164b49008fd56dfc082016524bab1e9a7743..94b27088b284b5188b077158fe2d7ab871c110f7 100644
--- a/Framework/CurveFitting/test/FitTest.h
+++ b/Framework/CurveFitting/test/Algorithms/FitTest.h
@@ -7,11 +7,12 @@
 #include "MantidAPI/FrameworkManager.h"
 #include "MantidAPI/IFuncMinimizer.h"
 #include "MantidAPI/FuncMinimizerFactory.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "FitTestHelpers.h"
 
 using namespace Mantid;
 using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::API;
 
 namespace {
diff --git a/Framework/CurveFitting/test/FitTestHelpers.h b/Framework/CurveFitting/test/Algorithms/FitTestHelpers.h
similarity index 100%
rename from Framework/CurveFitting/test/FitTestHelpers.h
rename to Framework/CurveFitting/test/Algorithms/FitTestHelpers.h
diff --git a/Framework/CurveFitting/test/LeBailFitTest.h b/Framework/CurveFitting/test/Algorithms/LeBailFitTest.h
similarity index 99%
rename from Framework/CurveFitting/test/LeBailFitTest.h
rename to Framework/CurveFitting/test/Algorithms/LeBailFitTest.h
index 367da9173d58de7fbc930245072ebf27239bca6a..11d3e247d7c687a98620774c0459c4c97473d744 100644
--- a/Framework/CurveFitting/test/LeBailFitTest.h
+++ b/Framework/CurveFitting/test/Algorithms/LeBailFitTest.h
@@ -5,7 +5,7 @@
 #include "MantidKernel/Timer.h"
 #include "MantidKernel/System.h"
 
-#include "MantidCurveFitting/LeBailFit.h"
+#include "MantidCurveFitting/Algorithms/LeBailFit.h"
 #include "MantidDataHandling/LoadAscii.h"
 
 #include <iostream>
@@ -30,7 +30,7 @@ using namespace WorkspaceCreationHelper;
 
 using namespace std;
 
-using Mantid::CurveFitting::LeBailFit;
+using Mantid::CurveFitting::Algorithms::LeBailFit;
 
 class LeBailFitTest : public CxxTest::TestSuite {
 public:
diff --git a/Framework/CurveFitting/test/LeBailFunctionTest.h b/Framework/CurveFitting/test/Algorithms/LeBailFunctionTest.h
similarity index 99%
rename from Framework/CurveFitting/test/LeBailFunctionTest.h
rename to Framework/CurveFitting/test/Algorithms/LeBailFunctionTest.h
index af5ecb5b30b30784720c1e4c0ce9945d0f35f34e..4bf04982b07c43c4d83f7aa7b7ebe621f5289421 100644
--- a/Framework/CurveFitting/test/LeBailFunctionTest.h
+++ b/Framework/CurveFitting/test/Algorithms/LeBailFunctionTest.h
@@ -9,10 +9,11 @@
 #include <iomanip>
 #include <fstream>
 
-#include "MantidCurveFitting/LeBailFunction.h"
+#include "MantidCurveFitting/Algorithms/LeBailFunction.h"
 
 using namespace Mantid;
 using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::API;
 
 using namespace std;
diff --git a/Framework/CurveFitting/test/NormaliseByPeakAreaTest.h b/Framework/CurveFitting/test/Algorithms/NormaliseByPeakAreaTest.h
similarity index 98%
rename from Framework/CurveFitting/test/NormaliseByPeakAreaTest.h
rename to Framework/CurveFitting/test/Algorithms/NormaliseByPeakAreaTest.h
index 17dd123a735af14c7e9a97e3882abe5ddd5a30f1..30d27a5a9b32834fae81aba7fc65f4d3fd6e56a3 100644
--- a/Framework/CurveFitting/test/NormaliseByPeakAreaTest.h
+++ b/Framework/CurveFitting/test/Algorithms/NormaliseByPeakAreaTest.h
@@ -3,10 +3,10 @@
 
 #include <cxxtest/TestSuite.h>
 
-#include "MantidCurveFitting/NormaliseByPeakArea.h"
-#include "Functions/ComptonProfileTestHelpers.h"
+#include "MantidCurveFitting/Algorithms/NormaliseByPeakArea.h"
+#include "../Functions/ComptonProfileTestHelpers.h"
 
-using Mantid::CurveFitting::NormaliseByPeakArea;
+using Mantid::CurveFitting::Algorithms::NormaliseByPeakArea;
 
 class NormaliseByPeakAreaTest : public CxxTest::TestSuite {
 public:
diff --git a/Framework/CurveFitting/test/PawleyFitTest.h b/Framework/CurveFitting/test/Algorithms/PawleyFitTest.h
similarity index 98%
rename from Framework/CurveFitting/test/PawleyFitTest.h
rename to Framework/CurveFitting/test/Algorithms/PawleyFitTest.h
index 3c99605f3d889689ca20cd3a8f375a4c09f0a93f..1766df896cd2ddba7d2486f7210f2496a25dd0fd 100644
--- a/Framework/CurveFitting/test/PawleyFitTest.h
+++ b/Framework/CurveFitting/test/Algorithms/PawleyFitTest.h
@@ -3,7 +3,7 @@
 
 #include <cxxtest/TestSuite.h>
 
-#include "MantidCurveFitting/PawleyFit.h"
+#include "MantidCurveFitting/Algorithms/PawleyFit.h"
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidAPI/TableRow.h"
@@ -11,8 +11,8 @@
 #include "MantidKernel/V3D.h"
 #include "MantidTestHelpers/WorkspaceCreationHelper.h"
 
-using Mantid::CurveFitting::PawleyFit;
-using Mantid::CurveFitting::V3DFromHKLColumnExtractor;
+using Mantid::CurveFitting::Algorithms::PawleyFit;
+using Mantid::CurveFitting::Algorithms::V3DFromHKLColumnExtractor;
 using namespace Mantid::API;
 using namespace Mantid::Kernel;
 
diff --git a/Framework/CurveFitting/test/PlotPeakByLogValueTest.h b/Framework/CurveFitting/test/Algorithms/PlotPeakByLogValueTest.h
similarity index 99%
rename from Framework/CurveFitting/test/PlotPeakByLogValueTest.h
rename to Framework/CurveFitting/test/Algorithms/PlotPeakByLogValueTest.h
index 03947a4ae12f68f9ef830eeab19346b35e5fa4f7..9fb02f3eff1711f19136fd8add1b58a3658e50b4 100644
--- a/Framework/CurveFitting/test/PlotPeakByLogValueTest.h
+++ b/Framework/CurveFitting/test/Algorithms/PlotPeakByLogValueTest.h
@@ -3,7 +3,7 @@
 
 #include <cxxtest/TestSuite.h>
 
-#include "MantidCurveFitting/PlotPeakByLogValue.h"
+#include "MantidCurveFitting/Algorithms/PlotPeakByLogValue.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidDataObjects/TableWorkspace.h"
 #include "MantidAPI/TableRow.h"
@@ -26,6 +26,7 @@ using namespace Mantid;
 using namespace Mantid::API;
 using namespace Mantid::DataObjects;
 using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 
 typedef Mantid::DataObjects::Workspace2D_sptr WS_type;
 typedef Mantid::DataObjects::TableWorkspace_sptr TWS_type;
diff --git a/Framework/CurveFitting/test/RefinePowderInstrumentParameters3Test.h b/Framework/CurveFitting/test/Algorithms/RefinePowderInstrumentParameters3Test.h
similarity index 99%
rename from Framework/CurveFitting/test/RefinePowderInstrumentParameters3Test.h
rename to Framework/CurveFitting/test/Algorithms/RefinePowderInstrumentParameters3Test.h
index a77678e9ebccb2dae4462d4d8d0611b4fc1c4f26..dedf1a1c02d6251cc27152f26dde9d4820c39563 100644
--- a/Framework/CurveFitting/test/RefinePowderInstrumentParameters3Test.h
+++ b/Framework/CurveFitting/test/Algorithms/RefinePowderInstrumentParameters3Test.h
@@ -3,7 +3,7 @@
 
 #include <cxxtest/TestSuite.h>
 
-#include "MantidCurveFitting/RefinePowderInstrumentParameters3.h"
+#include "MantidCurveFitting/Algorithms/RefinePowderInstrumentParameters3.h"
 
 #include "MantidAPI/WorkspaceFactory.h"
 #include "MantidDataObjects/Workspace2D.h"
@@ -12,7 +12,7 @@
 
 #include <fstream>
 
-using Mantid::CurveFitting::RefinePowderInstrumentParameters3;
+using Mantid::CurveFitting::Algorithms::RefinePowderInstrumentParameters3;
 
 using namespace Mantid;
 using namespace Mantid::DataObjects;
diff --git a/Framework/CurveFitting/test/RefinePowderInstrumentParametersTest.h b/Framework/CurveFitting/test/Algorithms/RefinePowderInstrumentParametersTest.h
similarity index 98%
rename from Framework/CurveFitting/test/RefinePowderInstrumentParametersTest.h
rename to Framework/CurveFitting/test/Algorithms/RefinePowderInstrumentParametersTest.h
index 421e4728d18724aff5a18509d3079997d7af5c81..fccdacb20db30175b3a3fa7c457b9ca9d9cbff43 100644
--- a/Framework/CurveFitting/test/RefinePowderInstrumentParametersTest.h
+++ b/Framework/CurveFitting/test/Algorithms/RefinePowderInstrumentParametersTest.h
@@ -3,14 +3,14 @@
 
 #include <cxxtest/TestSuite.h>
 
-#include "MantidCurveFitting/RefinePowderInstrumentParameters.h"
+#include "MantidCurveFitting/Algorithms/RefinePowderInstrumentParameters.h"
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidDataObjects/TableWorkspace.h"
 #include "MantidAPI/TableRow.h"
 #include <fstream>
 
-using Mantid::CurveFitting::RefinePowderInstrumentParameters;
+using Mantid::CurveFitting::Algorithms::RefinePowderInstrumentParameters;
 using namespace Mantid;
 using namespace Mantid::Kernel;
 using namespace Mantid::API;
@@ -153,7 +153,7 @@ public:
                                                  geomparamws);
 
     // 2. Set up algorithm parameters
-    CurveFitting::RefinePowderInstrumentParameters alg;
+    RefinePowderInstrumentParameters alg;
     TS_ASSERT_THROWS_NOTHING(alg.initialize());
     TS_ASSERT(alg.isInitialized());
 
@@ -236,7 +236,7 @@ public:
                                                  geomparamws);
 
     // 2. Set up algorithm parameters
-    CurveFitting::RefinePowderInstrumentParameters alg;
+    RefinePowderInstrumentParameters alg;
     TS_ASSERT_THROWS_NOTHING(alg.initialize());
     TS_ASSERT(alg.isInitialized());
 
diff --git a/Framework/CurveFitting/test/SeqDomainSpectrumCreatorTest.h b/Framework/CurveFitting/test/Algorithms/SeqDomainSpectrumCreatorTest.h
similarity index 99%
rename from Framework/CurveFitting/test/SeqDomainSpectrumCreatorTest.h
rename to Framework/CurveFitting/test/Algorithms/SeqDomainSpectrumCreatorTest.h
index 4cf5c605467e89f40040a1d00da1b3cea7d9b196..077ca4fd6b7d0e7eaf1743731055c1fa0de27f03 100644
--- a/Framework/CurveFitting/test/SeqDomainSpectrumCreatorTest.h
+++ b/Framework/CurveFitting/test/Algorithms/SeqDomainSpectrumCreatorTest.h
@@ -10,7 +10,7 @@
 #include "MantidAPI/IFunction1DSpectrum.h"
 #include "MantidAPI/ParamFunction.h"
 
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidAPI/TableRow.h"
 #include "MantidAPI/FunctionFactory.h"
 
@@ -20,6 +20,7 @@
 using namespace Mantid::Kernel;
 using namespace Mantid::API;
 using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 
 class SeqDomainSpectrumCreatorTest : public CxxTest::TestSuite {
 public:
diff --git a/Framework/CurveFitting/test/SplineBackgroundTest.h b/Framework/CurveFitting/test/Algorithms/SplineBackgroundTest.h
similarity index 96%
rename from Framework/CurveFitting/test/SplineBackgroundTest.h
rename to Framework/CurveFitting/test/Algorithms/SplineBackgroundTest.h
index 935ed917426390465f5b952deb4f385aba20c967..4608bff0880d02351a3143f238691427d8a7896f 100644
--- a/Framework/CurveFitting/test/SplineBackgroundTest.h
+++ b/Framework/CurveFitting/test/Algorithms/SplineBackgroundTest.h
@@ -2,7 +2,7 @@
 #define SPLINEBACKGROUNDTEST_H_
 
 #include <cxxtest/TestSuite.h>
-#include "MantidCurveFitting/SplineBackground.h"
+#include "MantidCurveFitting/Algorithms/SplineBackground.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/FrameworkManager.h"
 #include "MantidAPI/MatrixWorkspace.h"
diff --git a/Framework/CurveFitting/test/SplineInterpolationTest.h b/Framework/CurveFitting/test/Algorithms/SplineInterpolationTest.h
similarity index 97%
rename from Framework/CurveFitting/test/SplineInterpolationTest.h
rename to Framework/CurveFitting/test/Algorithms/SplineInterpolationTest.h
index 43b5adc90e74c081932edbe431ce6a50dcd11081..e55dc97c987ca523d7b8ac445a20e1c9ea1e0f2e 100644
--- a/Framework/CurveFitting/test/SplineInterpolationTest.h
+++ b/Framework/CurveFitting/test/Algorithms/SplineInterpolationTest.h
@@ -3,12 +3,12 @@
 
 #include <cxxtest/TestSuite.h>
 
-#include "MantidCurveFitting/SplineInterpolation.h"
+#include "MantidCurveFitting/Algorithms/SplineInterpolation.h"
 #include "MantidTestHelpers/WorkspaceCreationHelper.h"
 #include "MantidAPI/NumericAxis.h"
 #include "MantidAPI/TextAxis.h"
 
-using Mantid::CurveFitting::SplineInterpolation;
+using Mantid::CurveFitting::Algorithms::SplineInterpolation;
 using namespace Mantid::API;
 
 class SplineInterpolationTest : public CxxTest::TestSuite {
diff --git a/Framework/CurveFitting/test/SplineSmoothingTest.h b/Framework/CurveFitting/test/Algorithms/SplineSmoothingTest.h
similarity index 96%
rename from Framework/CurveFitting/test/SplineSmoothingTest.h
rename to Framework/CurveFitting/test/Algorithms/SplineSmoothingTest.h
index cc28ba8c4361c88f6d91c53231d3120d033fdc9b..bc88af1750e9c0de3be3a6940fd5c9667859b100 100644
--- a/Framework/CurveFitting/test/SplineSmoothingTest.h
+++ b/Framework/CurveFitting/test/Algorithms/SplineSmoothingTest.h
@@ -4,9 +4,9 @@
 #include <cxxtest/TestSuite.h>
 
 #include "MantidTestHelpers/WorkspaceCreationHelper.h"
-#include "MantidCurveFitting/SplineSmoothing.h"
+#include "MantidCurveFitting/Algorithms/SplineSmoothing.h"
 
-using Mantid::CurveFitting::SplineSmoothing;
+using Mantid::CurveFitting::Algorithms::SplineSmoothing;
 
 class SplineSmoothingTest : public CxxTest::TestSuite {
 public:
diff --git a/Framework/CurveFitting/test/CompositeFunctionTest.h b/Framework/CurveFitting/test/CompositeFunctionTest.h
index 2c9a053c3a8f3531fd236a9860f09b50c99e0935..62a5cc3a1e5a15205b4504fafbb040b3f1543b75 100644
--- a/Framework/CurveFitting/test/CompositeFunctionTest.h
+++ b/Framework/CurveFitting/test/CompositeFunctionTest.h
@@ -5,7 +5,7 @@
 
 #include "MantidAPI/IPeakFunction.h"
 #include "MantidAPI/CompositeFunction.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidDataObjects/TableWorkspace.h"
 #include "MantidAPI/TableRow.h"
@@ -28,6 +28,7 @@
 using namespace Mantid::API;
 using namespace Mantid::DataObjects;
 using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::CurveFitting::Functions;
 using namespace Mantid::CurveFitting::FuncMinimisers;
 using namespace Mantid::CurveFitting::CostFunctions;
diff --git a/Framework/CurveFitting/test/FitMWTest.h b/Framework/CurveFitting/test/FitMWTest.h
index 3065472ccea415a7b29542eb97b73f08667d66b0..00f938a976097564634c962ab59e1d74bf45e6a0 100644
--- a/Framework/CurveFitting/test/FitMWTest.h
+++ b/Framework/CurveFitting/test/FitMWTest.h
@@ -5,7 +5,7 @@
 #include "MantidTestHelpers/FakeObjects.h"
 
 #include "MantidCurveFitting/FitMW.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidCurveFitting/SeqDomain.h"
 #include "MantidCurveFitting/Functions/UserFunction.h"
 #include "MantidCurveFitting/Functions/ExpDecay.h"
@@ -29,6 +29,7 @@
 
 using namespace Mantid;
 using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::CurveFitting::Functions;
 using namespace Mantid::API;
 
@@ -52,7 +53,7 @@ public:
     fun->setParameter("Height", 1.);
     fun->setParameter("Lifetime", 1.0);
 
-    Fit fit;
+    Algorithms::Fit fit;
     fit.initialize();
 
     fit.setProperty("Function", fun);
@@ -160,7 +161,7 @@ public:
     fun->setParameter("Height", 1.);
     fun->setParameter("Lifetime", 1.);
 
-    Fit fit;
+    Algorithms::Fit fit;
     fit.initialize();
 
     fit.setProperty("Function", fun);
diff --git a/Framework/CurveFitting/test/FuncMinimizers/FABADAMinimizerTest.h b/Framework/CurveFitting/test/FuncMinimizers/FABADAMinimizerTest.h
index cd59c1aef2784e7b0ee96585d1301f600602ca3c..73f6508f42790dfc83079c5dcf4796ff14c0bf6b 100644
--- a/Framework/CurveFitting/test/FuncMinimizers/FABADAMinimizerTest.h
+++ b/Framework/CurveFitting/test/FuncMinimizers/FABADAMinimizerTest.h
@@ -5,7 +5,7 @@
 
 #include "MantidCurveFitting/FuncMinimizers/FABADAMinimizer.h"
 
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidAPI/AlgorithmManager.h"
 
 #include "MantidCurveFitting/Functions/ExpDecay.h"
@@ -17,6 +17,7 @@ using Mantid::CurveFitting::FuncMinimisers::FABADAMinimizer;
 using namespace Mantid::API;
 using namespace Mantid;
 using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::CurveFitting::Functions;
 
 class FABADAMinimizerTest : public CxxTest::TestSuite {
@@ -35,7 +36,7 @@ public:
     fun->setParameter("Height", 8.);
     fun->setParameter("Lifetime", 1.0);
 
-    Fit fit;
+    Algorithms::Fit fit;
     fit.initialize();
 
     fit.setRethrows(true);
@@ -144,7 +145,7 @@ public:
     fun->setParameter("Height", 1.);
     fun->setParameter("Lifetime", 1.0);
 
-    Fit fit;
+    Algorithms::Fit fit;
     fit.initialize();
 
     fit.setRethrows(true);
diff --git a/Framework/CurveFitting/test/FunctionParameterDecoratorFitTest.h b/Framework/CurveFitting/test/FunctionParameterDecoratorFitTest.h
index c7f60ebf936da427adc02bfe5a1b4a01c6b27288..699b840af67808e1503a8155ce93469c96282a33 100644
--- a/Framework/CurveFitting/test/FunctionParameterDecoratorFitTest.h
+++ b/Framework/CurveFitting/test/FunctionParameterDecoratorFitTest.h
@@ -9,13 +9,14 @@
 #include "MantidAPI/FunctionParameterDecorator.h"
 #include "MantidDataObjects/Workspace2D.h"
 
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 
 #include <boost/make_shared.hpp>
 
 using namespace Mantid::API;
 using namespace Mantid::DataObjects;
 using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 
 class FunctionParameterDecoratorFitTest;
 
diff --git a/Framework/CurveFitting/test/Functions/AbragamTest.h b/Framework/CurveFitting/test/Functions/AbragamTest.h
index d103dfa360ed57fc1a60f7a2e8a8f357c79f71dc..387926477b7d2f73b443265d2ce80dfafbcd571c 100644
--- a/Framework/CurveFitting/test/Functions/AbragamTest.h
+++ b/Framework/CurveFitting/test/Functions/AbragamTest.h
@@ -7,7 +7,7 @@
 #include "MantidAPI/CompositeFunction.h"
 #include "MantidCurveFitting/Functions/LinearBackground.h"
 #include "MantidCurveFitting/Constraints/BoundaryConstraint.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidKernel/UnitFactory.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/WorkspaceFactory.h"
@@ -19,6 +19,7 @@
 using namespace Mantid::Kernel;
 using namespace Mantid::API;
 using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::CurveFitting::Functions;
 using namespace Mantid::DataObjects;
 
@@ -55,7 +56,7 @@ public:
   }
 
   void testAgainstMockData() {
-    Fit alg2;
+    Algorithms::Fit alg2;
     TS_ASSERT_THROWS_NOTHING(alg2.initialize());
     TS_ASSERT(alg2.isInitialized());
 
diff --git a/Framework/CurveFitting/test/Functions/Bk2BkExpConvPVTest.h b/Framework/CurveFitting/test/Functions/Bk2BkExpConvPVTest.h
index 81556c847a00fc414983dba7725560e189bae462..b7630e0f6b828d287e4d54f79f4918d6adb5f446 100644
--- a/Framework/CurveFitting/test/Functions/Bk2BkExpConvPVTest.h
+++ b/Framework/CurveFitting/test/Functions/Bk2BkExpConvPVTest.h
@@ -9,12 +9,13 @@
 #include <fstream>
 
 #include "MantidCurveFitting/Functions/Bk2BkExpConvPV.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidAPI/WorkspaceFactory.h"
 #include "MantidDataObjects/Workspace2D.h"
 
 using namespace Mantid;
 using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::CurveFitting::Functions;
 using namespace Mantid::API;
 
@@ -159,7 +160,7 @@ public:
               << std::endl;
 
     // 3. Set fit
-    Fit fitalg;
+    Algorithms::Fit fitalg;
     fitalg.initialize();
     TS_ASSERT(fitalg.isInitialized());
 
diff --git a/Framework/CurveFitting/test/Functions/ChebyshevTest.h b/Framework/CurveFitting/test/Functions/ChebyshevTest.h
index 1e348c7bc88fc44df8b65a291786fa8493a3589a..2602cc30011f506b35969d80ec4fbc5d25a0265a 100644
--- a/Framework/CurveFitting/test/Functions/ChebyshevTest.h
+++ b/Framework/CurveFitting/test/Functions/ChebyshevTest.h
@@ -4,7 +4,7 @@
 #include <cxxtest/TestSuite.h>
 
 #include "MantidCurveFitting/Functions/Chebyshev.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidAPI/AnalysisDataService.h"
@@ -14,6 +14,7 @@
 using namespace Mantid;
 using namespace Mantid::API;
 using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::CurveFitting::Functions;
 
 class ChebyshevTest : public CxxTest::TestSuite {
@@ -60,7 +61,7 @@ public:
     Chebyshev cheb;
     cheb.setAttributeValue("n", 3);
 
-    Fit fit;
+    Algorithms::Fit fit;
     fit.initialize();
 
     fit.setPropertyValue("Function", cheb.asString());
@@ -117,7 +118,7 @@ public:
     cheb.setAttributeValue("StartX", -10.0);
     cheb.setAttributeValue("EndX", 10.0);
 
-    Fit fit;
+    Algorithms::Fit fit;
     fit.initialize();
 
     fit.setPropertyValue("Function", cheb.asString());
diff --git a/Framework/CurveFitting/test/Functions/ConvolutionTest.h b/Framework/CurveFitting/test/Functions/ConvolutionTest.h
index e7ee0eecece7cb0bf5802852ad223687774ab367..21c97b9b390e28361bbb123333158d45c82abf6d 100644
--- a/Framework/CurveFitting/test/Functions/ConvolutionTest.h
+++ b/Framework/CurveFitting/test/Functions/ConvolutionTest.h
@@ -6,7 +6,7 @@
 #include "MantidAPI/FrameworkManager.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidCurveFitting/Functions/Convolution.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidDataObjects/TableWorkspace.h"
 #include "MantidAPI/IPeakFunction.h"
@@ -21,6 +21,7 @@ using namespace Mantid;
 using namespace Mantid::API;
 using namespace Mantid::DataObjects;
 using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::CurveFitting::Functions;
 
 typedef Mantid::DataObjects::Workspace2D_sptr WS_type;
@@ -407,7 +408,7 @@ public:
     conv->setParameter("f1.h", 1);
     conv->setParameter("f1.w", 1);
 
-    Fit fit;
+    Algorithms::Fit fit;
     fit.initialize();
 
     fit.setPropertyValue("Function", conv->asString());
@@ -425,7 +426,7 @@ public:
         0.1, fabs(out->getParameter("f1.w") - conv->getParameter("f1.w")));
 
     conv->setAttributeValue("FixResolution", false);
-    Fit fit1;
+    Algorithms::Fit fit1;
     fit1.initialize();
     fit1.setProperty("Function", boost::dynamic_pointer_cast<IFunction>(conv));
     fit1.setProperty("InputWorkspace", data);
diff --git a/Framework/CurveFitting/test/Functions/CubicSplineTest.h b/Framework/CurveFitting/test/Functions/CubicSplineTest.h
index fd9c1d3231c5032d9cd08884e79ab564c7077190..06760532f47b8102eb8b600f9ea1452adccad021 100644
--- a/Framework/CurveFitting/test/Functions/CubicSplineTest.h
+++ b/Framework/CurveFitting/test/Functions/CubicSplineTest.h
@@ -7,7 +7,7 @@
 #include <iostream>
 
 #include "MantidCurveFitting/Functions/CubicSpline.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidAPI/AnalysisDataService.h"
@@ -17,6 +17,7 @@
 using namespace Mantid;
 using namespace Mantid::API;
 using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::CurveFitting::Functions;
 
 class CubicSplineTest : public CxxTest::TestSuite {
diff --git a/Framework/CurveFitting/test/Functions/DeltaFunctionTest.h b/Framework/CurveFitting/test/Functions/DeltaFunctionTest.h
index a29e7043d8bc66f6e1742cc596f0bdf3c7f7cb02..b7fabe94be69f939f9593a29ee64bf745353847f 100644
--- a/Framework/CurveFitting/test/Functions/DeltaFunctionTest.h
+++ b/Framework/CurveFitting/test/Functions/DeltaFunctionTest.h
@@ -2,7 +2,7 @@
 #define DELTAFUNCTIONTEST_H
 
 #include <cxxtest/TestSuite.h>
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 
 #include "MantidCurveFitting/Functions/DeltaFunction.h"
 #include "MantidCurveFitting/Functions/Convolution.h"
@@ -13,6 +13,7 @@
 using namespace Mantid::Kernel;
 using namespace Mantid::API;
 using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::CurveFitting::Functions;
 
 // same class as ConvolutionTest_Gauss in ConvolutionTest.h
diff --git a/Framework/CurveFitting/test/Functions/DiffRotDiscreteCircleTest.h b/Framework/CurveFitting/test/Functions/DiffRotDiscreteCircleTest.h
index 98bcc699040cbee4b48c3b843d4e46fca5f97490..a2ecbc07f71e0ee28f673d62749cb85cb01eb68e 100644
--- a/Framework/CurveFitting/test/Functions/DiffRotDiscreteCircleTest.h
+++ b/Framework/CurveFitting/test/Functions/DiffRotDiscreteCircleTest.h
@@ -6,7 +6,7 @@
 #include "MantidCurveFitting/Functions/Convolution.h"
 #include "MantidCurveFitting/Functions/DiffRotDiscreteCircle.h"
 #include "MantidCurveFitting/Functions/Gaussian.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidGeometry/Instrument/ReferenceFrame.h"
 #include "MantidTestHelpers/ComponentCreationHelper.h"
 #include "MantidTestHelpers/WorkspaceCreationHelper.h"
@@ -19,6 +19,7 @@
 #include <boost/shared_ptr.hpp>
 
 using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::CurveFitting::Functions;
 
 class DiffRotDiscreteCircleTest : public CxxTest::TestSuite {
@@ -127,7 +128,7 @@ public:
                                  "9,Intensity=2.9,Radius=2.3,Decay=0.468";
 
     // Do a fit with no iterations
-    Fit fitalg;
+    Algorithms::Fit fitalg;
     TS_ASSERT_THROWS_NOTHING(fitalg.initialize());
     TS_ASSERT(fitalg.isInitialized());
     fitalg.setProperty("Function", funtion_string);
@@ -247,7 +248,7 @@ public:
         "Radius=1.567,Decay=7.567))";
 
     // Initialize the fit function in the Fit algorithm
-    Fit fitalg;
+    Algorithms::Fit fitalg;
     TS_ASSERT_THROWS_NOTHING(fitalg.initialize());
     TS_ASSERT(fitalg.isInitialized());
     fitalg.setProperty("Function", funtion_string);
@@ -345,7 +346,7 @@ private:
         << ",Shift=" << S << ")";
 
     // Initialize the fit function in the Fit algorithm
-    Fit fitalg;
+    Algorithms::Fit fitalg;
     TS_ASSERT_THROWS_NOTHING(fitalg.initialize());
     TS_ASSERT(fitalg.isInitialized());
     fitalg.setProperty("Function", function_stream.str());
@@ -528,7 +529,7 @@ private:
 
   // create a data workspace using a Fit algorithm
   Mantid::DataObjects::Workspace2D_sptr
-  generateWorkspaceFromFitAlgorithm(Fit &fitalg) {
+  generateWorkspaceFromFitAlgorithm(Algorithms::Fit &fitalg) {
     using namespace Mantid::Kernel;
     using namespace Mantid::Geometry;
 
diff --git a/Framework/CurveFitting/test/Functions/DiffSphereTest.h b/Framework/CurveFitting/test/Functions/DiffSphereTest.h
index 9a77f604da6244c4eb6a116785ffd94066352ebf..10cbffce46ff56c78913de7d9546ad77ecd7b202 100644
--- a/Framework/CurveFitting/test/Functions/DiffSphereTest.h
+++ b/Framework/CurveFitting/test/Functions/DiffSphereTest.h
@@ -15,7 +15,7 @@
 #include "MantidCurveFitting/Functions/Gaussian.h"
 #include "MantidCurveFitting/Functions/Convolution.h"
 #include "MantidTestHelpers/WorkspaceCreationHelper.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidAPI/AlgorithmFactory.h"
 
@@ -23,6 +23,7 @@
 #include "MantidTestHelpers/ComponentCreationHelper.h"
 
 using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::CurveFitting::Functions;
 
 class DiffSphereTest : public CxxTest::TestSuite {
@@ -46,7 +47,7 @@ public:
         "Sigma=0.002);name=ElasticDiffSphere,Q=0.5,Height=47.014,Radius=3.567)";
 
     // Initialize the fit function in the Fit algorithm
-    Fit fitalg;
+    Algorithms::Fit fitalg;
     TS_ASSERT_THROWS_NOTHING(fitalg.initialize());
     TS_ASSERT(fitalg.isInitialized());
     fitalg.setProperty("Function", funtion_string);
@@ -189,7 +190,7 @@ public:
     const double Q(0.5);
 
     // Initialize the fit function in the Fit algorithm
-    Fit fitalg;
+    Algorithms::Fit fitalg;
     TS_ASSERT_THROWS_NOTHING(fitalg.initialize());
     TS_ASSERT(fitalg.isInitialized());
     std::ostringstream funtion_stream;
@@ -335,7 +336,7 @@ private:
       simQ = 0.20092;
 
     // Initialize the fit function in the Fit algorithm
-    Fit fitalg;
+    Algorithms::Fit fitalg;
     TS_ASSERT_THROWS_NOTHING(fitalg.initialize());
     TS_ASSERT(fitalg.isInitialized());
     std::ostringstream funtion_stream;
@@ -461,7 +462,7 @@ private:
 
   // create a data workspace using a Fit algorithm
   Mantid::DataObjects::Workspace2D_sptr
-  generateWorkspaceFromFitAlgorithm(Fit &fitalg) {
+  generateWorkspaceFromFitAlgorithm(Algorithms::Fit &fitalg) {
     using namespace Mantid::Kernel;
     using namespace Mantid::Geometry;
 
diff --git a/Framework/CurveFitting/test/Functions/EndErfcTest.h b/Framework/CurveFitting/test/Functions/EndErfcTest.h
index 5fe20acfd8e99905c50aca1c74e0ba9a838b2b9e..dc03dd49687bc3504fa6fede22461e39bd487145 100644
--- a/Framework/CurveFitting/test/Functions/EndErfcTest.h
+++ b/Framework/CurveFitting/test/Functions/EndErfcTest.h
@@ -4,7 +4,7 @@
 #include <cxxtest/TestSuite.h>
 
 #include "MantidCurveFitting/Functions/EndErfc.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/WorkspaceFactory.h"
 #include "MantidDataObjects/Workspace2D.h"
@@ -14,6 +14,7 @@ using namespace Mantid::Kernel;
 using namespace Mantid::API;
 using namespace Mantid::CurveFitting;
 using namespace Mantid::CurveFitting::Functions;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::DataObjects;
 
 class EndErfcTest : public CxxTest::TestSuite {
@@ -39,7 +40,7 @@ public:
   }
 
   void testAgainstMockData() {
-    Fit alg2;
+    Algorithms::Fit alg2;
     TS_ASSERT_THROWS_NOTHING(alg2.initialize());
     TS_ASSERT(alg2.isInitialized());
 
diff --git a/Framework/CurveFitting/test/Functions/ExpDecayMuonTest.h b/Framework/CurveFitting/test/Functions/ExpDecayMuonTest.h
index 45561fcc3d1326c35d87105e6098aa05f29da5df..02a079776da1b8fc1632ca1ddc4e09cd632bcaff 100644
--- a/Framework/CurveFitting/test/Functions/ExpDecayMuonTest.h
+++ b/Framework/CurveFitting/test/Functions/ExpDecayMuonTest.h
@@ -7,7 +7,7 @@
 #include "MantidAPI/CompositeFunction.h"
 #include "MantidCurveFitting/Functions/LinearBackground.h"
 #include "MantidCurveFitting/Constraints/BoundaryConstraint.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/WorkspaceFactory.h"
 #include "MantidDataObjects/Workspace2D.h"
@@ -16,6 +16,7 @@
 using namespace Mantid::Kernel;
 using namespace Mantid::API;
 using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::CurveFitting::Functions;
 using namespace Mantid::DataObjects;
 
@@ -49,7 +50,7 @@ public:
   }
 
   void testAgainstMockData() {
-    Fit alg2;
+    Algorithms::Fit alg2;
     TS_ASSERT_THROWS_NOTHING(alg2.initialize());
     TS_ASSERT(alg2.isInitialized());
 
diff --git a/Framework/CurveFitting/test/Functions/ExpDecayOscTest.h b/Framework/CurveFitting/test/Functions/ExpDecayOscTest.h
index cc87d09f6b5b2908c3407d53d9be690c3c6f70a9..9c91b5e7dccd6734f9deb754062e9da48fcc81a9 100644
--- a/Framework/CurveFitting/test/Functions/ExpDecayOscTest.h
+++ b/Framework/CurveFitting/test/Functions/ExpDecayOscTest.h
@@ -5,7 +5,7 @@
 #include <cmath>
 
 #include "MantidCurveFitting/Functions/ExpDecayOsc.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidCurveFitting/Constraints/BoundaryConstraint.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/WorkspaceFactory.h"
@@ -14,6 +14,7 @@
 using namespace Mantid::Kernel;
 using namespace Mantid::API;
 using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::CurveFitting::Functions;
 using namespace Mantid::CurveFitting::Constraints;
 using namespace Mantid::DataObjects;
@@ -50,7 +51,7 @@ public:
   }
 
   void testAgainstMockData() {
-    Fit alg2;
+    Algorithms::Fit alg2;
     TS_ASSERT_THROWS_NOTHING(alg2.initialize());
     TS_ASSERT(alg2.isInitialized());
 
diff --git a/Framework/CurveFitting/test/Functions/ExpDecayTest.h b/Framework/CurveFitting/test/Functions/ExpDecayTest.h
index e5b3ff434c8b850ec7e7f672e50f2ed5286c9443..149edd05e1a5ba33f31244e8764be4b53a4c5692 100644
--- a/Framework/CurveFitting/test/Functions/ExpDecayTest.h
+++ b/Framework/CurveFitting/test/Functions/ExpDecayTest.h
@@ -7,7 +7,7 @@
 #include "MantidAPI/CompositeFunction.h"
 #include "MantidCurveFitting/Functions/LinearBackground.h"
 #include "MantidCurveFitting/Constraints/BoundaryConstraint.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidKernel/UnitFactory.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/WorkspaceFactory.h"
@@ -19,6 +19,7 @@
 using namespace Mantid::Kernel;
 using namespace Mantid::API;
 using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::CurveFitting::Functions;
 using namespace Mantid::DataObjects;
 
@@ -52,7 +53,7 @@ public:
   }
 
   void testAgainstMockData() {
-    Fit alg2;
+    Algorithms::Fit alg2;
     TS_ASSERT_THROWS_NOTHING(alg2.initialize());
     TS_ASSERT(alg2.isInitialized());
 
diff --git a/Framework/CurveFitting/test/Functions/FullprofPolynomialTest.h b/Framework/CurveFitting/test/Functions/FullprofPolynomialTest.h
index fc6b72a1cbc80a725ee453cdf0c1927ecf0ae340..42b9226a157d35194382d641ca202f57561deb76 100644
--- a/Framework/CurveFitting/test/Functions/FullprofPolynomialTest.h
+++ b/Framework/CurveFitting/test/Functions/FullprofPolynomialTest.h
@@ -6,7 +6,7 @@
 #include "MantidCurveFitting/Functions/FullprofPolynomial.h"
 #include "MantidAPI/IFunction.h"
 #include "MantidAPI/WorkspaceFactory.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidDataObjects/Workspace2D.h"
 
 using Mantid::CurveFitting::Functions::FullprofPolynomial;
@@ -14,6 +14,7 @@ using Mantid::CurveFitting::Functions::FullprofPolynomial;
 using namespace Mantid;
 using namespace Mantid::API;
 using namespace Mantid::CurveFitting;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::CurveFitting::Functions;
 using namespace Mantid::DataObjects;
 using namespace Mantid::Kernel;
@@ -88,7 +89,7 @@ public:
     tofbkgd->setParameter("A3", 0.0);
 
     // Set up fit
-    CurveFitting::Fit fitalg;
+    CurveFitting::Algorithms::Fit fitalg;
     TS_ASSERT_THROWS_NOTHING(fitalg.initialize());
     TS_ASSERT(fitalg.isInitialized());
 
diff --git a/Framework/CurveFitting/test/Functions/GausDecayTest.h b/Framework/CurveFitting/test/Functions/GausDecayTest.h
index 59df2188d75dd290dbac76646fd153cb545aa4e5..3771d22c694d4c4438d2c3681fb7435e5dc634ac 100644
--- a/Framework/CurveFitting/test/Functions/GausDecayTest.h
+++ b/Framework/CurveFitting/test/Functions/GausDecayTest.h
@@ -7,7 +7,7 @@
 #include "MantidAPI/CompositeFunction.h"
 #include "MantidCurveFitting/Functions/LinearBackground.h"
 #include "MantidCurveFitting/Constraints/BoundaryConstraint.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidKernel/UnitFactory.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/WorkspaceFactory.h"
@@ -22,6 +22,7 @@ using namespace Mantid::Kernel;
 using namespace Mantid::API;
 using namespace Mantid::CurveFitting;
 using namespace Mantid::CurveFitting::Functions;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::DataObjects;
 using namespace Mantid::DataHandling;
 
@@ -53,7 +54,7 @@ public:
   }
 
   void testAgainstMockData() {
-    Fit alg2;
+    Algorithms::Fit alg2;
     TS_ASSERT_THROWS_NOTHING(alg2.initialize());
     TS_ASSERT(alg2.isInitialized());
 
diff --git a/Framework/CurveFitting/test/Functions/GausOscTest.h b/Framework/CurveFitting/test/Functions/GausOscTest.h
index fdd9b91bf366267ffbed186e20b18b338c34f16d..0e31dc9c702bb0f9a5499f3a7ffcceaf22dd8d86 100644
--- a/Framework/CurveFitting/test/Functions/GausOscTest.h
+++ b/Framework/CurveFitting/test/Functions/GausOscTest.h
@@ -8,7 +8,7 @@
 #include "MantidAPI/CompositeFunction.h"
 #include "MantidCurveFitting/Functions/LinearBackground.h"
 #include "MantidCurveFitting/Constraints/BoundaryConstraint.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidKernel/UnitFactory.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/WorkspaceFactory.h"
@@ -23,6 +23,7 @@ using namespace Mantid::Kernel;
 using namespace Mantid::API;
 using namespace Mantid::CurveFitting;
 using namespace Mantid::CurveFitting::Functions;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::DataObjects;
 using namespace Mantid::DataHandling;
 
@@ -58,7 +59,7 @@ public:
   void testAgainstMockData() // Parts of test disabled because it does not give
                              // result like that obtained in mantidplot.
   {
-    Fit alg2;
+    Algorithms::Fit alg2;
     TS_ASSERT_THROWS_NOTHING(alg2.initialize());
     TS_ASSERT(alg2.isInitialized());
 
diff --git a/Framework/CurveFitting/test/Functions/GaussianTest.h b/Framework/CurveFitting/test/Functions/GaussianTest.h
index 79c76ab0836973c8c75803cabf7a0dfe36be9d1b..079292914546c5b19922438bcc98aab4ab79b476 100644
--- a/Framework/CurveFitting/test/Functions/GaussianTest.h
+++ b/Framework/CurveFitting/test/Functions/GaussianTest.h
@@ -4,7 +4,7 @@
 #include <cxxtest/TestSuite.h>
 
 #include "MantidCurveFitting/Functions/Gaussian.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidAPI/CompositeFunction.h"
 #include "MantidCurveFitting/Constraints/BoundaryConstraint.h"
 #include "MantidKernel/UnitFactory.h"
@@ -34,6 +34,7 @@ using namespace Mantid::CurveFitting;
 using namespace Mantid::CurveFitting::Functions;
 using namespace Mantid::CurveFitting::CostFunctions;
 using namespace Mantid::CurveFitting::Constraints;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::DataObjects;
 using namespace Mantid::DataHandling;
 
@@ -239,7 +240,7 @@ public:
     TS_ASSERT_THROWS_NOTHING(AnalysisDataService::Instance().add(wsName, ws2D));
 
     // Initialise algorithm
-    Fit alg;
+    Algorithms::Fit alg;
     TS_ASSERT_THROWS_NOTHING(alg.initialize());
     TS_ASSERT(alg.isInitialized());
 
@@ -308,7 +309,7 @@ public:
     Mantid::MantidVec &e = ws2D->dataE(0); // error values of counts
     getMockData(y, e);
 
-    Fit alg2;
+    Algorithms::Fit alg2;
     TS_ASSERT_THROWS_NOTHING(alg2.initialize());
     TS_ASSERT(alg2.isInitialized());
 
@@ -361,7 +362,7 @@ public:
     // put this workspace in the data service
     TS_ASSERT_THROWS_NOTHING(AnalysisDataService::Instance().add(wsName, ws2D));
 
-    Fit alg2;
+    Algorithms::Fit alg2;
     TS_ASSERT_THROWS_NOTHING(alg2.initialize());
     TS_ASSERT(alg2.isInitialized());
 
@@ -427,7 +428,7 @@ public:
         ConfigService::Instance().getString("curvefitting.peakRadius");
     ConfigService::Instance().setString("curvefitting.peakRadius", "5");
 
-    Fit alg;
+    Algorithms::Fit alg;
     TS_ASSERT_THROWS_NOTHING(alg.initialize());
     TS_ASSERT(alg.isInitialized());
 
diff --git a/Framework/CurveFitting/test/Functions/IkedaCarpenterPVTest.h b/Framework/CurveFitting/test/Functions/IkedaCarpenterPVTest.h
index 0d6464341d4cdc160bf5bed22e22f02ba7ad25aa..b374956ec0367e0e261eb339d11c7bc123b41725 100644
--- a/Framework/CurveFitting/test/Functions/IkedaCarpenterPVTest.h
+++ b/Framework/CurveFitting/test/Functions/IkedaCarpenterPVTest.h
@@ -4,7 +4,7 @@
 #include <cxxtest/TestSuite.h>
 
 #include "MantidCurveFitting/Functions/IkedaCarpenterPV.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidKernel/ConfigService.h"
 
 #include "MantidTestHelpers/WorkspaceCreationHelper.h"
@@ -268,7 +268,7 @@ using namespace Mantid::CurveFitting::Functions;
     icpv.tie("Kappa", "46.025921");
     icpv.setParameter("X0", 45.0);
 
-    auto alg = boost::shared_ptr<IAlgorithm>(new Fit);
+    auto alg = boost::shared_ptr<IAlgorithm>(new Algorithms::Fit);
     alg->initialize();
     alg->setPropertyValue("Function", icpv.asString());
     // Set general Fit parameters
diff --git a/Framework/CurveFitting/test/Functions/LinearBackgroundTest.h b/Framework/CurveFitting/test/Functions/LinearBackgroundTest.h
index 8e8905a7f8619c0202e97b49519faf5d229179ba..03f2d8341c2adbb05608afa567f854141bc8298d 100644
--- a/Framework/CurveFitting/test/Functions/LinearBackgroundTest.h
+++ b/Framework/CurveFitting/test/Functions/LinearBackgroundTest.h
@@ -5,7 +5,7 @@
 
 #include "MantidCurveFitting/Functions/LinearBackground.h"
 
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidKernel/UnitFactory.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/WorkspaceFactory.h"
@@ -18,7 +18,7 @@
 using namespace Mantid::Kernel;
 using namespace Mantid::API;
 using Mantid::CurveFitting::Functions::LinearBackground;
-using Mantid::CurveFitting::Fit;
+using Mantid::CurveFitting::Algorithms::Fit;
 using namespace Mantid::DataObjects;
 using namespace Mantid::DataHandling;
 
diff --git a/Framework/CurveFitting/test/Functions/LogNormalTest.h b/Framework/CurveFitting/test/Functions/LogNormalTest.h
index de8055bfb53da1d2a85cced1b8c7fd8c56b8d0ff..d4391f687f2020a2aab3d304feae0ad7e181ec74 100644
--- a/Framework/CurveFitting/test/Functions/LogNormalTest.h
+++ b/Framework/CurveFitting/test/Functions/LogNormalTest.h
@@ -7,7 +7,7 @@
 #include "MantidAPI/CompositeFunction.h"
 #include "MantidCurveFitting/Functions/LinearBackground.h"
 #include "MantidCurveFitting/Constraints/BoundaryConstraint.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidKernel/UnitFactory.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/WorkspaceFactory.h"
@@ -20,6 +20,7 @@ using namespace Mantid::Kernel;
 using namespace Mantid::API;
 using namespace Mantid::CurveFitting;
 using namespace Mantid::CurveFitting::Functions;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::DataObjects;
 
 class LogNormalTest : public CxxTest::TestSuite {
@@ -55,7 +56,7 @@ public:
   }
 
   void testAgainstMockData() {
-    Fit alg2;
+    Algorithms::Fit alg2;
     TS_ASSERT_THROWS_NOTHING(alg2.initialize());
     TS_ASSERT(alg2.isInitialized());
 
diff --git a/Framework/CurveFitting/test/Functions/MuonFInteractionTest.h b/Framework/CurveFitting/test/Functions/MuonFInteractionTest.h
index 3e3e3ac7b52e9a102648c843b693de72215aba0e..a03d49a13135f5697a6f46e2ca9d2a8a2c067e89 100644
--- a/Framework/CurveFitting/test/Functions/MuonFInteractionTest.h
+++ b/Framework/CurveFitting/test/Functions/MuonFInteractionTest.h
@@ -4,7 +4,7 @@
 #include <cxxtest/TestSuite.h>
 
 #include "MantidCurveFitting/Functions/MuonFInteraction.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidKernel/UnitFactory.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/WorkspaceFactory.h"
@@ -17,6 +17,7 @@ using namespace Mantid::Kernel;
 using namespace Mantid::API;
 using namespace Mantid::CurveFitting;
 using namespace Mantid::CurveFitting::Functions;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::DataObjects;
 
 class MuonFInteractionTest : public CxxTest::TestSuite {
@@ -52,7 +53,7 @@ public:
   }
 
   void testAgainstMockData() {
-    Fit alg2;
+    Algorithms::Fit alg2;
     TS_ASSERT_THROWS_NOTHING(alg2.initialize());
     TS_ASSERT(alg2.isInitialized());
 
diff --git a/Framework/CurveFitting/test/Functions/PolynomialTest.h b/Framework/CurveFitting/test/Functions/PolynomialTest.h
index 8af4cebb7efd4bfc57e5661c5c2adae7242276bd..13d0461f676997d8bc7ccc44f69831644154cb02 100644
--- a/Framework/CurveFitting/test/Functions/PolynomialTest.h
+++ b/Framework/CurveFitting/test/Functions/PolynomialTest.h
@@ -6,12 +6,13 @@
 #include "MantidCurveFitting/Functions/Polynomial.h"
 #include "MantidDataObjects/Workspace2D.h"
 #include "MantidAPI/WorkspaceFactory.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 
 using Mantid::CurveFitting::Functions::Polynomial;
 using namespace Mantid;
 using namespace API;
 using namespace Kernel;
+using namespace Mantid::CurveFitting::Algorithms;
 
 class PolynomialTest : public CxxTest::TestSuite {
 public:
@@ -45,7 +46,7 @@ public:
     // put this workspace in the data service
     TS_ASSERT_THROWS_NOTHING(AnalysisDataService::Instance().add(wsName, ws2D));
 
-    CurveFitting::Fit alg2;
+    CurveFitting::Algorithms::Fit alg2;
     TS_ASSERT_THROWS_NOTHING(alg2.initialize());
     TS_ASSERT(alg2.isInitialized());
 
diff --git a/Framework/CurveFitting/test/Functions/ProductFunctionTest.h b/Framework/CurveFitting/test/Functions/ProductFunctionTest.h
index a87ac08200116c8bd30cb91f58a24617447a7014..41e6db65efb256ef9c3fe212ea1df61855331a0d 100644
--- a/Framework/CurveFitting/test/Functions/ProductFunctionTest.h
+++ b/Framework/CurveFitting/test/Functions/ProductFunctionTest.h
@@ -6,7 +6,7 @@
 #include "MantidCurveFitting/Functions/ProductFunction.h"
 #include "MantidCurveFitting/Functions/Gaussian.h"
 #include "MantidCurveFitting/Jacobian.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 
 #include "MantidDataObjects/Workspace2D.h"
 
@@ -21,6 +21,7 @@
 typedef Mantid::DataObjects::Workspace2D_sptr WS_type;
 using Mantid::CurveFitting::Functions::ProductFunction;
 using Mantid::CurveFitting::Functions::Gaussian;
+using Mantid::CurveFitting::Algorithms::Fit;
 
 class ProductFunctionMWTest_Gauss : public Mantid::API::IPeakFunction {
 public:
@@ -251,7 +252,7 @@ public:
 
     Mantid::API::AnalysisDataService::Instance().add(wsName, ws);
 
-    Mantid::CurveFitting::Fit fit;
+    Mantid::CurveFitting::Algorithms::Fit fit;
     fit.initialize();
 
     f0->tie("PeakCentre", "1.0");
diff --git a/Framework/CurveFitting/test/Functions/QuadraticTest.h b/Framework/CurveFitting/test/Functions/QuadraticTest.h
index 72836c16fd7941f93f56fe450dad840c475cd922..293b34a479a774bb824a08c6e21c509b25d17a39 100644
--- a/Framework/CurveFitting/test/Functions/QuadraticTest.h
+++ b/Framework/CurveFitting/test/Functions/QuadraticTest.h
@@ -5,7 +5,7 @@
 
 #include "MantidCurveFitting/Functions/Quadratic.h"
 
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidKernel/UnitFactory.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/WorkspaceFactory.h"
@@ -18,7 +18,7 @@
 using namespace Mantid::Kernel;
 using namespace Mantid::API;
 using Mantid::CurveFitting::Functions::Quadratic;
-using Mantid::CurveFitting::Fit;
+using Mantid::CurveFitting::Algorithms::Fit;
 using namespace Mantid::DataObjects;
 using namespace Mantid::DataHandling;
 
diff --git a/Framework/CurveFitting/test/Functions/ResolutionTest.h b/Framework/CurveFitting/test/Functions/ResolutionTest.h
index c4adc4e2e5e2d0287d1b9154411c2321cfb350f7..7ac7e7a642c912f6a0cd301f390f0908b776dedb 100644
--- a/Framework/CurveFitting/test/Functions/ResolutionTest.h
+++ b/Framework/CurveFitting/test/Functions/ResolutionTest.h
@@ -4,7 +4,7 @@
 #include <cxxtest/TestSuite.h>
 
 #include "MantidCurveFitting/Functions/Resolution.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidCurveFitting/Functions/Convolution.h"
 #include "MantidAPI/IPeakFunction.h"
 #include "MantidAPI/FunctionFactory.h"
@@ -170,7 +170,7 @@ public:
     conv.addFunction(res);
     conv.addFunction(gauss);
 
-    Fit fit;
+    Algorithms::Fit fit;
     fit.initialize();
     fit.setPropertyValue("Function", conv.asString());
     fit.setPropertyValue("InputWorkspace", "ResolutionTest_WS");
diff --git a/Framework/CurveFitting/test/Functions/StaticKuboToyabeTest.h b/Framework/CurveFitting/test/Functions/StaticKuboToyabeTest.h
index 7cf2b5b478e3392952dd6509d35570141cf118ad..75aabd12039f6c9253ca7a6683e7352c39939be0 100644
--- a/Framework/CurveFitting/test/Functions/StaticKuboToyabeTest.h
+++ b/Framework/CurveFitting/test/Functions/StaticKuboToyabeTest.h
@@ -7,7 +7,7 @@
 #include "MantidAPI/CompositeFunction.h"
 #include "MantidCurveFitting/Functions/LinearBackground.h"
 #include "MantidCurveFitting/Constraints/BoundaryConstraint.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidKernel/UnitFactory.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/WorkspaceFactory.h"
@@ -51,7 +51,7 @@ public:
   }
 
   void testAgainstMockData() {
-    Fit alg2;
+    Algorithms::Fit alg2;
     TS_ASSERT_THROWS_NOTHING(alg2.initialize());
     TS_ASSERT(alg2.isInitialized());
 
diff --git a/Framework/CurveFitting/test/Functions/StaticKuboToyabeTimesExpDecayTest.h b/Framework/CurveFitting/test/Functions/StaticKuboToyabeTimesExpDecayTest.h
index a47df64ce636ec46085e801ff38855cc3b3b2405..41872069e5d1ce649428af575ca217ba8050f801 100644
--- a/Framework/CurveFitting/test/Functions/StaticKuboToyabeTimesExpDecayTest.h
+++ b/Framework/CurveFitting/test/Functions/StaticKuboToyabeTimesExpDecayTest.h
@@ -5,7 +5,7 @@
 
 #include "MantidCurveFitting/Functions/StaticKuboToyabeTimesExpDecay.h"
 #include "MantidAPI/FunctionFactory.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidDataObjects/Workspace2D.h"
 
 using Mantid::CurveFitting::Functions::StaticKuboToyabeTimesExpDecay;
@@ -14,6 +14,7 @@ using namespace Mantid::Kernel;
 using namespace Mantid::API;
 using namespace Mantid::CurveFitting;
 using namespace Mantid::CurveFitting::Functions;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::DataObjects;
 
 class StaticKuboToyabeTimesExpDecayTest : public CxxTest::TestSuite {
@@ -70,7 +71,7 @@ public:
   }
 
   void test_AgainstMockData() {
-    Fit alg2;
+    Algorithms::Fit alg2;
     TS_ASSERT_THROWS_NOTHING(alg2.initialize());
     TS_ASSERT(alg2.isInitialized());
 
diff --git a/Framework/CurveFitting/test/Functions/StaticKuboToyabeTimesGausDecayTest.h b/Framework/CurveFitting/test/Functions/StaticKuboToyabeTimesGausDecayTest.h
index 74ad5d74c8cf72012da223bb042be8a49a4ef93a..f257182091434c6f21ab1bac0b9c17afa3e90b29 100644
--- a/Framework/CurveFitting/test/Functions/StaticKuboToyabeTimesGausDecayTest.h
+++ b/Framework/CurveFitting/test/Functions/StaticKuboToyabeTimesGausDecayTest.h
@@ -5,7 +5,7 @@
 
 #include "MantidCurveFitting/Functions/StaticKuboToyabeTimesGausDecay.h"
 #include "MantidAPI/FunctionFactory.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidDataObjects/Workspace2D.h"
 
 using Mantid::CurveFitting::Functions::StaticKuboToyabeTimesGausDecay;
@@ -13,6 +13,7 @@ using namespace Mantid::Kernel;
 using namespace Mantid::API;
 using namespace Mantid::CurveFitting;
 using namespace Mantid::CurveFitting::Functions;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::DataObjects;
 
 class StaticKuboToyabeTimesGausDecayTest : public CxxTest::TestSuite {
@@ -69,7 +70,7 @@ public:
   }
 
   void test_AgainstMockData() {
-    Fit alg2;
+    Algorithms::Fit alg2;
     TS_ASSERT_THROWS_NOTHING(alg2.initialize());
     TS_ASSERT(alg2.isInitialized());
 
diff --git a/Framework/CurveFitting/test/Functions/StretchExpMuonTest.h b/Framework/CurveFitting/test/Functions/StretchExpMuonTest.h
index 47c85a7e6818fc8e56a4019299147d47252253c4..8bbbfb9041cd005233bdd865d79009bcdcb0f444 100644
--- a/Framework/CurveFitting/test/Functions/StretchExpMuonTest.h
+++ b/Framework/CurveFitting/test/Functions/StretchExpMuonTest.h
@@ -7,7 +7,7 @@
 #include "MantidAPI/CompositeFunction.h"
 #include "MantidCurveFitting/Functions/LinearBackground.h"
 #include "MantidCurveFitting/Constraints/BoundaryConstraint.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidKernel/UnitFactory.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/WorkspaceFactory.h"
@@ -20,6 +20,7 @@ using namespace Mantid::Kernel;
 using namespace Mantid::API;
 using namespace Mantid::CurveFitting;
 using namespace Mantid::CurveFitting::Functions;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::DataObjects;
 
 class StretchExpMuonTest : public CxxTest::TestSuite {
@@ -55,7 +56,7 @@ public:
   }
 
   void testAgainstMockData() {
-    Fit alg2;
+    Algorithms::Fit alg2;
     TS_ASSERT_THROWS_NOTHING(alg2.initialize());
     TS_ASSERT(alg2.isInitialized());
 
diff --git a/Framework/CurveFitting/test/Functions/StretchExpTest.h b/Framework/CurveFitting/test/Functions/StretchExpTest.h
index b90876d0e5be6b387c2d839a7adf6452763efb06..a17208356f7b9261d4ab4551706426a3fe683297 100644
--- a/Framework/CurveFitting/test/Functions/StretchExpTest.h
+++ b/Framework/CurveFitting/test/Functions/StretchExpTest.h
@@ -7,7 +7,7 @@
 #include "MantidAPI/CompositeFunction.h"
 #include "MantidCurveFitting/Functions/LinearBackground.h"
 #include "MantidCurveFitting/Constraints/BoundaryConstraint.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 #include "MantidKernel/UnitFactory.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/WorkspaceFactory.h"
@@ -22,6 +22,7 @@ using namespace Mantid::Kernel;
 using namespace Mantid::API;
 using namespace Mantid::CurveFitting;
 using namespace Mantid::CurveFitting::Functions;
+using namespace Mantid::CurveFitting::Algorithms;
 using namespace Mantid::DataObjects;
 
 class StretchExpTest_Jacobian : public Mantid::API::Jacobian {
@@ -66,7 +67,7 @@ public:
   }
 
   void testAgainstMockData() {
-    Fit alg2;
+    Algorithms::Fit alg2;
     TS_ASSERT_THROWS_NOTHING(alg2.initialize());
     TS_ASSERT(alg2.isInitialized());
 
diff --git a/Framework/CurveFitting/test/MultiDomainFunctionTest.h b/Framework/CurveFitting/test/MultiDomainFunctionTest.h
index 5061940cfea2ff25922bda9e8024fb482fc0086e..ee12edfc8fde4539c26e4cc5de1d50656576b3d0 100644
--- a/Framework/CurveFitting/test/MultiDomainFunctionTest.h
+++ b/Framework/CurveFitting/test/MultiDomainFunctionTest.h
@@ -11,7 +11,7 @@
 #include "MantidAPI/FrameworkManager.h"
 #include "MantidCurveFitting/CostFunctions/CostFuncLeastSquares.h"
 #include "MantidCurveFitting/FuncMinimizers/LevenbergMarquardtMDMinimizer.h"
-#include "MantidCurveFitting/Fit.h"
+#include "MantidCurveFitting/Algorithms/Fit.h"
 
 #include "MantidTestHelpers/FakeObjects.h"
 
@@ -24,6 +24,7 @@ using namespace Mantid;
 using namespace Mantid::API;
 using namespace Mantid::CurveFitting;
 using namespace Mantid::CurveFitting::CostFunctions;
+using namespace Mantid::CurveFitting::Algorithms;
 
 class MultiDomainFunctionTest_Function : public virtual IFunction1D,
                                          public virtual ParamFunction {
@@ -187,7 +188,7 @@ public:
     multi->getFunction(2)->setParameter("A", 0);
     multi->getFunction(2)->setParameter("B", 0);
 
-    Fit fit;
+    Algorithms::Fit fit;
     fit.initialize();
     fit.setProperty("Function", boost::dynamic_pointer_cast<IFunction>(multi));
     fit.setProperty("InputWorkspace", ws1);