diff --git a/tests/test_project.xcodeproj/project.pbxproj b/tests/test_project.xcodeproj/project.pbxproj
index 65134dac41d22290a42afa9284e5ed3d94fc1865..884973bc126d64d6be79520e8d33bf8f8f1c4802 100644
--- a/tests/test_project.xcodeproj/project.pbxproj
+++ b/tests/test_project.xcodeproj/project.pbxproj
@@ -8,24 +8,6 @@
 
 /* Begin PBXBuildFile section */
 		311BA2A61EDC6A8900244DAC /* test_rapidXmmTools.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5EE21ED8480D00E9FAFA /* test_rapidXmmTools.cpp */; };
-		311BA2AB1EDC6ADB00244DAC /* rapidXmmTools.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2A91EDC6ADB00244DAC /* rapidXmmTools.cpp */; };
-		311BA2AF1EDC6AED00244DAC /* rapidPiPoHost.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2AC1EDC6AED00244DAC /* rapidPiPoHost.cpp */; };
-		311BA2BB1EDC6C7E00244DAC /* PiPoCollection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2B61EDC6C7E00244DAC /* PiPoCollection.cpp */; };
-		311BA2CB1EDC6EC100244DAC /* xmmKMeans.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2C61EDC6EC100244DAC /* xmmKMeans.cpp */; };
-		311BA2CC1EDC6EC100244DAC /* xmmKMeansParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2C81EDC6EC100244DAC /* xmmKMeansParameters.cpp */; };
-		311BA2D41EDC6ECE00244DAC /* xmmHierarchicalHmm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2CD1EDC6ECE00244DAC /* xmmHierarchicalHmm.cpp */; };
-		311BA2D51EDC6ECE00244DAC /* xmmHmmParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2CF1EDC6ECE00244DAC /* xmmHmmParameters.cpp */; };
-		311BA2D61EDC6ECE00244DAC /* xmmHmmSingleClass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2D21EDC6ECE00244DAC /* xmmHmmSingleClass.cpp */; };
-		311BA2DD1EDC6EDB00244DAC /* xmmGmm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2D71EDC6EDB00244DAC /* xmmGmm.cpp */; };
-		311BA2DE1EDC6EDB00244DAC /* xmmGmmParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2D91EDC6EDB00244DAC /* xmmGmmParameters.cpp */; };
-		311BA2DF1EDC6EDB00244DAC /* xmmGmmSingleClass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2DB1EDC6EDB00244DAC /* xmmGmmSingleClass.cpp */; };
-		311BA2E41EDC6EEA00244DAC /* xmmPhrase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2E01EDC6EEA00244DAC /* xmmPhrase.cpp */; };
-		311BA2E51EDC6EEA00244DAC /* xmmTrainingSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2E21EDC6EEA00244DAC /* xmmTrainingSet.cpp */; };
-		311BA2EE1EDC6EF800244DAC /* xmmModelSharedParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2EA1EDC6EF800244DAC /* xmmModelSharedParameters.cpp */; };
-		311BA2EF1EDC6EF800244DAC /* xmmModelSingleClass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2EC1EDC6EF800244DAC /* xmmModelSingleClass.cpp */; };
-		311BA2F21EDC6F0400244DAC /* xmmGaussianDistribution.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2F01EDC6F0400244DAC /* xmmGaussianDistribution.cpp */; };
-		311BA2FA1EDC6F0F00244DAC /* xmmAttribute.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2F31EDC6F0F00244DAC /* xmmAttribute.cpp */; };
-		311BA2FB1EDC6F0F00244DAC /* xmmJson.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2F71EDC6F0F00244DAC /* xmmJson.cpp */; };
 		311BA2FD1EDC6F9F00244DAC /* rapidXmmTools.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2A91EDC6ADB00244DAC /* rapidXmmTools.cpp */; };
 		311BA2FE1EDC6FD000244DAC /* xmmKMeans.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2C61EDC6EC100244DAC /* xmmKMeans.cpp */; };
 		311BA2FF1EDC6FD000244DAC /* xmmKMeansParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2C81EDC6EC100244DAC /* xmmKMeansParameters.cpp */; };
@@ -55,44 +37,16 @@
 		311BA3211EDC7B2400244DAC /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 311BA3201EDC7B2400244DAC /* Accelerate.framework */; };
 		311BA3241EDC7BA800244DAC /* DnB-loop-175BPM.wav in CopyFiles */ = {isa = PBXBuildFile; fileRef = 311BA3231EDC7BA400244DAC /* DnB-loop-175BPM.wav */; };
 		311BA3251EDCE80B00244DAC /* jsoncpp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5E081ED8450E00E9FAFA /* jsoncpp.cpp */; };
-		BE2C5E941ED8450E00E9FAFA /* classification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5DEA1ED8450E00E9FAFA /* classification.cpp */; };
-		BE2C5E951ED8450E00E9FAFA /* knnClassification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5DF31ED8450E00E9FAFA /* knnClassification.cpp */; };
-		BE2C5E961ED8450E00E9FAFA /* modelSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5DF51ED8450E00E9FAFA /* modelSet.cpp */; };
-		BE2C5E971ED8450E00E9FAFA /* neuralNetwork.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5DF71ED8450E00E9FAFA /* neuralNetwork.cpp */; };
-		BE2C5E981ED8450E00E9FAFA /* regression.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5DF91ED8450E00E9FAFA /* regression.cpp */; };
-		BE2C5E991ED8450E00E9FAFA /* jsoncpp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5E081ED8450E00E9FAFA /* jsoncpp.cpp */; };
-		BE2C5EC81ED8459300E9FAFA /* machineLearning.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5EBE1ED8459300E9FAFA /* machineLearning.cpp */; };
-		BE2C5EC91ED8459300E9FAFA /* trainingData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5EC01ED8459300E9FAFA /* trainingData.cpp */; };
-		BE2C5ECA1ED8459300E9FAFA /* rapidStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5EC51ED8459300E9FAFA /* rapidStream.cpp */; };
-		BE2C5EE81ED8480D00E9FAFA /* test_RapidLib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5EDF1ED8480D00E9FAFA /* test_RapidLib.cpp */; };
-		BE2C5EEF1ED849AA00E9FAFA /* svm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5EED1ED849AA00E9FAFA /* svm.cpp */; };
-		BE2C5F121EDD74BC00E9FAFA /* libsvm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F0F1EDD74BC00E9FAFA /* libsvm.cpp */; };
-		BE2C5F571EDD74FC00E9FAFA /* BayesianFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F151EDD74FC00E9FAFA /* BayesianFilter.cpp */; };
-		BE2C5F581EDD74FC00E9FAFA /* filter_utilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F171EDD74FC00E9FAFA /* filter_utilities.cpp */; };
-		BE2C5F591EDD74FC00E9FAFA /* finitedifferences.c in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F1A1EDD74FC00E9FAFA /* finitedifferences.c */; };
-		BE2C5F5A1EDD74FC00E9FAFA /* bbpr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F1D1EDD74FC00E9FAFA /* bbpr.cpp */; };
-		BE2C5F5B1EDD74FC00E9FAFA /* rpoly.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F1F1EDD74FC00E9FAFA /* rpoly.cpp */; };
-		BE2C5F5C1EDD74FC00E9FAFA /* rta_bpf.c in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F241EDD74FC00E9FAFA /* rta_bpf.c */; };
-		BE2C5F5D1EDD74FC00E9FAFA /* rta_int.c in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F281EDD74FC00E9FAFA /* rta_int.c */; };
-		BE2C5F5E1EDD74FC00E9FAFA /* rta_util.c in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F2E1EDD74FC00E9FAFA /* rta_util.c */; };
-		BE2C5F5F1EDD74FC00E9FAFA /* rta_bands.c in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F311EDD74FC00E9FAFA /* rta_bands.c */; };
-		BE2C5F601EDD74FC00E9FAFA /* rta_biquad.c in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F331EDD74FC00E9FAFA /* rta_biquad.c */; };
-		BE2C5F611EDD74FC00E9FAFA /* rta_correlation.c in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F351EDD74FC00E9FAFA /* rta_correlation.c */; };
-		BE2C5F621EDD74FC00E9FAFA /* rta_cubic.c in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F371EDD74FC00E9FAFA /* rta_cubic.c */; };
-		BE2C5F631EDD74FC00E9FAFA /* rta_dct.c in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F391EDD74FC00E9FAFA /* rta_dct.c */; };
-		BE2C5F641EDD74FC00E9FAFA /* rta_delta.c in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F3B1EDD74FC00E9FAFA /* rta_delta.c */; };
-		BE2C5F651EDD74FC00E9FAFA /* rta_fft.c in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F3D1EDD74FC00E9FAFA /* rta_fft.c */; };
-		BE2C5F661EDD74FC00E9FAFA /* rta_lifter.c in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F401EDD74FC00E9FAFA /* rta_lifter.c */; };
-		BE2C5F671EDD74FC00E9FAFA /* rta_lpc.c in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F421EDD74FC00E9FAFA /* rta_lpc.c */; };
-		BE2C5F681EDD74FC00E9FAFA /* rta_mean_variance.c in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F441EDD74FC00E9FAFA /* rta_mean_variance.c */; };
-		BE2C5F691EDD74FC00E9FAFA /* rta_mel.c in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F461EDD74FC00E9FAFA /* rta_mel.c */; };
-		BE2C5F6A1EDD74FC00E9FAFA /* rta_moments.c in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F481EDD74FC00E9FAFA /* rta_moments.c */; };
-		BE2C5F6B1EDD74FC00E9FAFA /* rta_onepole.c in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F4A1EDD74FC00E9FAFA /* rta_onepole.c */; };
-		BE2C5F6C1EDD74FC00E9FAFA /* rta_preemphasis.c in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F4C1EDD74FC00E9FAFA /* rta_preemphasis.c */; };
-		BE2C5F6D1EDD74FC00E9FAFA /* rta_resample.c in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F4E1EDD74FC00E9FAFA /* rta_resample.c */; };
-		BE2C5F6E1EDD74FC00E9FAFA /* rta_selection.c in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F501EDD74FC00E9FAFA /* rta_selection.c */; };
-		BE2C5F6F1EDD74FC00E9FAFA /* rta_svd.c in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F521EDD74FC00E9FAFA /* rta_svd.c */; };
-		BE2C5F701EDD74FC00E9FAFA /* rta_window.c in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5F541EDD74FC00E9FAFA /* rta_window.c */; };
+		BEA7B70F1EDD7B350003E84B /* machineLearning.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5EBE1ED8459300E9FAFA /* machineLearning.cpp */; };
+		BEA7B7101EDD7B390003E84B /* trainingData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5EC01ED8459300E9FAFA /* trainingData.cpp */; };
+		BEA7B7111EDD7B640003E84B /* svm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5EED1ED849AA00E9FAFA /* svm.cpp */; };
+		BEA7B7121EDD7B660003E84B /* classification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5DEA1ED8450E00E9FAFA /* classification.cpp */; };
+		BEA7B7131EDD7B690003E84B /* knnClassification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5DF31ED8450E00E9FAFA /* knnClassification.cpp */; };
+		BEA7B7141EDD7B6B0003E84B /* modelSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5DF51ED8450E00E9FAFA /* modelSet.cpp */; };
+		BEA7B7151EDD7B6E0003E84B /* neuralNetwork.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5DF71ED8450E00E9FAFA /* neuralNetwork.cpp */; };
+		BEA7B7161EDD7B700003E84B /* regression.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5DF91ED8450E00E9FAFA /* regression.cpp */; };
+		BEA7B7171EDD7B7E0003E84B /* jsoncpp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5E081ED8450E00E9FAFA /* jsoncpp.cpp */; };
+		BEA7B7181EDD7C0E0003E84B /* test_RapidLib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5EDF1ED8480D00E9FAFA /* test_RapidLib.cpp */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXCopyFilesBuildPhase section */
@@ -1130,62 +1084,16 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				BE2C5F6F1EDD74FC00E9FAFA /* rta_svd.c in Sources */,
-				BE2C5EC81ED8459300E9FAFA /* machineLearning.cpp in Sources */,
-				311BA2AF1EDC6AED00244DAC /* rapidPiPoHost.cpp in Sources */,
-				311BA2DD1EDC6EDB00244DAC /* xmmGmm.cpp in Sources */,
-				311BA2AB1EDC6ADB00244DAC /* rapidXmmTools.cpp in Sources */,
-				BE2C5F621EDD74FC00E9FAFA /* rta_cubic.c in Sources */,
-				311BA2E41EDC6EEA00244DAC /* xmmPhrase.cpp in Sources */,
-				311BA2F21EDC6F0400244DAC /* xmmGaussianDistribution.cpp in Sources */,
-				BE2C5F581EDD74FC00E9FAFA /* filter_utilities.cpp in Sources */,
-				311BA2D61EDC6ECE00244DAC /* xmmHmmSingleClass.cpp in Sources */,
-				311BA2CB1EDC6EC100244DAC /* xmmKMeans.cpp in Sources */,
-				BE2C5F601EDD74FC00E9FAFA /* rta_biquad.c in Sources */,
-				BE2C5F571EDD74FC00E9FAFA /* BayesianFilter.cpp in Sources */,
-				BE2C5F641EDD74FC00E9FAFA /* rta_delta.c in Sources */,
-				311BA2BB1EDC6C7E00244DAC /* PiPoCollection.cpp in Sources */,
-				311BA2D41EDC6ECE00244DAC /* xmmHierarchicalHmm.cpp in Sources */,
-				BE2C5F5C1EDD74FC00E9FAFA /* rta_bpf.c in Sources */,
-				BE2C5F5E1EDD74FC00E9FAFA /* rta_util.c in Sources */,
-				BE2C5F6C1EDD74FC00E9FAFA /* rta_preemphasis.c in Sources */,
-				BE2C5F671EDD74FC00E9FAFA /* rta_lpc.c in Sources */,
-				BE2C5EC91ED8459300E9FAFA /* trainingData.cpp in Sources */,
-				BE2C5F691EDD74FC00E9FAFA /* rta_mel.c in Sources */,
-				BE2C5F681EDD74FC00E9FAFA /* rta_mean_variance.c in Sources */,
-				311BA2FA1EDC6F0F00244DAC /* xmmAttribute.cpp in Sources */,
-				311BA2D51EDC6ECE00244DAC /* xmmHmmParameters.cpp in Sources */,
-				BE2C5E981ED8450E00E9FAFA /* regression.cpp in Sources */,
-				BE2C5EE81ED8480D00E9FAFA /* test_RapidLib.cpp in Sources */,
-				BE2C5E991ED8450E00E9FAFA /* jsoncpp.cpp in Sources */,
-				BE2C5F5B1EDD74FC00E9FAFA /* rpoly.cpp in Sources */,
-				BE2C5F6E1EDD74FC00E9FAFA /* rta_selection.c in Sources */,
-				BE2C5F121EDD74BC00E9FAFA /* libsvm.cpp in Sources */,
-				BE2C5F5F1EDD74FC00E9FAFA /* rta_bands.c in Sources */,
-				BE2C5F6B1EDD74FC00E9FAFA /* rta_onepole.c in Sources */,
-				BE2C5ECA1ED8459300E9FAFA /* rapidStream.cpp in Sources */,
-				311BA2EE1EDC6EF800244DAC /* xmmModelSharedParameters.cpp in Sources */,
-				BE2C5F631EDD74FC00E9FAFA /* rta_dct.c in Sources */,
-				BE2C5E941ED8450E00E9FAFA /* classification.cpp in Sources */,
-				BE2C5E961ED8450E00E9FAFA /* modelSet.cpp in Sources */,
-				BE2C5EEF1ED849AA00E9FAFA /* svm.cpp in Sources */,
-				311BA2DF1EDC6EDB00244DAC /* xmmGmmSingleClass.cpp in Sources */,
-				BE2C5F661EDD74FC00E9FAFA /* rta_lifter.c in Sources */,
-				311BA2CC1EDC6EC100244DAC /* xmmKMeansParameters.cpp in Sources */,
-				BE2C5E971ED8450E00E9FAFA /* neuralNetwork.cpp in Sources */,
-				BE2C5F701EDD74FC00E9FAFA /* rta_window.c in Sources */,
-				311BA2E51EDC6EEA00244DAC /* xmmTrainingSet.cpp in Sources */,
-				BE2C5F5D1EDD74FC00E9FAFA /* rta_int.c in Sources */,
-				BE2C5F6A1EDD74FC00E9FAFA /* rta_moments.c in Sources */,
-				311BA2FB1EDC6F0F00244DAC /* xmmJson.cpp in Sources */,
-				311BA2DE1EDC6EDB00244DAC /* xmmGmmParameters.cpp in Sources */,
-				BE2C5F651EDD74FC00E9FAFA /* rta_fft.c in Sources */,
-				BE2C5E951ED8450E00E9FAFA /* knnClassification.cpp in Sources */,
-				BE2C5F5A1EDD74FC00E9FAFA /* bbpr.cpp in Sources */,
-				BE2C5F591EDD74FC00E9FAFA /* finitedifferences.c in Sources */,
-				BE2C5F6D1EDD74FC00E9FAFA /* rta_resample.c in Sources */,
-				311BA2EF1EDC6EF800244DAC /* xmmModelSingleClass.cpp in Sources */,
-				BE2C5F611EDD74FC00E9FAFA /* rta_correlation.c in Sources */,
+				BEA7B7181EDD7C0E0003E84B /* test_RapidLib.cpp in Sources */,
+				BEA7B7161EDD7B700003E84B /* regression.cpp in Sources */,
+				BEA7B7151EDD7B6E0003E84B /* neuralNetwork.cpp in Sources */,
+				BEA7B7141EDD7B6B0003E84B /* modelSet.cpp in Sources */,
+				BEA7B7131EDD7B690003E84B /* knnClassification.cpp in Sources */,
+				BEA7B7121EDD7B660003E84B /* classification.cpp in Sources */,
+				BEA7B70F1EDD7B350003E84B /* machineLearning.cpp in Sources */,
+				BEA7B7101EDD7B390003E84B /* trainingData.cpp in Sources */,
+				BEA7B7111EDD7B640003E84B /* svm.cpp in Sources */,
+				BEA7B7171EDD7B7E0003E84B /* jsoncpp.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};