diff --git a/src/methods/approx_kfn/approx_kfn.pl b/src/methods/approx_kfn/approx_kfn.pl
index e426b096e133e6f5bbddcb5798e24597c97586a6..78bbf176ffc5f2d18ee4550f1c96581577d3cf89 100644
--- a/src/methods/approx_kfn/approx_kfn.pl
+++ b/src/methods/approx_kfn/approx_kfn.pl
@@ -31,7 +31,7 @@
 %% --Output--
 %%
 %% --Description--
-%%              Initiates the DrusillaSearch Model but doesn’t train it.
+%%              Initiates the DrusillaSearch Model but doesnt train it.
 %%              trainDrusilla has to be used before searchDrusilla can be used.
 %%
 foreign(initDrusillaModelNoTrain, c, initDrusillaModelNoTrain(+integer, +integer)).
@@ -90,7 +90,7 @@ foreign(trainDrusilla, c, trainDrusilla(+pointer(float_array), +integer, +intege
 %% --Output--
 %%
 %% --Description--
-%%              Initiates the QDAFNSearch Model but doesn’t train it.
+%%              Initiates the QDAFNSearch Model but doesnt train it.
 %%              trainQDAFN has to be used before searchQDAFN can be used.
 %%
 foreign(initQDAFNModelNoTrain, c, initQDAFNModelNoTrain(+integer, +integer)).
diff --git a/src/methods/bayesian_linear_regression/bayesian_linear_regression.cpp b/src/methods/bayesian_linear_regression/bayesian_linear_regression.cpp
index 3177d62254e0920e43332ff5bafa1591669fc0ea..67751451be589f0547459a38a561a9ea3d92b95e 100644
--- a/src/methods/bayesian_linear_regression/bayesian_linear_regression.cpp
+++ b/src/methods/bayesian_linear_regression/bayesian_linear_regression.cpp
@@ -17,8 +17,11 @@ using namespace mlpack::regression;
 // Global Variable of the BayesianLinearRegression object so it can be accessed from all functions
 BayesianLinearRegression regressor;
 
-// input:	const bool , const bool , const size_t , const double
-// output: double
+// input:	const bool 		centerData, 
+//			const bool 		scaleData, 
+//			const size_t 	nIterMax, 
+//			const double 	tol
+// output: 
 void initModel(SP_integer centerData, SP_integer scaleData, SP_integer nIterMax, double tol)
 {
 	regressor = new BayesianLinearRegression((centerData == 1), (scaleData == 1), nIterMax, tol);
@@ -39,119 +42,129 @@ double beta()
 }
 
 // input:
-// output: const arma::colvec &
-float * dataOffset(SP_integer *arraySize)
+// output: const arma::colvec &	dataOffset
+void dataOffset(float **dataOffsetArr, SP_integer *dataOffsetArrSize)
 {
-	// save the DataOffset output in colvec
-	colvec armaDataOffset = regressor.DataOffset();
-
-	*arraySize = armaDataOffset.n_elem;
-
-	return convertToArray(armaDataOffset);
+	// create the ReturnVector
+	rowvec dataOffsetReturnVector = regressor.DataOffset();
+	
+	// return the Vector
+	returnVectorInformation(dataOffsetReturnVector, dataOffsetArr, dataOffsetArrSize);
 }
 
 // input:
-// output: const arma::colvec &
-float * dataScale(SP_integer *arraySize)
+// output: const arma::colvec &	dataScale
+void dataScale(float **dataScaleArr, SP_integer *dataScaleArrSize)
 {
-	// save the DataScale output in colvec
-	colvec armaDataScale = regressor.DataScale();
-
-	*arraySize = armaDataScale.n_elem;
-
-	return convertToArray(armaDataScale);
+	// create the ReturnVector
+	rowvec dataScaleReturnVector = regressor.DataScale();
+	
+	// return the Vector
+	returnVectorInformation(dataScaleReturnVector, dataScaleArr, dataScaleArrSize);
 }
 
 // input:
-// output: const arma::colvec &
-float * omega(SP_integer *arraySize)
+// output: const arma::colvec &	omega
+void omega(float **omegaArr, SP_integer *omegaArrSize)
 {
-	// save the Omega output in colvec
-	colvec armaOmega = regressor.Omega();
-
-	*arraySize = armaOmega.n_elem;
-
-	return convertToArray(armaOmega);
+	// create the ReturnVector
+	rowvec omegaReturnVector = regressor.Omega();
+	
+	// return the Vector
+	returnVectorInformation(omegaReturnVector, omegaArr, omegaArrSize);
 }
 
-// input: const arma::mat &points, arma::rowvec &predictions
+// input: 	const arma::mat &points, 
+//			arma::rowvec &predictions
 // output:
-void predict(float *pointsArr, SP_integer pointsSize, SP_integer pointsRowNum, float **predicArr, SP_integer *predicSize)
+void predict(float *pointsMatArr, SP_integer pointsMatSize, SP_integer pointsMatRowNum, float **predictionsArr, SP_integer *predictionsArrSize)
 {
-	// convert the Prolog arrays to std::vec for easy conversion to arma::mat
-	mat data = convertArrayToMat(pointsArr, pointsSize, pointsRowNum);
+	// convert the Prolog array to arma::mat
+	mat points = convertArrayToMat(pointsMatArr, pointsMatSize, pointsMatRowNum);
+	
+	// create the ReturnVector
+	rowvec predictionsReturnVector;
+	
 
 	// run the prediction and save the result in arma::rowvec
-	rowvec predictions;
-	regressor.Predict(data, predictions);
-
+	regressor.Predict(points, predictionsReturnVector);
 
-	// give back the sizes and the converted results as arrays
-	*predicSize = predictions.n_elem;
 
-	*predicArr = convertToArray(predictions);
+	// return the Vector
+	returnVectorInformation(predictionsReturnVector, predictionsArr, predictionsArrSize);
 }
 
-// input: const arma::mat &points, arma::rowvec &predictions, arma::rowvec &std
+// input:	const arma::mat &points, 
+//			arma::rowvec &predictions, 
+//			arma::rowvec &std
 // output:
-void predictWithStd(float *pointsArr, SP_integer pointsSize, SP_integer pointsRowNum, float **predicArr, SP_integer *predicSize, float **stdArr, SP_integer *stdSize)
+void predictWithStd(float *pointsMatArr, SP_integer pointsMatSize, SP_integer pointsMatRowNum, float **predictionsArr, SP_integer *predictionsArrSize, float **stdArr, SP_integer *stdArrSize)
 {
-	// convert the Prolog arrays to std::vec for easy conversion to arma::mat
-	mat data = convertArrayToMat(pointsArr, pointsSize, pointsRowNum);
+	// convert the Prolog array to arma::mat
+	mat points = convertArrayToMat(pointsMatArr, pointsMatSize, pointsMatRowNum);
+	
+	// create the ReturnVectors
+	rowvec predictionsReturnVector;
+	rowvec stdReturnVector;
+	
 
-	// run the prediction and save the results in arma::rowvecs
-	rowvec predictions;
-	rowvec std;
-	regressor.Predict(data, predictions, std);
+	// run the prediction and save the result in arma::rowvec
+	regressor.Predict(points, predictionsReturnVector, stdReturnVector);
 
-	// give back the sizes and the converted results as arrays
-	*predicSize = predictions.n_elem;
-	*stdSize = std.n_elem;
 
-	*predicArr = convertToArray(predictions);
-	*stdArr = convertToArray(std);
+	// return the Vectors
+	returnVectorInformation(predictionsReturnVector, predictionsArr, predictionsArrSize);
+	returnVectorInformation(stdReturnVector, stdArr, stdArrSize);
 }
 
 
 // input:
 // output: double
-SP_integer responsesOffset()
+double responsesOffset()
 {
 	return regressor.ResponsesOffset();
 }
 
-// input: const arma::mat &data, const arma::rowvec &responses
+// input:	const arma::mat &		data, 
+//			const arma::rowvec &	responses
 // output: double
-SP_integer rmse(float *matrix, SP_integer matSize, SP_integer matRowNum, float *arr, SP_integer vecSize)
+double rmse(float *dataMatArr, SP_integer dataMatSize, SP_integer dataMatRowNum, float *responsesArr, SP_integer responsesArrSize)
 {
-	// convert the Prolog arrays to arma::rowvec and arma::mat
-	rowvec responses = convertArrayToRowvec(arr, vecSize);
-	mat data = convertArrayToMat(matrix, matSize, matRowNum);
+	// convert the Prolog array to arma::mat
+	mat data = convertArrayToMat(dataMatArr, dataMatSize, dataMatRowNum);
+	
+	// convert the Prolog array to arma::rowvec
+	rowvec responsesVector = convertArrayToRowvec(responsesArr, responsesArrSize);
+	
 
 	// run the model function and return the error
-	return regressor.RMSE(data, responses);
+	return regressor.RMSE(data, responsesVector);
 }
 
-// input: const arma::mat &data, const arma::rowvec &responses
+// input:	const arma::mat &		data, 
+//			const arma::rowvec &	responses
 // output:
-void train(float *matrix, SP_integer matSize, SP_integer matRowNum, float *arr, SP_integer vecSize)
+void train(float *dataMatArr, SP_integer dataMatSize, SP_integer dataMatRowNum, float *responsesArr, SP_integer responsesArrSize)
 {
-	if(matSize / matRowNum != vecSize)
+	if(dataMatSize / dataMatRowNum != responsesArrSize)
 	{
 		cout << "Target dim doesnt fit to the Data dim" << endl;
 		return;
 	}
-	// convert the Prolog arrays to arma::rowvec and arma::mat
-	rowvec responses = convertArrayToRowvec(arr, vecSize);
-	mat data = convertArrayToMat(matrix, matSize, matRowNum);
+	// convert the Prolog array to arma::mat
+	mat data = convertArrayToMat(dataMatArr, dataMatSize, dataMatRowNum);
+	
+	// convert the Prolog array to arma::rowvec
+	rowvec responsesVector = convertArrayToRowvec(responsesArr, responsesArrSize);
+
 
 	// run the model function
-	regressor.Train(data, responses);
+	regressor.Train(data, responsesVector);
 }
 
 // input:
 // output: double
-SP_integer variance()
+double variance()
 {
 	return regressor.Variance();
 }
diff --git a/src/methods/bayesian_linear_regression/bayesian_linear_regression.pl b/src/methods/bayesian_linear_regression/bayesian_linear_regression.pl
index 396a631403c2cd69315b1c15de06aa063c7159f9..ca2f5dbbe83842eeb1c176fe104b2944af496d2a 100644
--- a/src/methods/bayesian_linear_regression/bayesian_linear_regression.pl
+++ b/src/methods/bayesian_linear_regression/bayesian_linear_regression.pl
@@ -76,7 +76,7 @@ foreign(beta,  c, beta([-float32])).
 %% --Description--
 %%              Get the mean vector computed on the features over the training points.
 %%
-foreign(dataOffset, c, dataOffset(-integer, [-pointer(float_array)])).
+foreign(dataOffset, c, dataOffset(-pointer(float_array), -integer)).
 
 
 %% --Input--
@@ -87,7 +87,7 @@ foreign(dataOffset, c, dataOffset(-integer, [-pointer(float_array)])).
 %% --Description--
 %%              Get the vector of standard deviations computed on the features over the training points.
 %%
-foreign(dataScale, c, dataScale(-integer, [-pointer(float_array)])).
+foreign(dataScale, c, dataScale(-pointer(float_array), -integer)).
 
 
 %% --Input--
@@ -98,7 +98,7 @@ foreign(dataScale, c, dataScale(-integer, [-pointer(float_array)])).
 %% --Description--
 %%              Get the solution vector.
 %%
-foreign(omega, c, omega(-integer, [-pointer(float_array)])).
+foreign(omega, c, omega(-pointer(float_array), -integer)).
 
 
 %% --Input--
@@ -141,7 +141,7 @@ foreign(predictWithStd,  c, predictWithStd(     +pointer(float_array), +integer,
 %%
 foreign(rmse,  c, rmse( +pointer(float_array), +integer, +integer, 
                         +pointer(float_array), +integer, 
-                        [-integer])).
+                        [-float32])).
 
 
 %% --Input--
@@ -152,7 +152,7 @@ foreign(rmse,  c, rmse( +pointer(float_array), +integer, +integer,
 %%
 %% --Description--
 %%              Run BayesianLinearRegression.
-%%              The input matrix (like all mlpack matrices) should be column-major – each column is an observation and each row is a dimension.
+%%              The input matrix (like all mlpack matrices) should be column-major each column is an observation and each row is a dimension.
 %%
 foreign(train,  c, train(       +pointer(float_array), +integer, +integer, 
                                 +pointer(float_array), +integer)).
@@ -167,7 +167,7 @@ foreign(train,  c, train(       +pointer(float_array), +integer, +integer,
 %%              Get the estimate variance.
 %%              train/5 should be called before.
 %%
-foreign(variance,  c, variance([-integer])).
+foreign(variance,  c, variance([-float32])).
 
 %% Defines what functions should be connected from main.cpp
 foreign_resource(bayesian_linear_regression, [  initModel, 
diff --git a/src/methods/dbscan/dbscan.cpp b/src/methods/dbscan/dbscan.cpp
index c0a1c2ddd2f277b7dfcdb17263e8031153f424fe..54a8f4609054fbdc5c0796044b535034f24b1ba6 100644
--- a/src/methods/dbscan/dbscan.cpp
+++ b/src/methods/dbscan/dbscan.cpp
@@ -192,52 +192,4 @@ void dbscan(double epsilon, SP_integer minPoints, SP_integer batchMode, char con
 		cout << "wrong selectionType input" << endl;
 	}
 	
-}
-
-
-void takeNumberFunction(SP_integer integerNumber, double doubleNumber, char const *string)
-{
-
-}
-
-SP_integer returnNumberFunction()
-{
-	return 7;
-}
-
-void takeMatrixFunction(float *givenMatArr, SP_integer givenMatSize, SP_integer givenMatRowNum)
-{
-	// convert the Prolog arrays to arma::mat
-	mat data = convertArrayToMat(givenMatArr, givenMatSize, givenMatRowNum);
-}
-
-void takeArrayFunction(float *givenArr, SP_integer givenArrSize)
-{
-	// convert the Prolog arrays to arma::rowvec
-	rowvec givenVector = convertArrayToRowvec(givenArr, givenArrSize);
-}
-
-void returnMatrixFunction(float **returnMatArr, SP_integer *returnMatColNum, SP_integer *returnMatRowNum)
-{
-	// get the ReturnMat
-	mat toReturnMat = rowvec(3, 3, fill::ones);
-
-	// return the Matrix dimensions
-	*returnMatColNum = toReturnMat.n_cols;
-	*returnMatRowNum = toReturnMat.n_rows;
-
-	// return the Matrix as one long Array
-	*returnMatArr = convertToArray(toReturnMat);
-}
-
-void returnArrayFunction(float **returnArr, SP_integer *returnArrSize)
-{
-	// get the ReturnVector
-	rowvec toReturnVector = rowvec(3, fill::ones);
-
-	// return the Vector lenght
-	*returnArrSize = toReturnVector.n_elem;
-
-	// return the Vector as Array
-	*returnArr = convertToArray(toReturnVector);
 }
\ No newline at end of file
diff --git a/src/methods/kernel_pca/kernel_pca.cpp b/src/methods/kernel_pca/kernel_pca.cpp
index 9dad7df4b073b2cf85d32a56da83b7903fa4086e..579945cc4b6d895a5616b1eaebd65587cc6dc6d2 100644
--- a/src/methods/kernel_pca/kernel_pca.cpp
+++ b/src/methods/kernel_pca/kernel_pca.cpp
@@ -11,7 +11,7 @@
 #include <mlpack/methods/nystroem_method/ordered_selection.hpp>
 #include <mlpack/methods/nystroem_method/random_selection.hpp>
 
-// including helper functions for converting between arma structures and arrays
+// including helper functions for converting between arma structures and 
 #include "../../helper_files/helper.hpp"
 
 // some of the most used namespaces
@@ -64,16 +64,14 @@ void kernel_pca(char const *kernel, SP_integer centerTranformedData, SP_integer
                     float **eigvecMatArr, SP_integer *eigvecMatColNum, SP_integer *eigvecMatRowNum, 
                     SP_integer *newDimension)
 {
-    // convert the Prolog arrays to arma::mat
+    // convert the Prolog array to arma::mat
     mat data = convertArrayToMat(dataMatArr, dataMatSize, dataMatRowNum);
 
     
     // create the ReturnMat
     mat transformedDataReturnMat;
-    
     // create the ReturnVector
     vec eigvalReturnVector;
-    
     // create the ReturnMat
     mat eigvecReturnMat;
 
diff --git a/src/methods/kfn/kfn.cpp b/src/methods/kfn/kfn.cpp
index 53a683db9c03f0c883c6253ccda3b68ab05bad69..3fb1f7c870499e89d59e9044d1d035b5bb44c7c2 100644
--- a/src/methods/kfn/kfn.cpp
+++ b/src/methods/kfn/kfn.cpp
@@ -35,7 +35,8 @@ void initAndBuildModel(char const *treeType, char const *algorithm,
     mat reference = convertArrayToMat(referenceMatArr, referenceMatSize, referenceMatRowNum);
 
 
-    //  select the treeType
+    // used a good part of how it was used in the .main file
+    // select the treeType
     NSModel<FurthestNS>::TreeTypes tree = NSModel<FurthestNS>::KD_TREE;
 
     if (strcmp(treeType, "kd") == 0)
@@ -110,8 +111,6 @@ void searchWithQuery(   float *queryMatArr, SP_integer queryMatSize, SP_integer
 
     // create the ReturnMat
     Mat< size_t > neighborsReturnMat;
-
-    // create the ReturnMat
     mat distancesReturnMat;
     
 
@@ -136,19 +135,15 @@ void searchNoQuery(     SP_integer k,
                         float **neighborsMatArr, SP_integer *neighborsMatColNum, SP_integer *neighborsMatRowNum,
                         float **distancesMatArr, SP_integer *distancesMatColNum, SP_integer *distancesMatRowNum)
 {
-    // create the ReturnMat
+    // create the ReturnMats
     Mat< size_t > neighborsReturnMat;
-
-    // create the ReturnMat
     mat distancesReturnMat;
     
 
     nsModelObj.Search((size_t)k, neighborsReturnMat, distancesReturnMat);
 
 
-    // return the Matrix
+    // return the Matrices
     returnMatrixInformation(neighborsReturnMat, neighborsMatArr, neighborsMatColNum, neighborsMatRowNum);
-    
-    // return the Matrix
     returnMatrixInformation(distancesReturnMat, distancesMatArr, distancesMatColNum, distancesMatRowNum);
 }
\ No newline at end of file
diff --git a/src/methods/knn/knn.cpp b/src/methods/knn/knn.cpp
index 34a4234a84e06c4d16a59fd9640bce4c62095fca..7c14966a0a8663e2ee75daced5cab95fd7edf001 100644
--- a/src/methods/knn/knn.cpp
+++ b/src/methods/knn/knn.cpp
@@ -37,7 +37,8 @@ void initAndBuildModel(char const *treeType, char const *algorithm,
     mat reference = convertArrayToMat(referenceMatArr, referenceMatSize, referenceMatRowNum);
 
 
-    //  select the treeType
+    // used a good part of how it was used in the .main file
+    // select the treeType
     NSModel<NearestNS>::TreeTypes tree = NSModel<NearestNS>::KD_TREE;
 
     if (strcmp(treeType, "kd") == 0)
@@ -115,18 +116,14 @@ void searchWithQuery(   float *queryMatArr, SP_integer queryMatSize, SP_integer
 
     // create the ReturnMat
     Mat< size_t > neighborsReturnMat;
-
-    // create the ReturnMat
     mat distancesReturnMat;
     
 
     nsModelObj.Search(move(query), (size_t)k, neighborsReturnMat, distancesReturnMat);
 
 
-    // return the Matrix
+    // return the Matrices
     returnMatrixInformation(neighborsReturnMat, neighborsMatArr, neighborsMatColNum, neighborsMatRowNum);
-    
-    // return the Matrix
     returnMatrixInformation(distancesReturnMat, distancesMatArr, distancesMatColNum, distancesMatRowNum);
 }
 
@@ -143,8 +140,6 @@ void searchNoQuery(     SP_integer k,
 {
     // create the ReturnMat
     Mat< size_t > neighborsReturnMat;
-
-    // create the ReturnMat
     mat distancesReturnMat;
     
 
diff --git a/src/methods/linear_regression/linear_regression.cpp b/src/methods/linear_regression/linear_regression.cpp
index 2fa7ec55068e97a9e0e702b45bd6db5d4d42a507..c0c18529859c1d56bfa6226965b93e5bf5680956 100644
--- a/src/methods/linear_regression/linear_regression.cpp
+++ b/src/methods/linear_regression/linear_regression.cpp
@@ -17,136 +17,171 @@ using namespace mlpack::regression;
 // Global Variable of the LinearRegression object so it can be accessed from all functions
 LinearRegression regressor;
 
-// input: const arma::mat &data, const arma::rowvec &responses, const double lambda, const bool intercept
+// input:	const arma::mat 	&data, 
+//			const arma::rowvec 	&responses, 
+//			const double 		lambda, 
+//			const bool 			intercept
 // output:
-void initModel(float *matrix, SP_integer matSize, SP_integer matRowNum, float *responses_arr, SP_integer vecSize, double lambda, SP_integer bool_intercept)
+void initModel(float *dataMatArr, SP_integer dataMatSize, SP_integer dataMatRowNum, 
+				float *responsesArr, SP_integer responsesArrSize, 
+				double lambda, 
+				SP_integer bool_intercept)
 {
-	if(matSize / matRowNum != vecSize)
+	if(dataMatSize / dataMatRowNum != responsesArrSize)
 	{
 		cout << "Target dim doesnt fit to the Data dim" << endl;
 		return;
 	}
-	// convert the Prolog arrays to arma::rowvec and arma::mat
-	mat data = convertArrayToMat(matrix, matSize, matRowNum);
-	rowvec responses = convertArrayToRowvec(responses_arr, vecSize);
+	// convert the Prolog array to arma::mat
+	mat data = convertArrayToMat(dataMatArr, dataMatSize, dataMatRowNum);
+	
+	// convert the Prolog array to arma::rowvec
+	rowvec responsesVector = convertArrayToRowvec(responsesArr, responsesArrSize);
 
-	regressor = LinearRegression(data, responses, lambda, bool_intercept);
+
+	regressor = LinearRegression(data, responsesVector, lambda, bool_intercept);
 }
 
-// input: const arma::mat &data, const arma::rowvec &responses, const arma::rowvec &weights, const double lambda, const bool intercept
+// input:	const arma::mat &data, 
+//			const arma::rowvec &responses, 
+//			const arma::rowvec &weights, 
+//			const double lambda, 
+//			const bool intercept
 // output:
-void initModelWithWeights(float *matrix, SP_integer matSize, SP_integer matRowNum, float *responses_arr, SP_integer vecSize, float *weights_arr, SP_integer weightsSize, double lambda, SP_integer bool_intercept)
+void initModelWithWeights(float *dataMatArr, SP_integer dataMatSize, SP_integer dataMatRowNum, 
+							float *responsesArr, SP_integer responsesArrSize, 
+							float *weightsArr, SP_integer weightsArrSize, 
+							double lambda, 
+							SP_integer bool_intercept)
 {
-	if(matSize / matRowNum != vecSize)
+	if(dataMatSize / dataMatRowNum != responsesArrSize)
 	{
 		cout << "Target dim doesnt fit to the Data dim" << endl;
 		return;
 	}
-	// convert the Prolog arrays to arma::rowvec and arma::mat
-	mat data = convertArrayToMat(matrix, matSize, matRowNum);
-	rowvec responses = convertArrayToRowvec(responses_arr, vecSize);
-	rowvec weights = convertArrayToRowvec(weights_arr, weightsSize);
+	// convert the Prolog array to arma::mat
+	mat data = convertArrayToMat(dataMatArr, dataMatSize, dataMatRowNum);
+	// convert the Prolog array to arma::rowvec
+	rowvec responsesVector = convertArrayToRowvec(responsesArr, responsesArrSize);
+	// convert the Prolog array to arma::rowvec
+	rowvec weightsVector = convertArrayToRowvec(weightsArr, weightsArrSize);
+
 
-	regressor = LinearRegression(data, responses, weights, lambda, bool_intercept);
+	regressor = LinearRegression(data, responsesVector, weightsVector, lambda, bool_intercept);
 }
 
-// input: const arma::mat &points, const arma::rowvec &responses
+// input: 	const arma::mat &points, 
+//			const arma::rowvec &responses
 // output: double L2SquardError
-double computeError(float *points_mat_arr, SP_integer matSize, SP_integer matRowNum, float *responses_arr, SP_integer vecSize)
+double computeError(float *pointsMatArr, SP_integer pointsMatSize, SP_integer pointsMatRowNum, 
+					float *responsesArr, SP_integer responsesArrSize)
 {
-	if(matSize / matRowNum != vecSize)
+	if(pointsMatSize / pointsMatRowNum != responsesArrSize)
 	{
 		cout << "Target dim doesnt fit to the Data dim" << endl;
 		return 0;
 	}
-	// convert the Prolog arrays to arma::rowvec and arma::mat
-	mat data = convertArrayToMat(points_mat_arr, matSize, matRowNum);
-	rowvec responses = convertArrayToRowvec(responses_arr, vecSize);
+	// convert the Prolog array to arma::mat
+	mat points = convertArrayToMat(pointsMatArr, pointsMatSize, pointsMatRowNum);
+	// convert the Prolog array to arma::rowvec
+	rowvec responsesVector = convertArrayToRowvec(responsesArr, responsesArrSize);
+
 
 	// run the model function
-	return regressor.ComputeError(data, responses);
+	return regressor.ComputeError(points, responsesVector);
 }
 
 // input:
 // output: const arma::vec & parameters b vector
-float * parameters(SP_integer *arraySize)
+void parameters(float **bArr, SP_integer *bArrSize)
 {
-	// get b vector
-	colvec armaDataOffset = regressor.Parameters();
-
-	cout << regressor.Parameters() << endl;
-	cout << armaDataOffset << endl;
-
-	// set the b vector length
-	*arraySize = armaDataOffset.n_elem;
-
-	// convert b vector to array and return 
-	return convertToArray(armaDataOffset);
+	// create the ReturnVector
+	rowvec bReturnVector = regressor.Parameters();
+	
+	// return the Vector
+	returnVectorInformation(bReturnVector, bArr, bArrSize);
 }
 
 // input: arma::vec & new b vector
 // output:
-void modifyParameters(float *paramArr, SP_integer paramSize)
+void modifyParameters(float *newBArr, SP_integer newBArrSize)
 {
-	// convert array to arma:: vec
-	rowvec new_B_Vector = convertArrayToRowvec(paramArr, paramSize);
+	// convert the Prolog array to arma::rowvec
+	vec newBVector = convertArrayToRowvec(newBArr, newBArrSize);
+
 
 	// get parameter b vector ref
 	vec& bVector = regressor.Parameters();
 
 	// set new b vector
-	bVector = new_B_Vector;
+	bVector = newBVector;
 }
 
-// input: const arma::mat &points, arma::rowvec &predictions
+// input: 	const arma::mat &points, 
+//			arma::rowvec &predictions
 // output:
-void predict(float *pointsArr, SP_integer pointsSize, SP_integer pointsRowNum, float **predicArr, SP_integer *predicSize)
+void predict(float *pointsMatArr, SP_integer pointsMatSize, SP_integer pointsMatRowNum, 
+				float **predicArr, SP_integer *predicArrSize)
 {
-	// convert the Prolog arrays to std::vec for easy conversion to arma::mat
-	mat data = convertArrayToMat(pointsArr, pointsSize, pointsRowNum);
+	// convert the Prolog array to arma::mat
+	mat points = convertArrayToMat(pointsMatArr, pointsMatSize, pointsMatRowNum);
 
-	// run the prediction and save the result in arma::rowvec
-	rowvec predictions;
-	regressor.Predict(data, predictions);
+	// create the ReturnVector
+	rowvec predicReturnVector;
+	
 
+	// run the predict function on the model
+	regressor.Predict(points, predicReturnVector);
+	
 
-	// give back the sizes and the converted results as arrays
-	*predicSize = predictions.n_elem;
-
-	*predicArr = convertToArray(predictions);
+	// return the Vector
+	returnVectorInformation(predicReturnVector, predicArr, predicArrSize);
 }
 
-// input: const arma::mat &data, const arma::rowvec &responses, const bool intercept
+// input: 	const arma::mat &data, 
+//			const arma::rowvec &responses, 
+//			const bool intercept
 // output:
-double train(float *matrix, SP_integer matSize, SP_integer matRowNum, float *responses_arr, SP_integer vecSize, SP_integer bool_intercept)
+double train(float *dataMatArr, SP_integer dataMatSize, SP_integer dataMatRowNum, 
+				float *responsesArr, SP_integer responsesArrSize, 
+				SP_integer bool_intercept)
 {
-	if(matSize / matRowNum != vecSize)
+	if(dataMatSize / dataMatRowNum != responsesArrSize)
 	{
 		cout << "Target dim doesnt fit to the Data dim" << endl;
 		return 0;
 	}
-	// convert the Prolog arrays to arma::rowvec and arma::mat
-	rowvec responses = convertArrayToRowvec(responses_arr, vecSize);
-	mat data = convertArrayToMat(matrix, matSize, matRowNum);
+	// convert the Prolog array to arma::mat
+	mat data = convertArrayToMat(dataMatArr, dataMatSize, dataMatRowNum);	
+	// convert the Prolog array to arma::rowvec
+	rowvec responsesVector = convertArrayToRowvec(responsesArr, responsesArrSize);
+
 
 	// run the model train function
-	return regressor.Train(data, responses, (bool_intercept == 1));
+	return regressor.Train(data, responsesVector, (bool_intercept == 1));
 }
 
-// input: const arma::mat &data, const arma::rowvec &responses, const arma::rowvec &weights, const bool intercept
+// input: 	const arma::mat 	&data, 
+//			const arma::rowvec 	&responses, 
+//			const arma::rowvec 	&weights, 
+//			const bool 			intercept
 // output:
-double trainWithWeights(float *matrix, SP_integer matSize, SP_integer matRowNum, float *responses_arr, SP_integer vecSize, float *weights_arr, SP_integer weightsSize, SP_integer bool_intercept)
+double trainWithWeights(float *dataMatArr, SP_integer dataMatSize, SP_integer dataMatRowNum, 
+						float *responsesArr, SP_integer responsesArrSize, 	
+						float *weightsArr, SP_integer weightsArrSize, 
+						SP_integer bool_intercept)
 {
-	if(matSize / matRowNum != vecSize)
+	if(dataMatSize / dataMatRowNum != responsesArrSize)
 	{
 		cout << "Target dim doesnt fit to the Data dim" << endl;
 		return 0;
 	}
-	// convert the Prolog arrays to arma::rowvec and arma::mat
-	mat data = convertArrayToMat(matrix, matSize, matRowNum);
-	rowvec responses = convertArrayToRowvec(responses_arr, vecSize);
-	rowvec weights = convertArrayToRowvec(weights_arr, weightsSize);
+	// convert the Prolog array to arma::mat
+	mat data = convertArrayToMat(dataMatArr, dataMatSize, dataMatRowNum);	
+	// convert the Prolog array to arma::rowvec
+	rowvec responsesVector = convertArrayToRowvec(responsesArr, responsesArrSize);
+	rowvec weightsVector = convertArrayToRowvec(weightsArr, weightsArrSize);
 
 	// run the model train function
-	return regressor.Train(data, responses, weights, (bool_intercept == 1));
+	return regressor.Train(data, responsesVector, weightsVector, (bool_intercept == 1));
 }
diff --git a/src/methods/linear_regression/linear_regression.pl b/src/methods/linear_regression/linear_regression.pl
index 7bc477e97a3f51382b063d63a4292edc8e1bebcb..7dbd8143622af46393042c3a56f757f99bacfc1e 100644
--- a/src/methods/linear_regression/linear_regression.pl
+++ b/src/methods/linear_regression/linear_regression.pl
@@ -82,7 +82,7 @@ foreign(computeError,  c, computeError( +pointer(float_array), +integer, +intege
 %% --Description--
 %%              Get the parameters (the b vector).
 %%
-foreign(parameters, c, parameters([-pointer(float_array)], -integer)).
+foreign(parameters, c, parameters(-pointer(float_array), -integer)).
 
 
 %% --Input--
diff --git a/src/methods/lsh/lsh.cpp b/src/methods/lsh/lsh.cpp
index 0780526289440cd33f3597b3bfc0c7bca5b929d8..f3d2f342795508671e64e64c482677331c17ecc5 100644
--- a/src/methods/lsh/lsh.cpp
+++ b/src/methods/lsh/lsh.cpp
@@ -29,7 +29,8 @@ LSHSearch lshSearch;
 //          const size_t 	bucketSize = 500
 // output: 
 // description: 
-void initModel(float *referenceMatArr, SP_integer referenceMatSize, SP_integer referenceMatRowNum, SP_integer numProj, SP_integer numTables, double hashWidth, SP_integer secondHashSize, SP_integer bucketSize)
+void initModel(float *referenceMatArr, SP_integer referenceMatSize, SP_integer referenceMatRowNum, 
+                SP_integer numProj, SP_integer numTables, double hashWidth, SP_integer secondHashSize, SP_integer bucketSize)
 {
     // convert the Prolog arrays to arma::mat
     mat reference = convertArrayToMat(referenceMatArr, referenceMatSize, referenceMatRowNum);
@@ -42,7 +43,8 @@ void initModel(float *referenceMatArr, SP_integer referenceMatSize, SP_integer r
 //          const arma::Mat< size_t > & 	realNeighbors 
 // output:  double  recall percentage [0, 1]
 // description: 
-double computeRecall(float *foundNeighborsMatArr, SP_integer foundNeighborsMatSize, SP_integer foundNeighborsMatRowNum, float *realNeighborsMatArr, SP_integer realNeighborsMatSize, SP_integer realNeighborsMatRowNum)
+double computeRecall(float *foundNeighborsMatArr, SP_integer foundNeighborsMatSize, SP_integer foundNeighborsMatRowNum, 
+                        float *realNeighborsMatArr, SP_integer realNeighborsMatSize, SP_integer realNeighborsMatRowNum)
 {
     // convert the Prolog arrays to arma::mat
     Mat< size_t > foundNeighbors = conv_to<Mat< size_t >>::from(convertArrayToMat(foundNeighborsMatArr, foundNeighborsMatSize, foundNeighborsMatRowNum));
diff --git a/src/methods/mean_shift/mean_shift.cpp b/src/methods/mean_shift/mean_shift.cpp
index 2280445ad4f0dd56cb539d863e8dd0cacc65cac7..7db14fbb0fff1698f6f72e92a8a6658bf12be387 100644
--- a/src/methods/mean_shift/mean_shift.cpp
+++ b/src/methods/mean_shift/mean_shift.cpp
@@ -30,30 +30,26 @@ using namespace mlpack::meanshift;
 //			bool 					useSeeds = true
 // output: 
 // description: 
-void meanShift(double radius, SP_integer maxIterations, float *dataMatArr, SP_integer dataMatSize, SP_integer dataMatRowNum, float **assignmentsArr, SP_integer *assignmentsArrSize, 
-				float **centroidsMatArr, SP_integer *centroidsMatColNum, SP_integer *centroidsMatRowNum, SP_integer forceConvergence, SP_integer useSeeds)
+void meanShift(double radius, SP_integer maxIterations, 
+				float *dataMatArr, SP_integer dataMatSize, SP_integer dataMatRowNum, 
+				float **assignmentsArr, SP_integer *assignmentsArrSize, 
+				float **centroidsMatArr, SP_integer *centroidsMatColNum, SP_integer *centroidsMatRowNum, 
+				SP_integer forceConvergence, 
+				SP_integer useSeeds)
 {
-	// convert the Prolog arrays to arma::mat
+	// convert the Prolog array to arma::mat
 	mat data = convertArrayToMat(dataMatArr, dataMatSize, dataMatRowNum);
+	// create the ReturnVector
+	arma::Row<size_t> assignmentsReturnVector;
+	// create the ReturnMat
+	mat centroidsReturnMat;
 
-	// get the ReturnVector
-	arma::Row<size_t> toReturnVector;
 
-	// get the ReturnMat
-	mat toReturnMat;
+	MeanShift<>(radius, maxIterations).Cluster(data, assignmentsReturnVector, centroidsReturnMat, (forceConvergence == 1), (useSeeds == 1));
 
-	MeanShift<>(radius, maxIterations).Cluster(data, toReturnVector, toReturnMat, (forceConvergence == 1), (useSeeds == 1));
 
-	// return the Vector lenght
-	*assignmentsArrSize = toReturnVector.n_elem;
-
-	// return the Vector as Array
-	*assignmentsArr = convertToArray(toReturnVector);
-
-	// return the Matrix dimensions
-	*centroidsMatColNum = toReturnMat.n_cols;
-	*centroidsMatRowNum = toReturnMat.n_rows;
-
-	// return the Matrix as one long Array
-	*centroidsMatArr = convertToArray(toReturnMat);
+	// return the Matrix
+	returnMatrixInformation(centroidsReturnMat, centroidsMatArr, centroidsMatColNum, centroidsMatRowNum);
+	// return the Vector
+	returnVectorInformation(assignmentsReturnVector, assignmentsArr, assignmentsArrSize);
 }
diff --git a/src/methods/nmf/nmf.cpp b/src/methods/nmf/nmf.cpp
index de77a08d98784c422d08c327951e3e6044091693..4ecb455736330589714961f4e5e9490e36560dbd 100644
--- a/src/methods/nmf/nmf.cpp
+++ b/src/methods/nmf/nmf.cpp
@@ -39,10 +39,8 @@ void nmf(char const *updateRule, SP_integer maxIterations, double minResidue,
     // convert the Prolog arrays to arma::mat
     mat data = convertArrayToMat(dataMatArr, dataMatSize, dataMatRowNum);
     
-    // create the ReturnMat
+    // create the ReturnMats
     mat WReturnMat;
-
-    // create the ReturnMat
     mat HReturnMat;
 
     // decide which update rule to use
@@ -66,9 +64,7 @@ void nmf(char const *updateRule, SP_integer maxIterations, double minResidue,
         cout << "wrong updateRule input" << endl;
     }
     
-    // return the Matrix
+    // return the Matrices
     returnMatrixInformation(WReturnMat, WMatArr, WMatColNum, WMatRowNum);
-
-    // return the Matrix
     returnMatrixInformation(HReturnMat, HMatArr, HMatColNum, HMatRowNum);
 }
diff --git a/src/methods/pca/pca.cpp b/src/methods/pca/pca.cpp
index 8ff5908542fb462dac01bbe09e926be4e5ffebf8..f08c5a805526bf8ee2ffc9d6f7d845f54d06898a 100644
--- a/src/methods/pca/pca.cpp
+++ b/src/methods/pca/pca.cpp
@@ -35,18 +35,17 @@ void pca(SP_integer scaleData, char const *decompositionPolicy,
             float **eigValArr, SP_integer *eigValArrSize,
             float **eigVecMatArr, SP_integer *eigVecMatColNum, SP_integer *eigVecMatRowNum)
 {
-    // convert the Prolog arrays to arma::mat
+    // convert the Prolog array to arma::mat
     mat data = convertArrayToMat(dataMatArr, dataMatSize, dataMatRowNum);
 
     // create the ReturnMat
     mat transformedReturnMat;
-
     // create the ReturnVector
     vec eigValReturnVector;
-
     // create the ReturnMat
     mat eigVecReturnMat;
 
+
     // decide for the decomposition Policy
     if (strcmp(decompositionPolicy, "exact") == 0)
     {
@@ -69,12 +68,11 @@ void pca(SP_integer scaleData, char const *decompositionPolicy,
         cout << "wrong decompositionPolicy input" << endl;
     }
 
+
     // return the Matrix
     returnMatrixInformation(transformedReturnMat, transformedMatArr, transformedMatColNum, transformedMatRowNum);
-    
     // return the Vector
     returnVectorInformation(eigValReturnVector, eigValArr, eigValArrSize);
-    
     // return the Matrix
     returnMatrixInformation(eigVecReturnMat, eigVecMatArr, eigVecMatColNum, eigVecMatRowNum);
 }
@@ -91,11 +89,12 @@ double pcaDimReduction(SP_integer scaleData, char const *decompositionPolicy,
                         SP_integer newDimension,
                         float **transformedMatArr, SP_integer *transformedMatColNum, SP_integer *transformedMatRowNum)
 {
-    // convert the Prolog arrays to arma::mat
+    // convert the Prolog array to arma::mat
     mat data = convertArrayToMat(dataMatArr, dataMatSize, dataMatRowNum);
 
     double returnValue;
 
+
     // decide for the decomposition Policy
     if (strcmp(decompositionPolicy, "exact") == 0)
     {
@@ -119,6 +118,7 @@ double pcaDimReduction(SP_integer scaleData, char const *decompositionPolicy,
         returnValue = -1.0;
     }
 
+
     // return the Matrix
     returnMatrixInformation(data, transformedMatArr, transformedMatColNum, transformedMatRowNum);
 
@@ -137,11 +137,12 @@ double pcaVarianceDimReduction(SP_integer scaleData, char const *decompositionPo
                                 double varRetained,
                                 float **transformedMatArr, SP_integer *transformedMatColNum, SP_integer *transformedMatRowNum)
 {
-    // convert the Prolog arrays to arma::mat
+    // convert the Prolog array to arma::mat
     mat data = convertArrayToMat(dataMatArr, dataMatSize, dataMatRowNum);
 
     double returnValue;
 
+
     // decide for the decomposition Policy
     if (strcmp(decompositionPolicy, "exact") == 0)
     {
@@ -165,6 +166,7 @@ double pcaVarianceDimReduction(SP_integer scaleData, char const *decompositionPo
         returnValue = -1.0;
     }
 
+
     // return the Matrix
     returnMatrixInformation(data, transformedMatArr, transformedMatColNum, transformedMatRowNum);
 
diff --git a/src/methods/pca/pca_test.pl b/src/methods/pca/pca_test.pl
index 190603f4e28181e218e06d935c24f322abc299b5..adc117cd53f19f59047e2667f78161565f7b15cb 100644
--- a/src/methods/pca/pca_test.pl
+++ b/src/methods/pca/pca_test.pl
@@ -3,54 +3,17 @@
 :- use_module(pca).
 :- use_module('../../helper_files/helper.pl').
 
-reset_Model :-
-        initModel(1,0,50,0.0001).
 
 :- begin_tests(lists).
 
-%% alpha tests
-test(alpha_std_init) :-
-        reset_Model,
-        alpha(0).
-test(alpha_wrong_input, fail) :-
-        reset_Model,
-        alpha(1).
-test(alpha_after_train, A =:= 9223372036854775808) :-
-        reset_Model,
-        convert_list_to_float_array([5.1,3.5,1.4,4.9,3.0,1.4,4.7,3.2,1.3,4.6,3.1,1.5],3, array(Xsize, Xrownum, X)),
-        convert_list_to_float_array([0.2,0.2,0.2,0.2], array(Ysize, Y)),
-        train(X,Xsize, Xrownum,Y, Ysize),
-        alpha(A).
+test(alpha_after_train) :-
+        open('/home/afkjakhes/eclipse-workspace/prolog-mlpack-libary/src/data_csv/iris.csv', read, A),
+        take_csv_row(A, 10, B),
+        convert_list_to_float_array(B , 10, array(Xsize, Xrownum, X)),
+        pca(0, randomized, X, Xsize, Xrownum, Tansfomed, TCols, TRows, EigVal, EigValSize, EigVec, EigVecCols, EigVecRows),
+        convert_float_array_to_2d_list(Tansfomed, TCols, TRows, TOut),
+        convert_float_array_to_list(EigVal, EigValSize, EigValOut),
+        convert_float_array_to_2d_list(EigVec, EigVecCols, EigVecRows, EigVecOut),
+        print(TOut).
 
-%% train tests
-test(correct_train) :-
-        reset_Model,
-        convert_list_to_float_array([5.1,3.5,1.4,4.9,3.0,1.4,4.7,3.2,1.3,4.6,3.1,1.5],3, array(Xsize, Xrownum, X)),
-        convert_list_to_float_array([0.2,0.2,0.2,0.2], array(Ysize, Y)),
-        train(X,Xsize, Xrownum,Y, Ysize).
-test(false_train, fail) :-
-        reset_Model,
-        convert_list_to_float_array([],3, array(Xsize, Xrownum, X)),
-        convert_list_to_float_array([0.2,0.2,0.2,0.2], array(Ysize, Y)),
-        train(X,Xsize, Xrownum,Y, Ysize).
-test(false_train2, fail) :-
-        reset_Model,
-        convert_list_to_float_array([],0, array(Xsize, Xrownum, X)),
-        convert_list_to_float_array([0.2,0.2,0.2,0.2], array(Ysize, Y)),
-        train(X,Xsize, Xrownum,Y, Ysize).
-test(false_train3, fail) :-
-        reset_Model,
-        convert_list_to_float_array([1,2],0, array(Xsize, Xrownum, X)),
-        convert_list_to_float_array([0.2,0.2,0.2,0.2], array(Ysize, Y)),
-        train(X,Xsize, Xrownum,Y, Ysize).
-test(false_train3, fail) :-
-        reset_Model,
-        convert_list_to_float_array([1,2,44,3],3, array(Xsize, Xrownum, X)),
-        convert_list_to_float_array([0.2,0.2,0.2,0.2], array(Ysize, Y)),
-        train(X,Xsize, Xrownum,Y, Ysize).
-test(false_train4) :-
-        reset_Model,
-        convert_list_to_float_array([1,2,44,3],2, array(Xsize, Xrownum, X)),
-        convert_list_to_float_array([0.2,0.2,0.2,0.2], array(Ysize, Y)),
-        train(X,Xsize, Xrownum,Y, Ysize).
 :- end_tests(lists).
\ No newline at end of file
diff --git a/src/methods/radical/radical.cpp b/src/methods/radical/radical.cpp
index bc814228adb343d29622d5db5ffcaddfaa83f456..e2e9ce7912f4677915defc8ef8631ee374e59ac9 100644
--- a/src/methods/radical/radical.cpp
+++ b/src/methods/radical/radical.cpp
@@ -38,25 +38,23 @@ void initModel(double noiseStdDev, SP_integer replicates, SP_integer angles, SP_
 //          util::Timers & 	    timers = IO::GetTimers()
 // output: 
 // description: 
-void doRadical(float *xMatArr, SP_integer xMatSize, SP_integer xMatRowNum, float **yMatArr, SP_integer *yMatColNum, SP_integer *yMatRowNum, float **wMatArr, SP_integer *wMatColNum, SP_integer *wMatRowNum)
+void doRadical(float *xMatArr, SP_integer xMatSize, SP_integer xMatRowNum, 
+                float **yMatArr, SP_integer *yMatColNum, SP_integer *yMatRowNum, 
+                float **wMatArr, SP_integer *wMatColNum, SP_integer *wMatRowNum)
 {
-    // convert the Prolog arrays to arma::mat
+    // convert the Prolog array to arma::mat
     mat x = convertArrayToMat(xMatArr, xMatSize, xMatRowNum);
 
-    // create the ReturnMat
+    // create the ReturnMats
     mat yReturnMat;
-
-    // create the ReturnMat
     mat wReturnMat;
 
     
     radicalObj.DoRadical(x, yReturnMat, wReturnMat);
 
     
-    // return the Matrix
+    // return the Matrices
     returnMatrixInformation(yReturnMat, yMatArr, yMatColNum, yMatRowNum);
-
-    // return the Matrix
     returnMatrixInformation(wReturnMat, wMatArr, wMatColNum, wMatRowNum);
 }
 
@@ -68,7 +66,7 @@ void doRadical(float *xMatArr, SP_integer xMatSize, SP_integer xMatRowNum, float
 // description: 
 double doRadical2D(float *xMatArr, SP_integer xMatSize, SP_integer xMatRowNum)
 {
-    // convert the Prolog arrays to arma::mat
+    // convert the Prolog array to arma::mat
     mat x = convertArrayToMat(xMatArr, xMatSize, xMatRowNum);
 
     return radicalObj.DoRadical2D(x);
diff --git a/src/methods/random_forest/random_forest.cpp b/src/methods/random_forest/random_forest.cpp
index 1ba759cbed1a23fd3d12652f1f069374dd8f6504..cd23eacee8229a82e4983dd68a3009192e66f2c0 100644
--- a/src/methods/random_forest/random_forest.cpp
+++ b/src/methods/random_forest/random_forest.cpp
@@ -65,13 +65,13 @@ void initModelWithTrainNoWeights(float *dataMatArr, SP_integer dataMatSize, SP_i
 void initModelWithTrainWithWeights(float *dataMatArr, SP_integer dataMatSize, SP_integer dataMatRowNum, float *labelsArr, SP_integer labelsArrSize, SP_integer numClasses,
 									float *weightsArr, SP_integer weightsArrSize, SP_integer numTrees, SP_integer minimumLeafSize, double minimumGainSplit, SP_integer maximumDepth)
 {
-    // convert the Prolog arrays to arma::mat
+    // convert the Prolog array to arma::mat
     mat data = convertArrayToMat(dataMatArr, dataMatSize, dataMatRowNum);
 
-    // convert the Prolog arrays to arma::rowvec
+    // convert the Prolog array to arma::rowvec
     Row< size_t > labelsVector = convertArrayToVec(labelsArr, labelsArrSize);
 
-    // convert the Prolog arrays to arma::rowvec
+    // convert the Prolog array to arma::rowvec
     rowvec weightsVector = convertArrayToRowvec(weightsArr, weightsArrSize);
     
     
@@ -86,7 +86,7 @@ void initModelWithTrainWithWeights(float *dataMatArr, SP_integer dataMatSize, SP
 // description: 
 void classifyPoint(float *pointArr, SP_integer pointArrSize, SP_integer *prediction, float **probsArr, SP_integer *probsArrSize)
 {
-    // convert the Prolog arrays to arma::rowvec
+    // convert the Prolog array to arma::rowvec
     rowvec pointVector = convertArrayToRowvec(pointArr, pointArrSize);
 
     // create the ReturnVector
diff --git a/src/methods/softmax_regression/softmax_regression.cpp b/src/methods/softmax_regression/softmax_regression.cpp
index 56049bc9897f2c6a8f1a52ea1a78a7d5ccdf9aff..f369c2c4413966226baee6ce119e03176f2c70e7 100644
--- a/src/methods/softmax_regression/softmax_regression.cpp
+++ b/src/methods/softmax_regression/softmax_regression.cpp
@@ -24,7 +24,8 @@ SoftmaxRegression softmaxRegression;
 //          const bool 	    fitIntercept = false//          
 // output: 
 // description: 
-void initModelNoTrain(SP_integer inputSize, SP_integer numClasses, SP_integer fitIntercept)
+void initModelNoTrain(SP_integer inputSize, SP_integer numClasses, 
+                        SP_integer fitIntercept)
 {
     softmaxRegression = SoftmaxRegression(inputSize, numClasses, (fitIntercept == 1));
 }
diff --git a/src/methods/sparse_coding/sparse_coding.cpp b/src/methods/sparse_coding/sparse_coding.cpp
index fe2bbeaac3996c522a25bb1defbf3948db17b208..dda7851ed5ad938df8eb07a969afd7a4e08c7d81 100644
--- a/src/methods/sparse_coding/sparse_coding.cpp
+++ b/src/methods/sparse_coding/sparse_coding.cpp
@@ -32,9 +32,10 @@ SparseCoding sparseCoding;
 void initModelWithTrain(float *dataMatArr, SP_integer dataMatSize, SP_integer dataMatRowNum,
                         SP_integer atoms, double lambda1, double lambda2, SP_integer maxIterations, double objTolerance, double newtonTolerance)
 {
-    // convert the Prolog arrays to arma::mat
+    // convert the Prolog array to arma::mat
     mat data = convertArrayToMat(dataMatArr, dataMatSize, dataMatRowNum);
 
+
     sparseCoding = SparseCoding(data, atoms, lambda1, lambda2, maxIterations, objTolerance, newtonTolerance, RandomInitializer());
 }
 
@@ -60,14 +61,16 @@ void initModelNoTrain(SP_integer atoms, double lambda1, double lambda2, SP_integ
 void encode(float *dataMatArr, SP_integer dataMatSize, SP_integer dataMatRowNum,
             float **codesMatArr, SP_integer *codesMatColNum, SP_integer *codesMatRowNum)
 {
-    // convert the Prolog arrays to arma::mat
+    // convert the Prolog array to arma::mat
     mat data = convertArrayToMat(dataMatArr, dataMatSize, dataMatRowNum);
 
     // create the ReturnMat
     mat codesReturnMat;
 
+
     sparseCoding.Encode(data, codesReturnMat);
     
+
     // return the Matrix
     returnMatrixInformation(codesReturnMat, codesMatArr, codesMatColNum, codesMatRowNum);
 }
@@ -80,8 +83,9 @@ void encode(float *dataMatArr, SP_integer dataMatSize, SP_integer dataMatRowNum,
 // description: 
 double train(float *dataMatArr, SP_integer dataMatSize, SP_integer dataMatRowNum)
 {
-    // convert the Prolog arrays to arma::mat
+    // convert the Prolog array to arma::mat
     mat data = convertArrayToMat(dataMatArr, dataMatSize, dataMatRowNum);
 
+
     return sparseCoding.Train(data, RandomInitializer());
 }
\ No newline at end of file