diff --git a/Framework/CurveFitting/CMakeLists.txt b/Framework/CurveFitting/CMakeLists.txt
index 767ef45f733f033f49c04da7d043bb79364dd812..2d7cf8e07bcaf8db6dc279d42a6940e307017e4d 100644
--- a/Framework/CurveFitting/CMakeLists.txt
+++ b/Framework/CurveFitting/CMakeLists.txt
@@ -5,7 +5,6 @@ set ( SRC_FILES
 	#src/RefinePowderInstrumentParameters.cpp
 	src/Abragam.cpp
 	src/AugmentedLagrangianOptimizer.cpp
-	src/FuncMinimizers/BFGS_Minimizer.cpp
 	src/BSpline.cpp
 	src/BackToBackExponential.cpp
 	src/BackgroundFunction.cpp
@@ -23,14 +22,12 @@ set ( SRC_FILES
 	src/ConvertToYSpace.cpp
 	src/Convolution.cpp
 	src/ConvolveWorkspaces.cpp
-	src/CostFuncFitting.cpp
-	src/CostFuncLeastSquares.cpp
-	src/CostFuncRwp.cpp
-	src/CostFuncUnweightedLeastSquares.cpp
+	src/CostFunctions/CostFuncFitting.cpp
+	src/CostFunctions/CostFuncLeastSquares.cpp
+	src/CostFunctions/CostFuncRwp.cpp
+	src/CostFunctions/CostFuncUnweightedLeastSquares.cpp
 	src/CubicSpline.cpp
-	src/FuncMinimizers/DampingMinimizer.cpp
 	src/DeltaFunction.cpp
-	src/FuncMinimizers/DerivMinimizer.cpp
 	src/DiffRotDiscreteCircle.cpp
 	src/DiffSphere.cpp
 	src/DynamicKuboToyabe.cpp
@@ -40,14 +37,22 @@ set ( SRC_FILES
 	src/ExpDecay.cpp
 	src/ExpDecayMuon.cpp
 	src/ExpDecayOsc.cpp
-	src/FuncMinimizers/FABADAMinimizer.cpp
-	src/FuncMinimizers/FRConjugateGradientMinimizer.cpp
 	src/Fit.cpp
 	src/Fit1D.cpp
 	src/FitMW.cpp
 	src/FitPowderDiffPeaks.cpp
 	src/FlatBackground.cpp
 	src/FullprofPolynomial.cpp
+	src/FuncMinimizers/BFGS_Minimizer.cpp
+	src/FuncMinimizers/DampingMinimizer.cpp
+	src/FuncMinimizers/DerivMinimizer.cpp
+	src/FuncMinimizers/FABADAMinimizer.cpp
+	src/FuncMinimizers/FRConjugateGradientMinimizer.cpp
+	src/FuncMinimizers/LevenbergMarquardtMDMinimizer.cpp
+	src/FuncMinimizers/LevenbergMarquardtMinimizer.cpp
+	src/FuncMinimizers/PRConjugateGradientMinimizer.cpp
+	src/FuncMinimizers/SimplexMinimizer.cpp
+	src/FuncMinimizers/SteepestDescentMinimizer.cpp
 	src/FunctionDomain1DSpectrumCreator.cpp
 	src/GSLFunctions.cpp
 	src/GSLMatrix.cpp
@@ -63,8 +68,6 @@ set ( SRC_FILES
 	src/LatticeFunction.cpp
 	src/LeBailFit.cpp
 	src/LeBailFunction.cpp
-	src/FuncMinimizers/LevenbergMarquardtMDMinimizer.cpp
-	src/FuncMinimizers/LevenbergMarquardtMinimizer.cpp
 	src/LinearBackground.cpp
 	src/LogNormal.cpp
 	src/Lorentzian.cpp
@@ -74,7 +77,6 @@ set ( SRC_FILES
 	src/MuonFInteraction.cpp
 	src/NeutronBk2BkExpConvPVoigt.cpp
 	src/NormaliseByPeakArea.cpp
-	src/FuncMinimizers/PRConjugateGradientMinimizer.cpp
 	src/ParDomain.cpp
 	src/ParameterEstimator.cpp
 	src/PawleyFit.cpp
@@ -94,7 +96,6 @@ set ( SRC_FILES
 	src/SeqDomain.cpp
 	src/SeqDomainSpectrumCreator.cpp
 	src/SimpleChebfun.cpp
-	src/FuncMinimizers/SimplexMinimizer.cpp
 	src/SpecialFunctionHelper.cpp
 	src/SplineBackground.cpp
 	src/SplineInterpolation.cpp
@@ -102,7 +103,6 @@ set ( SRC_FILES
 	src/StaticKuboToyabe.cpp
 	src/StaticKuboToyabeTimesExpDecay.cpp
 	src/StaticKuboToyabeTimesGausDecay.cpp
-	src/FuncMinimizers/SteepestDescentMinimizer.cpp
 	src/StretchExp.cpp
 	src/StretchExpMuon.cpp
 	src/TabulatedFunction.cpp
@@ -126,7 +126,6 @@ set ( INC_FILES
 	#inc/MantidCurveFitting/RefinePowderInstrumentParameters.h
 	inc/MantidCurveFitting/Abragam.h
 	inc/MantidCurveFitting/AugmentedLagrangianOptimizer.h
-	inc/MantidCurveFitting/FuncMinimizers/BFGS_Minimizer.h
 	inc/MantidCurveFitting/BSpline.h
 	inc/MantidCurveFitting/BackToBackExponential.h
 	inc/MantidCurveFitting/BackgroundFunction.h
@@ -144,14 +143,12 @@ set ( INC_FILES
 	inc/MantidCurveFitting/ConvertToYSpace.h
 	inc/MantidCurveFitting/Convolution.h
 	inc/MantidCurveFitting/ConvolveWorkspaces.h
-	inc/MantidCurveFitting/CostFuncFitting.h
-	inc/MantidCurveFitting/CostFuncLeastSquares.h
-	inc/MantidCurveFitting/CostFuncRwp.h
-	inc/MantidCurveFitting/CostFuncUnweightedLeastSquares.h
+	inc/MantidCurveFitting/CostFunctions/CostFuncFitting.h
+	inc/MantidCurveFitting/CostFunctions/CostFuncLeastSquares.h
+	inc/MantidCurveFitting/CostFunctions/CostFuncRwp.h
+	inc/MantidCurveFitting/CostFunctions/CostFuncUnweightedLeastSquares.h
 	inc/MantidCurveFitting/CubicSpline.h
-	inc/MantidCurveFitting/FuncMinimizers/DampingMinimizer.h
 	inc/MantidCurveFitting/DeltaFunction.h
-	inc/MantidCurveFitting/FuncMinimizers/DerivMinimizer.h
 	inc/MantidCurveFitting/DiffRotDiscreteCircle.h
 	inc/MantidCurveFitting/DiffSphere.h
 	inc/MantidCurveFitting/DllConfig.h
@@ -162,14 +159,22 @@ set ( INC_FILES
 	inc/MantidCurveFitting/ExpDecay.h
 	inc/MantidCurveFitting/ExpDecayMuon.h
 	inc/MantidCurveFitting/ExpDecayOsc.h
-	inc/MantidCurveFitting/FuncMinimizers/FABADAMinimizer.h
-	inc/MantidCurveFitting/FuncMinimizers/FRConjugateGradientMinimizer.h
 	inc/MantidCurveFitting/Fit.h
 	inc/MantidCurveFitting/Fit1D.h
 	inc/MantidCurveFitting/FitMW.h
 	inc/MantidCurveFitting/FitPowderDiffPeaks.h
 	inc/MantidCurveFitting/FlatBackground.h
 	inc/MantidCurveFitting/FullprofPolynomial.h
+	inc/MantidCurveFitting/FuncMinimizers/BFGS_Minimizer.h
+	inc/MantidCurveFitting/FuncMinimizers/DampingMinimizer.h
+	inc/MantidCurveFitting/FuncMinimizers/DerivMinimizer.h
+	inc/MantidCurveFitting/FuncMinimizers/FABADAMinimizer.h
+	inc/MantidCurveFitting/FuncMinimizers/FRConjugateGradientMinimizer.h
+	inc/MantidCurveFitting/FuncMinimizers/LevenbergMarquardtMDMinimizer.h
+	inc/MantidCurveFitting/FuncMinimizers/LevenbergMarquardtMinimizer.h
+	inc/MantidCurveFitting/FuncMinimizers/PRConjugateGradientMinimizer.h
+	inc/MantidCurveFitting/FuncMinimizers/SimplexMinimizer.h
+	inc/MantidCurveFitting/FuncMinimizers/SteepestDescentMinimizer.h
 	inc/MantidCurveFitting/FunctionDomain1DSpectrumCreator.h
 	inc/MantidCurveFitting/GSLFunctions.h
 	inc/MantidCurveFitting/GSLJacobian.h
@@ -188,8 +193,6 @@ set ( INC_FILES
 	inc/MantidCurveFitting/LatticeFunction.h
 	inc/MantidCurveFitting/LeBailFit.h
 	inc/MantidCurveFitting/LeBailFunction.h
-	inc/MantidCurveFitting/FuncMinimizers/LevenbergMarquardtMDMinimizer.h
-	inc/MantidCurveFitting/FuncMinimizers/LevenbergMarquardtMinimizer.h
 	inc/MantidCurveFitting/LinearBackground.h
 	inc/MantidCurveFitting/LogNormal.h
 	inc/MantidCurveFitting/Lorentzian.h
@@ -199,7 +202,6 @@ set ( INC_FILES
 	inc/MantidCurveFitting/MuonFInteraction.h
 	inc/MantidCurveFitting/NeutronBk2BkExpConvPVoigt.h
 	inc/MantidCurveFitting/NormaliseByPeakArea.h
-	inc/MantidCurveFitting/FuncMinimizers/PRConjugateGradientMinimizer.h
 	inc/MantidCurveFitting/ParDomain.h
 	inc/MantidCurveFitting/ParameterEstimator.h
 	inc/MantidCurveFitting/PawleyFit.h
@@ -219,7 +221,6 @@ set ( INC_FILES
 	inc/MantidCurveFitting/SeqDomain.h
 	inc/MantidCurveFitting/SeqDomainSpectrumCreator.h
 	inc/MantidCurveFitting/SimpleChebfun.h
-	inc/MantidCurveFitting/FuncMinimizers/SimplexMinimizer.h
 	inc/MantidCurveFitting/SpecialFunctionSupport.h
 	inc/MantidCurveFitting/SplineBackground.h
 	inc/MantidCurveFitting/SplineInterpolation.h
@@ -227,7 +228,6 @@ set ( INC_FILES
 	inc/MantidCurveFitting/StaticKuboToyabe.h
 	inc/MantidCurveFitting/StaticKuboToyabeTimesExpDecay.h
 	inc/MantidCurveFitting/StaticKuboToyabeTimesGausDecay.h
-	inc/MantidCurveFitting/FuncMinimizers/SteepestDescentMinimizer.h
 	inc/MantidCurveFitting/StretchExp.h
 	inc/MantidCurveFitting/StretchExpMuon.h
 	inc/MantidCurveFitting/TabulatedFunction.h
@@ -248,7 +248,6 @@ set ( TEST_FILES
 	#SCDPanelErrorsTest.h
 	AbragamTest.h
 	AugmentedLagrangianOptimizerTest.h
-	FuncMinimizers/BFGSTest.h
 	BSplineTest.h
 	BackToBackExponentialTest.h
 	BivariateNormalTest.h
@@ -266,9 +265,8 @@ set ( TEST_FILES
 	ConvertToYSpaceTest.h
 	ConvolutionTest.h
 	ConvolveWorkspacesTest.h
-	CostFuncUnweightedLeastSquaresTest.h
+	CostFunctions/CostFuncUnweightedLeastSquaresTest.h
 	CubicSplineTest.h
-	FuncMinimizers/DampingMinimizerTest.h
 	DeltaFunctionTest.h
 	DiffRotDiscreteCircleTest.h
 	DiffSphereTest.h
@@ -279,13 +277,19 @@ set ( TEST_FILES
 	ExpDecayMuonTest.h
 	ExpDecayOscTest.h
 	ExpDecayTest.h
-	FuncMinimizers/FABADAMinimizerTest.h
-	FuncMinimizers/FRConjugateGradientTest.h
 	FitMWTest.h
 	FitPowderDiffPeaksTest.h
 	FitTest.h
 	FlatBackgroundTest.h
 	FullprofPolynomialTest.h
+	FuncMinimizers/BFGSTest.h
+	FuncMinimizers/DampingMinimizerTest.h
+	FuncMinimizers/FABADAMinimizerTest.h
+	FuncMinimizers/FRConjugateGradientTest.h
+	FuncMinimizers/LevenbergMarquardtMDTest.h
+	FuncMinimizers/LevenbergMarquardtTest.h
+	FuncMinimizers/PRConjugateGradientTest.h
+	FuncMinimizers/SimplexTest.h
 	FunctionDomain1DSpectrumCreatorTest.h
 	FunctionFactoryConstraintTest.h
 	FunctionParameterDecoratorFitTest.h
@@ -303,9 +307,7 @@ set ( TEST_FILES
 	LatticeFunctionTest.h
 	LeBailFitTest.h
 	LeBailFunctionTest.h
-	LeastSquaresTest.h
-	FuncMinimizers/LevenbergMarquardtMDTest.h
-	FuncMinimizers/LevenbergMarquardtTest.h
+	CostFunctions/LeastSquaresTest.h
 	LinearBackgroundTest.h
 	LogNormalTest.h
 	Lorentzian1DTest.h
@@ -315,7 +317,6 @@ set ( TEST_FILES
 	MuonFInteractionTest.h
 	NeutronBk2BkExpConvPVoigtTest.h
 	NormaliseByPeakAreaTest.h
-	FuncMinimizers/PRConjugateGradientTest.h
 	ParameterEstimatorTest.h
 	PawleyFitTest.h
 	PawleyFunctionTest.h
@@ -333,7 +334,6 @@ set ( TEST_FILES
 	ResolutionTest.h
 	SeqDomainSpectrumCreatorTest.h
 	SimpleChebfunTest.h
-	FuncMinimizers/SimplexTest.h
 	SpecialFunctionSupportTest.h
 	SplineBackgroundTest.h
 	SplineInterpolationTest.h
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/CostFuncFitting.h b/Framework/CurveFitting/inc/MantidCurveFitting/CostFunctions/CostFuncFitting.h
similarity index 100%
rename from Framework/CurveFitting/inc/MantidCurveFitting/CostFuncFitting.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/CostFunctions/CostFuncFitting.h
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/CostFuncIgnorePosPeaks.h b/Framework/CurveFitting/inc/MantidCurveFitting/CostFunctions/CostFuncIgnorePosPeaks.h
similarity index 100%
rename from Framework/CurveFitting/inc/MantidCurveFitting/CostFuncIgnorePosPeaks.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/CostFunctions/CostFuncIgnorePosPeaks.h
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/CostFuncLeastSquares.h b/Framework/CurveFitting/inc/MantidCurveFitting/CostFunctions/CostFuncLeastSquares.h
similarity index 98%
rename from Framework/CurveFitting/inc/MantidCurveFitting/CostFuncLeastSquares.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/CostFunctions/CostFuncLeastSquares.h
index be05dae8779b0db76f5cd7ba9060ae7850cb4e99..4d3fa4cbca5f68bf5d85d9d8d4dfb70e27f5286a 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/CostFuncLeastSquares.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/CostFunctions/CostFuncLeastSquares.h
@@ -4,7 +4,7 @@
 //----------------------------------------------------------------------
 // Includes
 //----------------------------------------------------------------------
-#include "MantidCurveFitting/CostFuncFitting.h"
+#include "MantidCurveFitting/CostFunctions/CostFuncFitting.h"
 #include "MantidCurveFitting/GSLMatrix.h"
 #include "MantidCurveFitting/GSLVector.h"
 
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/CostFuncRwp.h b/Framework/CurveFitting/inc/MantidCurveFitting/CostFunctions/CostFuncRwp.h
similarity index 97%
rename from Framework/CurveFitting/inc/MantidCurveFitting/CostFuncRwp.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/CostFunctions/CostFuncRwp.h
index a58da7c674ccf477b2ff508921c8a133308e392d..7b3b79232aebbfe2d19f8e4cf7e1d4200c466d6f 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/CostFuncRwp.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/CostFunctions/CostFuncRwp.h
@@ -4,7 +4,7 @@
 //----------------------------------------------------------------------
 // Includes
 //----------------------------------------------------------------------
-#include "MantidCurveFitting/CostFuncLeastSquares.h"
+#include "MantidCurveFitting/CostFunctions/CostFuncLeastSquares.h"
 #include "MantidCurveFitting/GSLMatrix.h"
 #include "MantidCurveFitting/GSLVector.h"
 
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/CostFuncUnweightedLeastSquares.h b/Framework/CurveFitting/inc/MantidCurveFitting/CostFunctions/CostFuncUnweightedLeastSquares.h
similarity index 96%
rename from Framework/CurveFitting/inc/MantidCurveFitting/CostFuncUnweightedLeastSquares.h
rename to Framework/CurveFitting/inc/MantidCurveFitting/CostFunctions/CostFuncUnweightedLeastSquares.h
index 17fc016bb426d6e2c37c534c89f796124d3bb7a5..1986b4f1d64099f23b5dc5e34118521611d4f847 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/CostFuncUnweightedLeastSquares.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/CostFunctions/CostFuncUnweightedLeastSquares.h
@@ -2,7 +2,7 @@
 #define MANTID_CURVEFITTING_COSTFUNCUNWEIGHTEDLEASTSQUARES_H_
 
 #include "MantidKernel/System.h"
-#include "MantidCurveFitting/CostFuncLeastSquares.h"
+#include "MantidCurveFitting/CostFunctions/CostFuncLeastSquares.h"
 
 namespace Mantid {
 namespace CurveFitting {
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/GSLFunctions.h b/Framework/CurveFitting/inc/MantidCurveFitting/GSLFunctions.h
index 259599a19010f6dc76c6e803aef871e5763c01d4..f012e046e2f3f9b46d1004b0e3fff4dbb8dd0c12 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/GSLFunctions.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/GSLFunctions.h
@@ -7,7 +7,7 @@
 #include <gsl/gsl_blas.h>
 #include "MantidAPI/IFunction.h"
 #include "MantidAPI/ICostFunction.h"
-#include "MantidCurveFitting/CostFuncLeastSquares.h"
+#include "MantidCurveFitting/CostFunctions/CostFuncLeastSquares.h"
 
 namespace Mantid {
 namespace CurveFitting {
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/SeqDomain.h b/Framework/CurveFitting/inc/MantidCurveFitting/SeqDomain.h
index 5e451efdf3324c3b6d47fd4e9a35f32f9550336f..26dd3d232bb2c03b69e8beca5e684cfb4d2f4d4f 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/SeqDomain.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/SeqDomain.h
@@ -8,8 +8,8 @@
 #include "MantidAPI/FunctionDomain.h"
 #include "MantidAPI/FunctionValues.h"
 #include "MantidAPI/IDomainCreator.h"
-#include "MantidCurveFitting/CostFuncLeastSquares.h"
-#include "MantidCurveFitting/CostFuncRwp.h"
+#include "MantidCurveFitting/CostFunctions/CostFuncLeastSquares.h"
+#include "MantidCurveFitting/CostFunctions/CostFuncRwp.h"
 
 #include <stdexcept>
 #include <vector>
diff --git a/Framework/CurveFitting/src/CostFuncFitting.cpp b/Framework/CurveFitting/src/CostFunctions/CostFuncFitting.cpp
similarity index 98%
rename from Framework/CurveFitting/src/CostFuncFitting.cpp
rename to Framework/CurveFitting/src/CostFunctions/CostFuncFitting.cpp
index 425bdcce324e7fcf858aa95d24c5aa0bd21f2b8f..3b5edf48e56cb4a268cbb909d471ff62aa55eaeb 100644
--- a/Framework/CurveFitting/src/CostFuncFitting.cpp
+++ b/Framework/CurveFitting/src/CostFunctions/CostFuncFitting.cpp
@@ -1,7 +1,7 @@
 //----------------------------------------------------------------------
 // Includes
 //----------------------------------------------------------------------
-#include "MantidCurveFitting/CostFuncFitting.h"
+#include "MantidCurveFitting/CostFunctions/CostFuncFitting.h"
 #include "MantidCurveFitting/GSLJacobian.h"
 #include "MantidAPI/IConstraint.h"
 
diff --git a/Framework/CurveFitting/src/CostFuncIgnorePosPeaks.cpp b/Framework/CurveFitting/src/CostFunctions/CostFuncIgnorePosPeaks.cpp
similarity index 97%
rename from Framework/CurveFitting/src/CostFuncIgnorePosPeaks.cpp
rename to Framework/CurveFitting/src/CostFunctions/CostFuncIgnorePosPeaks.cpp
index 6e6b404b1b2fd4fb680e0cf6c92e0babd2f2617f..7d073a7ca337c867bd37a9b187a404f15f3c57eb 100644
--- a/Framework/CurveFitting/src/CostFuncIgnorePosPeaks.cpp
+++ b/Framework/CurveFitting/src/CostFunctions/CostFuncIgnorePosPeaks.cpp
@@ -1,7 +1,7 @@
 //----------------------------------------------------------------------
 // Includes
 //----------------------------------------------------------------------
-#include "MantidCurveFitting/CostFuncIgnorePosPeaks.h"
+#include "MantidCurveFitting/CostFunctions/CostFuncIgnorePosPeaks.h"
 #include "MantidKernel/PhysicalConstants.h"
 #include <cmath>
 #include <gsl/gsl_sf_erf.h>
diff --git a/Framework/CurveFitting/src/CostFuncLeastSquares.cpp b/Framework/CurveFitting/src/CostFunctions/CostFuncLeastSquares.cpp
similarity index 99%
rename from Framework/CurveFitting/src/CostFuncLeastSquares.cpp
rename to Framework/CurveFitting/src/CostFunctions/CostFuncLeastSquares.cpp
index e1fa52338bf531753909c036c1de96881be22f2f..b0dcf06a1d8cefaef94f68467f835ac9df4088a4 100644
--- a/Framework/CurveFitting/src/CostFuncLeastSquares.cpp
+++ b/Framework/CurveFitting/src/CostFunctions/CostFuncLeastSquares.cpp
@@ -1,7 +1,7 @@
 //----------------------------------------------------------------------
 // Includes
 //----------------------------------------------------------------------
-#include "MantidCurveFitting/CostFuncLeastSquares.h"
+#include "MantidCurveFitting/CostFunctions/CostFuncLeastSquares.h"
 #include "MantidCurveFitting/Jacobian.h"
 #include "MantidCurveFitting/SeqDomain.h"
 #include "MantidAPI/IConstraint.h"
diff --git a/Framework/CurveFitting/src/CostFuncRwp.cpp b/Framework/CurveFitting/src/CostFunctions/CostFuncRwp.cpp
similarity index 97%
rename from Framework/CurveFitting/src/CostFuncRwp.cpp
rename to Framework/CurveFitting/src/CostFunctions/CostFuncRwp.cpp
index c72d9d3d4a1487df71590914057100a46c4c9eab..1878ca91006f973374240ebe495a32b509577bc6 100644
--- a/Framework/CurveFitting/src/CostFuncRwp.cpp
+++ b/Framework/CurveFitting/src/CostFunctions/CostFuncRwp.cpp
@@ -1,7 +1,7 @@
 //----------------------------------------------------------------------
 // Includes
 //----------------------------------------------------------------------
-#include "MantidCurveFitting/CostFuncRwp.h"
+#include "MantidCurveFitting/CostFunctions/CostFuncRwp.h"
 #include "MantidCurveFitting/Jacobian.h"
 #include "MantidCurveFitting/SeqDomain.h"
 #include "MantidAPI/IConstraint.h"
diff --git a/Framework/CurveFitting/src/CostFuncUnweightedLeastSquares.cpp b/Framework/CurveFitting/src/CostFunctions/CostFuncUnweightedLeastSquares.cpp
similarity index 97%
rename from Framework/CurveFitting/src/CostFuncUnweightedLeastSquares.cpp
rename to Framework/CurveFitting/src/CostFunctions/CostFuncUnweightedLeastSquares.cpp
index da4e2bd1170ff07e4dba224179e1d2a8e33d58b8..4166bb5fa45c62fb7ed873850eef511d7f1bef50 100644
--- a/Framework/CurveFitting/src/CostFuncUnweightedLeastSquares.cpp
+++ b/Framework/CurveFitting/src/CostFunctions/CostFuncUnweightedLeastSquares.cpp
@@ -1,4 +1,4 @@
-#include "MantidCurveFitting/CostFuncUnweightedLeastSquares.h"
+#include "MantidCurveFitting/CostFunctions/CostFuncUnweightedLeastSquares.h"
 
 #include "MantidKernel/Logger.h"
 #include <iomanip>
diff --git a/Framework/CurveFitting/src/FuncMinimizers/LevenbergMarquardtMinimizer.cpp b/Framework/CurveFitting/src/FuncMinimizers/LevenbergMarquardtMinimizer.cpp
index e19ad6d29a6e2beae133f0eb703448f657ae50a5..4d43e806c7ecfeb9d85eee08af0044bddac4b1df 100644
--- a/Framework/CurveFitting/src/FuncMinimizers/LevenbergMarquardtMinimizer.cpp
+++ b/Framework/CurveFitting/src/FuncMinimizers/LevenbergMarquardtMinimizer.cpp
@@ -2,7 +2,7 @@
 // Includes
 //----------------------------------------------------------------------
 #include "MantidCurveFitting/FuncMinimizers/LevenbergMarquardtMinimizer.h"
-#include "MantidCurveFitting/CostFuncLeastSquares.h"
+#include "MantidCurveFitting/CostFunctions/CostFuncLeastSquares.h"
 
 #include "MantidAPI/CostFunctionFactory.h"
 #include "MantidAPI/FuncMinimizerFactory.h"
diff --git a/Framework/CurveFitting/test/BSplineTest.h b/Framework/CurveFitting/test/BSplineTest.h
index d8f271541376caef15a04f22ca33217949eeec50..9558664c50d6bef03d7b4bdb256370857b46f7b2 100644
--- a/Framework/CurveFitting/test/BSplineTest.h
+++ b/Framework/CurveFitting/test/BSplineTest.h
@@ -4,7 +4,7 @@
 #include "MantidCurveFitting/BSpline.h"
 #include "MantidCurveFitting/UserFunction.h"
 #include "MantidCurveFitting/FuncMinimizers/LevenbergMarquardtMDMinimizer.h"
-#include "MantidCurveFitting/CostFuncLeastSquares.h"
+#include "MantidCurveFitting/CostFunctions/CostFuncLeastSquares.h"
 #include "MantidAPI/FunctionDomain1D.h"
 #include "MantidAPI/FunctionValues.h"
 #include "MantidAPI/FunctionFactory.h"
diff --git a/Framework/CurveFitting/test/CostFuncUnweightedLeastSquaresTest.h b/Framework/CurveFitting/test/CostFunctions/CostFuncUnweightedLeastSquaresTest.h
similarity index 97%
rename from Framework/CurveFitting/test/CostFuncUnweightedLeastSquaresTest.h
rename to Framework/CurveFitting/test/CostFunctions/CostFuncUnweightedLeastSquaresTest.h
index 7604eac76910549eb1946377693e565aed930d03..9af27bd25c6fd1dac1f25f13fecb3df3b09f8065 100644
--- a/Framework/CurveFitting/test/CostFuncUnweightedLeastSquaresTest.h
+++ b/Framework/CurveFitting/test/CostFunctions/CostFuncUnweightedLeastSquaresTest.h
@@ -5,7 +5,7 @@
 #include "MantidAPI/FunctionDomain1D.h"
 #include "MantidAPI/FunctionFactory.h"
 
-#include "MantidCurveFitting/CostFuncUnweightedLeastSquares.h"
+#include "MantidCurveFitting/CostFunctions/CostFuncUnweightedLeastSquares.h"
 
 #include <boost/make_shared.hpp>
 
diff --git a/Framework/CurveFitting/test/LeastSquaresTest.h b/Framework/CurveFitting/test/CostFunctions/LeastSquaresTest.h
similarity index 98%
rename from Framework/CurveFitting/test/LeastSquaresTest.h
rename to Framework/CurveFitting/test/CostFunctions/LeastSquaresTest.h
index a14f1e591c606f7f2935e33e97fcf454d5b47814..db3b9067e419dbb4831e0c6f77834237dc61250b 100644
--- a/Framework/CurveFitting/test/LeastSquaresTest.h
+++ b/Framework/CurveFitting/test/CostFunctions/LeastSquaresTest.h
@@ -3,8 +3,8 @@
 
 #include <cxxtest/TestSuite.h>
 
-#include "MantidCurveFitting/CostFuncLeastSquares.h"
-#include "MantidCurveFitting/CostFuncRwp.h"
+#include "MantidCurveFitting/CostFunctions/CostFuncLeastSquares.h"
+#include "MantidCurveFitting/CostFunctions/CostFuncRwp.h"
 #include "MantidCurveFitting/FuncMinimizers/SimplexMinimizer.h"
 #include "MantidCurveFitting/FuncMinimizers/BFGS_Minimizer.h"
 #include "MantidCurveFitting/FuncMinimizers/LevenbergMarquardtMDMinimizer.h"
diff --git a/Framework/CurveFitting/test/FuncMinimizers/DampingMinimizerTest.h b/Framework/CurveFitting/test/FuncMinimizers/DampingMinimizerTest.h
index 070031d0f6cb6957fd3fc7d8ba2ae48d2219415b..8bfc1e4edb60ca2a6af5962ff526a7620d3148a4 100644
--- a/Framework/CurveFitting/test/FuncMinimizers/DampingMinimizerTest.h
+++ b/Framework/CurveFitting/test/FuncMinimizers/DampingMinimizerTest.h
@@ -3,7 +3,7 @@
 
 #include <cxxtest/TestSuite.h>
 
-#include "MantidCurveFitting/CostFuncLeastSquares.h"
+#include "MantidCurveFitting/CostFunctions/CostFuncLeastSquares.h"
 #include "MantidCurveFitting/FuncMinimizers/DampingMinimizer.h"
 #include "MantidCurveFitting/UserFunction.h"
 #include "MantidAPI/FunctionDomain1D.h"
diff --git a/Framework/CurveFitting/test/FuncMinimizers/LevenbergMarquardtMDTest.h b/Framework/CurveFitting/test/FuncMinimizers/LevenbergMarquardtMDTest.h
index 7ded8b10d3fe6906ac3681de3cb56c042396b5ea..efb19202d293fbf7653c295425b09186695c6192 100644
--- a/Framework/CurveFitting/test/FuncMinimizers/LevenbergMarquardtMDTest.h
+++ b/Framework/CurveFitting/test/FuncMinimizers/LevenbergMarquardtMDTest.h
@@ -3,7 +3,7 @@
 
 #include <cxxtest/TestSuite.h>
 
-#include "MantidCurveFitting/CostFuncLeastSquares.h"
+#include "MantidCurveFitting/CostFunctions/CostFuncLeastSquares.h"
 #include "MantidCurveFitting/FuncMinimizers/LevenbergMarquardtMDMinimizer.h"
 #include "MantidCurveFitting/UserFunction.h"
 #include "MantidAPI/FunctionDomain1D.h"
diff --git a/Framework/CurveFitting/test/FuncMinimizers/LevenbergMarquardtTest.h b/Framework/CurveFitting/test/FuncMinimizers/LevenbergMarquardtTest.h
index 322868c5e2389fa45a1cd2ba60891d86f3144d34..b270a643d3faceca44ce95652798c0bed121b21d 100644
--- a/Framework/CurveFitting/test/FuncMinimizers/LevenbergMarquardtTest.h
+++ b/Framework/CurveFitting/test/FuncMinimizers/LevenbergMarquardtTest.h
@@ -3,7 +3,7 @@
 
 #include <cxxtest/TestSuite.h>
 
-#include "MantidCurveFitting/CostFuncLeastSquares.h"
+#include "MantidCurveFitting/CostFunctions/CostFuncLeastSquares.h"
 #include "MantidCurveFitting/FuncMinimizers/LevenbergMarquardtMinimizer.h"
 #include "MantidCurveFitting/UserFunction.h"
 #include "MantidAPI/FunctionDomain1D.h"
diff --git a/Framework/CurveFitting/test/GaussianTest.h b/Framework/CurveFitting/test/GaussianTest.h
index 1b59b3a3322ea8d808792c06824b4b39388101fd..275a955824cf4f6944749a04929f4932cb17e760 100644
--- a/Framework/CurveFitting/test/GaussianTest.h
+++ b/Framework/CurveFitting/test/GaussianTest.h
@@ -25,7 +25,7 @@
 #include "MantidAPI/FunctionValues.h"
 #include "MantidCurveFitting/FuncMinimizers/LevenbergMarquardtMDMinimizer.h"
 #include "MantidCurveFitting/UserFunction.h"
-#include "MantidCurveFitting/CostFuncLeastSquares.h"
+#include "MantidCurveFitting/CostFunctions/CostFuncLeastSquares.h"
 
 using namespace Mantid;
 using namespace Mantid::Kernel;