diff --git a/src/methods/ada_boost/ada_boost.cpp b/src/methods/ada_boost/ada_boost.cpp
index 2e6b31e56a40be2f7bb340c8f6f63b511e3be224..7b2fad5ababda2254337682e634fdcf5590b88c6 100644
--- a/src/methods/ada_boost/ada_boost.cpp
+++ b/src/methods/ada_boost/ada_boost.cpp
@@ -87,7 +87,7 @@ void initModelNoTraining(double tol = 1e-6, char const *learner = "perceptron")
 //			arma::mat & 			probabilities
 // output: 
 // description: 
-void classifyWithProb(float *testMatArr, SP_integer testMatSize, SP_integer testMatRowNum, float **predLabelsArr, SP_integer *predLabelsArrSize, float **probMatArr, SP_integer *probMatColNum, SP_integer *probMatRowNum)
+void classify(float *testMatArr, SP_integer testMatSize, SP_integer testMatRowNum, float **predLabelsArr, SP_integer *predLabelsArrSize, float **probMatArr, SP_integer *probMatColNum, SP_integer *probMatRowNum)
 {
 	// convert the Prolog arrays to arma::mat
 	mat data = convertArrayToMat(testMatArr, testMatSize, testMatRowNum);
@@ -121,37 +121,6 @@ void classifyWithProb(float *testMatArr, SP_integer testMatSize, SP_integer test
 	*probMatArr = convertToArray(probMat);
 }
 
-// TODO: 
-// input: 	const MatType & 		test,
-//			arma::Row< size_t > & 	predictedLabels
-// output: 
-// description: 
-void classifyNoProb(float *testMatArr, SP_integer testMatSize, SP_integer testMatRowNum, float **predLabelsArr, SP_integer *predLabelsArrSize)
-{
-	// convert the Prolog arrays to arma::mat
-	mat data = convertArrayToMat(testMatArr, testMatSize, testMatRowNum);
-
-	// get the ReturnVector
-	Row< size_t > predLabelsVector;
-
-	if(usingPerceptron) 
-	{
-		adaBoostPerceptron.Classify(data, predLabelsVector);
-	}
-	else
-	{
-		adaBoostDecisionStump.Classify(data, predLabelsVector);
-	}
-
-	vec convPredLabels = conv_to<vec>::from(predLabelsVector);
-
-	// return the Vector lenght
-	*predLabelsArrSize = convPredLabels.n_elem;
-
-	// return the Vector as Array
-	*predLabelsArr = convertToArray(convPredLabels);
-}
-
 // TODO: 
 // input: 
 // output: 	size_t 	classesNum
diff --git a/src/methods/ada_boost/ada_boost.pl b/src/methods/ada_boost/ada_boost.pl
index 4d9faa9194ff66ab5392be054865e13014666ba5..3d9e822cca3237107af5435f7bcfb99e50e36390 100644
--- a/src/methods/ada_boost/ada_boost.pl
+++ b/src/methods/ada_boost/ada_boost.pl
@@ -1,7 +1,7 @@
+
 :- module(ada_boost, [  initModelWithTraining/9, 
                         initModelNoTraining/2, 
-                        classifyWithProb/8, 
-                        classifyNoProb/5, 
+                        classify/8, 
                         numClasses/1, 
                         getTolerance/1, 
                         modifyTolerance/1, 
@@ -17,83 +17,122 @@
 
 %% type definitions for the float array
 :- foreign_type
-       float32          = float_32,
-       float_array      = array(float32).
+        float32          = float_32,
+        float_array      = array(float32).
 
 %% definitions for the connected function
 
-%% TODO: 
+
 %% --Input--
+%%            mat    data,
+%%            vec    labels,
+%%            int    numClasses,
+%%            string learner       => “decision_stump”, “perceptron”,
+%%            int    iterations    => 100,
+%%            float  tolerance     => 1e-6
 %%
 %% --Output--
 %%
 %% --Description--
-foreign(initModelWithTraining, c, initModelWithTraining(+pointer(float_array), +integer, +integer, +pointer(float_array), +integer, +integer, +string, +integer , +float32)).
-
-%% TODO: 
-%% --Input--
+%%            Needs to be called first before all other predicates exept initModelNoTraining!
 %%
-%% --Output--
+%%            Initiates the Adaboostmodel and trains it, so classify can be used immediately.
 %%
-%% --Description--
-foreign(initModelNoTraining, c, initModelNoTraining(+float32, +string)).
+foreign(initModelWithTraining, c, initModelWithTraining(+pointer(float_array), +integer, +integer, 
+                                                        +pointer(float_array), +integer, 
+                                                        +integer, 
+                                                        +string, 
+                                                        +integer , +float32)).
+
 
-%% TODO: 
 %% --Input--
+%%            string learner       => “decision_stump”, “perceptron”,
+%%            float  tolerance     => 1e-6
 %%
 %% --Output--
 %%
 %% --Description--
-foreign(classifyWithProb, c, classifyWithProb(+pointer(float_array), +integer, +integer, -pointer(float_array), -integer, -pointer(float_array), -integer, -integer)).
+%%            Needs to be called first before all other predicates exept initModelWithTraining!
+%%            Initiates the Adaboostmodel but doesn’t train it, so train has to be used first before classify can be used.
+%%
+foreign(initModelNoTraining, c, initModelNoTraining(+float32, +string)).
+
 
-%% TODO: 
 %% --Input--
+%%            mat    test,
 %%
 %% --Output--
+%%            vec    predictions,
+%%            mat    probabilities
 %%
 %% --Description--
-foreign(classifyNoProb, c, classifyNoProb(+pointer(float_array), +integer, +integer, -pointer(float_array), -integer)).
+%%            Classifies the given data into the number of classes the model was trained for.
+%%
+foreign(classify, c, classify(     +pointer(float_array), +integer, +integer, 
+                                   -pointer(float_array), -integer, 
+                                   -pointer(float_array), -integer, -integer)).
+
 
-%% TODO: 
 %% --Input--
 %%
 %% --Output--
+%%            float  classesNum
 %%
 %% --Description--
+%%            Returns the amount of classes defined in the model for classification.
+%%
 foreign(numClasses, c, numClasses([-integer])).
 
-%% TODO: 
+
 %% --Input--
 %%
 %% --Output--
+%%            float  tolerance
 %%
 %% --Description--
+%%            Returns the tolerance of the model.
+%%
 foreign(getTolerance, c, getTolerance([-float32])).
 
-%% TODO: 
+
 %% --Input--
+%%            float  newTolerance
 %%
 %% --Output--
 %%
 %% --Description--
+%%            Modifies the tolerance of the model.
+%%
 foreign(modifyTolerance, c, modifyTolerance(+float32)).
 
-%% TODO: 
+
 %% --Input--
+%%            mat    data,
+%%            vec    labels,
+%%            int    numClasses,
+%%            string learner       => “decision_stump”, “perceptron”,
+%%            int    iterations    => 100,
+%%            float  tolerance     => 1e-6
 %%
 %% --Output--
+%%            float  double upper bound training error
 %%
 %% --Description--
-foreign(train, c, train(+pointer(float_array), +integer, +integer, +pointer(float_array), +integer, +integer, +string, +integer , +float32, [-float32])).
+foreign(train, c, train(    +pointer(float_array), +integer, +integer, 
+                            +pointer(float_array), +integer, 
+                            +integer, 
+                            +string, 
+                            +integer , +float32, 
+                            [-float32])).
+
 
 %% Defines the functions that get connected from main.cpp
 foreign_resource(ada_boost, [   initModelWithTraining, 
                                 initModelNoTraining, 
-                                classifyWithProb, 
-                                classifyNoProb, 
+                                classify, 
                                 numClasses, 
                                 getTolerance, 
                                 modifyTolerance, 
                                 train]).
 
-:- load_foreign_resource(ada_boost).
\ No newline at end of file
+:- load_foreign_resource(ada_boost).
diff --git a/src/methods/approx_kfn/approx_kfn.pl b/src/methods/approx_kfn/approx_kfn.pl
index e671edff4c5c5cb7ceb946fe24705e8718586310..e426b096e133e6f5bbddcb5798e24597c97586a6 100644
--- a/src/methods/approx_kfn/approx_kfn.pl
+++ b/src/methods/approx_kfn/approx_kfn.pl
@@ -1,3 +1,4 @@
+
 :- module(approx_kfn, [ initDrusillaModelNoTrain/2,
                         initDrusillaModelWithTrain/5,
                         searchDrusilla/10,
@@ -22,7 +23,7 @@
 
 %% definitions for the connected function
 
-%% TODO: 
+
 %% --Input--
 %%              int     l,
 %%              int     m
@@ -30,9 +31,12 @@
 %% --Output--
 %%
 %% --Description--
+%%              Initiates the DrusillaSearch Model but doesn’t train it.
+%%              trainDrusilla has to be used before searchDrusilla can be used.
+%%
 foreign(initDrusillaModelNoTrain, c, initDrusillaModelNoTrain(+integer, +integer)).
 
-%% TODO: 
+
 %% --Input--
 %%              mat     referenceSet,
 %%              int     l,
@@ -41,9 +45,13 @@ foreign(initDrusillaModelNoTrain, c, initDrusillaModelNoTrain(+integer, +integer
 %% --Output--
 %%
 %% --Description--
-foreign(initDrusillaModelWithTrain, c, initDrusillaModelWithTrain(+pointer(float_array), +integer, +integer, +integer, +integer)).
+%%              Initiates the DrusillaSearch Model and trains it with the given reference Set.
+%%              Afterwards searchDrusilla can be used.
+%%
+foreign(initDrusillaModelWithTrain, c, initDrusillaModelWithTrain(      +pointer(float_array), +integer, +integer, 
+                                                                        +integer, +integer)).
+
 
-%% TODO: 
 %% --Input--
 %%              mat     querySet,
 %%              int     k
@@ -53,9 +61,14 @@ foreign(initDrusillaModelWithTrain, c, initDrusillaModelWithTrain(+pointer(float
 %%              mat     distances
 %%
 %% --Description--
-foreign(searchDrusilla, c, searchDrusilla(+pointer(float_array), +integer, +integer, +integer, -pointer(float_array), -integer, -integer, -pointer(float_array), -integer, -integer)).
+%%              
+%%
+foreign(searchDrusilla, c, searchDrusilla(      +pointer(float_array), +integer, +integer, 
+                                                +integer, 
+                                                -pointer(float_array), -integer, -integer, 
+                                                -pointer(float_array), -integer, -integer)).
+
 
-%% TODO: 
 %% --Input--
 %%              mat     referenceSet,
 %%              int     l               => 0,
@@ -64,9 +77,12 @@ foreign(searchDrusilla, c, searchDrusilla(+pointer(float_array), +integer, +inte
 %% --Output--
 %%
 %% --Description--
-foreign(trainDrusilla, c, trainDrusilla(+pointer(float_array), +integer, +integer, +integer, +integer)).
+%%              Trains the DrusillaSearch Model with the given reference Set.
+%%
+foreign(trainDrusilla, c, trainDrusilla(+pointer(float_array), +integer, +integer, 
+                                        +integer, +integer)).
+
 
-%% TODO: 
 %% --Input--
 %%              int     l,
 %%              int     m
@@ -74,9 +90,12 @@ foreign(trainDrusilla, c, trainDrusilla(+pointer(float_array), +integer, +intege
 %% --Output--
 %%
 %% --Description--
+%%              Initiates the QDAFNSearch Model but doesn’t train it.
+%%              trainQDAFN has to be used before searchQDAFN can be used.
+%%
 foreign(initQDAFNModelNoTrain, c, initQDAFNModelNoTrain(+integer, +integer)).
 
-%% TODO: 
+
 %% --Input--
 %%              mat     referenceSet,
 %%              int     l,
@@ -85,9 +104,13 @@ foreign(initQDAFNModelNoTrain, c, initQDAFNModelNoTrain(+integer, +integer)).
 %% --Output--
 %%
 %% --Description--
-foreign(initQDAFNModelWithTrain, c, initQDAFNModelWithTrain(+pointer(float_array), +integer, +integer, +integer, +integer)).
+%%              Initiates the QDAFNSearch Model and trains it with the given reference Set.
+%%              Afterwards searchQDAFN can be used.
+%%
+foreign(initQDAFNModelWithTrain, c, initQDAFNModelWithTrain(    +pointer(float_array), +integer, +integer, 
+                                                                +integer, +integer)).
+
 
-%% TODO: 
 %% --Input--
 %%              mat     querySet,
 %%              int     k
@@ -97,7 +120,12 @@ foreign(initQDAFNModelWithTrain, c, initQDAFNModelWithTrain(+pointer(float_array
 %%              mat     distances
 %%
 %% --Description--
-foreign(searchQDAFN, c, searchQDAFN(+pointer(float_array), +integer, +integer, +integer, -pointer(float_array), -integer, -integer, -pointer(float_array), -integer, -integer)).
+%%
+%%              
+foreign(searchQDAFN, c, searchQDAFN(    +pointer(float_array), +integer, +integer, 
+                                        +integer, 
+                                        -pointer(float_array), -integer, -integer, 
+                                        -pointer(float_array), -integer, -integer)).
 
 %% TODO: 
 %% --Input--
@@ -108,7 +136,10 @@ foreign(searchQDAFN, c, searchQDAFN(+pointer(float_array), +integer, +integer, +
 %% --Output--
 %%
 %% --Description--
-foreign(trainQDAFN, c, trainQDAFN(+pointer(float_array), +integer, +integer, +integer, +integer)).
+%%              Trains the QDAFNSearch Model with the given reference Set.
+%%
+foreign(trainQDAFN, c, trainQDAFN(      +pointer(float_array), +integer, +integer, 
+                                        +integer, +integer)).
 
 
 %% Defines the functions that get connected from main.cpp
@@ -121,4 +152,4 @@ foreign_resource(approx_kfn, [  initDrusillaModelNoTrain,
                                 searchQDAFN,
                                 trainQDAFN]).
 
-:- load_foreign_resource(approx_kfn).
\ No newline at end of file
+:- load_foreign_resource(approx_kfn).
diff --git a/src/methods/dbscan/dbscan.pl b/src/methods/dbscan/dbscan.pl
index 473989169eb5a654bbae3f6c7d0965eb0829434a..271dff8c9aa8d1bd3a871df682c75f6ff2c65841 100644
--- a/src/methods/dbscan/dbscan.pl
+++ b/src/methods/dbscan/dbscan.pl
@@ -10,8 +10,8 @@
 
 %% type definitions for the float array
 :- foreign_type
-       float32          = float_32,
-       float_array      = array(float32).
+        float32          = float_32,
+        float_array      = array(float32).
 
 %% definitions for the connected function
 
@@ -29,11 +29,16 @@
 %%              mat     centroids       => cent(float_array), centColNum, centRowNum
 %%
 %% --Description--
-foreign(dbscan, c, dbscan(+float32, +integer, +integer, +string, +string, +pointer(float_array), +integer, +integer,
-                                        -pointer(float_array), -integer, -pointer(float_array), -integer, -integer)).
+%%            This is a one predicate model where you configure the model with the input parameters and get returned the results in the same predicate.
+%%
+foreign(dbscan, c, dbscan(  +float32, +integer, +integer, 
+                            +string, +string, 
+                            +pointer(float_array), +integer, +integer,
+                            -pointer(float_array), -integer, 
+                            -pointer(float_array), -integer, -integer)).
 
 
 %% Defines the functions that get connected from main.cpp
 foreign_resource(dbscan, [dbscan]).
 
-:- load_foreign_resource(dbscan).
\ No newline at end of file
+:- load_foreign_resource(dbscan).
diff --git a/src/methods/decision_tree/decision_tree.pl b/src/methods/decision_tree/decision_tree.pl
index bef9cf2cdd9b67f9926e04b771cd067391a3f1e4..c053b099e1869eb9a7f77ea9b0957bffb9d9ac4f 100644
--- a/src/methods/decision_tree/decision_tree.pl
+++ b/src/methods/decision_tree/decision_tree.pl
@@ -1,3 +1,4 @@
+
 :- module(decision_tree, [      initModel/9,
                                 classifyPoint/5,
                                 classifyMatrix/7,
@@ -18,7 +19,7 @@
 
 %% definitions for the connected function
 
-%% TODO: 
+
 %% --Input--
 %%              mat     dataset,
 %%              vec     labels,
@@ -30,11 +31,14 @@
 %% --Output--
 %%
 %% --Description--
+%%              Construct the decision tree on the given data and labels, assuming that the data is all of the numeric type.
+%%              Setting minimumLeafSize and minimumGainSplit too small may cause the tree to overfit, but setting them too large may cause it to underfit.
+%%
 foreign(initModel, c, initModel(        +pointer(float_array), +integer, +integer,
                                         +pointer(float_array), +integer,
                                         +integer, +integer, +float32, +integer)).
 
-%% TODO: 
+
 %% --Input--
 %%              vec     point
 %%
@@ -43,11 +47,13 @@ foreign(initModel, c, initModel(        +pointer(float_array), +integer, +intege
 %%              vec     probabilities
 %%
 %% --Description--
+%%              Classify the given point and also return estimates of the probability for each class in the given vector.
+%%
 foreign(classifyPoint, c, classifyPoint(+pointer(float_array), +integer,
                                         -integer,
                                         -pointer(float_array), -integer)).
 
-%% TODO: 
+
 %% --Input--
 %%              mat     data
 %%
@@ -56,11 +62,13 @@ foreign(classifyPoint, c, classifyPoint(+pointer(float_array), +integer,
 %%              vec     probabilities
 %%
 %% --Description--
+%%              Classify the given points and also return estimates of the probabilities for each class in the given matrix.
+%%
 foreign(classifyMatrix, c, classifyMatrix(      +pointer(float_array), +integer, +integer,
                                                 -pointer(float_array), -integer,
                                                 -pointer(float_array), -integer)).
 
-%% TODO: 
+
 %% --Input--
 %%              mat     data,
 %%              vec     labels,
@@ -73,6 +81,9 @@ foreign(classifyMatrix, c, classifyMatrix(      +pointer(float_array), +integer,
 %%              float32 final entropy of decision tree
 %%
 %% --Description--
+%%              Train the decision tree on the given data, assuming that all dimensions are numeric.
+%%              This will overwrite the given model. Setting minimumLeafSize and minimumGainSplit too small may cause the tree to overfit, but setting them too large may cause it to underfit.
+%%
 foreign(train, c, train(+pointer(float_array), +integer, +integer,
                         +pointer(float_array), +integer,
                         +integer, +integer, +float32, +integer,
@@ -85,4 +96,4 @@ foreign_resource(decision_tree, [       initModel,
                                         classifyMatrix,
                                         train]).
 
-:- load_foreign_resource(decision_tree).
\ No newline at end of file
+:- load_foreign_resource(decision_tree).
diff --git a/src/methods/emst/emst.pl b/src/methods/emst/emst.pl
index 2cc37b23f94964128c26636980d0185eede7230e..8975aea4d2ae2defe166b4ae2c3e263294421798 100644
--- a/src/methods/emst/emst.pl
+++ b/src/methods/emst/emst.pl
@@ -1,3 +1,4 @@
+
 :- module(emst, [emst/7]).
 
 %% requirements of library(struct)
@@ -17,30 +18,21 @@
 
 %% TODO: 
 %% --Input--
+%%              mat     dataset,
+%%              bool    naive           => (1)true / (0)false
 %%
 %% --Output--
+%%              mat     result
 %%
 %% --Description--
-foreign(emst, c, emst(+pointer(float_array), +integer, +integer, +integer, -pointer(float_array), -integer, -integer)).
-
-
-
-%% +integer , +float32, +string
-%% [-integer] , [-float32], [-string]
-
-%% matrix input
-%% +pointer(float_array), +integer, +integer
-
-%% array input
-%% +pointer(float_array), +integer
-
-%% matrix return
-%% -pointer(float_array), -integer, -integer
+%%              Performs the MST calculation using the Dual-Tree Boruvka algorithm.
+%%
+foreign(emst, c, emst(  +pointer(float_array), +integer, +integer, 
+                        +integer, 
+                        -pointer(float_array), -integer, -integer)).
 
-%% array return
-%% -pointer(float_array), -integer
 
 %% Defines the functions that get connected from main.cpp
 foreign_resource(emst, [emst]).
 
-:- load_foreign_resource(emst).
\ No newline at end of file
+:- load_foreign_resource(emst).
diff --git a/src/methods/fastmks/fastmks.pl b/src/methods/fastmks/fastmks.pl
index 7e95f7a4d1689bebea16a410b227ca93f19a3514..134fcaaddfe6fbe7bacb74f0134c387bb7569896 100644
--- a/src/methods/fastmks/fastmks.pl
+++ b/src/methods/fastmks/fastmks.pl
@@ -1,3 +1,4 @@
+
 :- module(fastmks, [    initModel/11,
                         searchWithQuery/11,
                         searchNoQuery/7]).
@@ -17,7 +18,7 @@
 
 %% definitions for the connected function
 
-%% TODO: 
+
 %% --Input--
 %%              mat     referenceData,
 %%              string  kernel          "linear", "polynomial", "cosine", "gaussian", "epanechnikov", "triangular", "hyptan"
@@ -32,9 +33,15 @@
 %% --Output--
 %%
 %% --Description--
-foreign(initModel, c, initModel(+pointer(float_array), +integer, +integer, +string, +float32, +float32, +float32, +float32, +integer, +integer, +float32)).
+%%              Initializes the model on the given reference set.
+%%
+foreign(initModel, c, initModel(+pointer(float_array), +integer, +integer, 
+                                +string, 
+                                +float32, +float32, +float32, +float32, 
+                                +integer, +integer, 
+                                +float32)).
+
 
-%% TODO: 
 %% --Input--
 %%              mat     querySet,
 %%              int     k,
@@ -45,9 +52,15 @@ foreign(initModel, c, initModel(+pointer(float_array), +integer, +integer, +stri
 %%              mat     kernels
 %%
 %% --Description--
-foreign(searchWithQuery, c, searchWithQuery(+pointer(float_array), +integer, +integer, +integer, -pointer(float_array), -integer, -integer, -pointer(float_array), -integer, -integer, +float32)).
+%%              Search with a different query set.
+%%
+foreign(searchWithQuery, c, searchWithQuery(    +pointer(float_array), +integer, +integer, 
+                                                +integer, 
+                                                -pointer(float_array), -integer, -integer, 
+                                                -pointer(float_array), -integer, -integer, 
+                                                +float32)).
+
 
-%% TODO: 
 %% --Input--
 %%              int     k
 %%
@@ -56,7 +69,11 @@ foreign(searchWithQuery, c, searchWithQuery(+pointer(float_array), +integer, +in
 %%              mat     kernels
 %%
 %% --Description--
-foreign(searchNoQuery, c, searchNoQuery(+integer, -pointer(float_array), -integer, -integer, -pointer(float_array), -integer, -integer)).
+%%              Search with the reference set as the query set.
+%%
+foreign(searchNoQuery, c, searchNoQuery(+integer, 
+                                        -pointer(float_array), -integer, -integer, 
+                                        -pointer(float_array), -integer, -integer)).
 
 
 %% Defines the functions that get connected from main.cpp
@@ -64,4 +81,4 @@ foreign_resource(fastmks, [     initModel,
                                 searchWithQuery,
                                 searchNoQuery]).
 
-:- load_foreign_resource(fastmks).
\ No newline at end of file
+:- load_foreign_resource(fastmks).
diff --git a/src/methods/hoeffding_tree/hoeffding_tree.cpp b/src/methods/hoeffding_tree/hoeffding_tree.cpp
index 1d1cfc472c3e5db143ec7cc0f7e6928d2edc5f74..1a443e3add7933fa3d0efd7546547f40202bdcf3 100644
--- a/src/methods/hoeffding_tree/hoeffding_tree.cpp
+++ b/src/methods/hoeffding_tree/hoeffding_tree.cpp
@@ -105,4 +105,4 @@ void train(float *dataMatArr, SP_integer dataMatSize, SP_integer dataMatRowNum,
     Row< size_t > labelsVector = convertArrayToVec(labelsArr, labelsArrSize);
 
     hoeffdingTreeObj.Train(data, labelsVector, (batchTraining == 1));
-}
\ No newline at end of file
+}
diff --git a/src/methods/hoeffding_tree/hoeffding_tree.pl b/src/methods/hoeffding_tree/hoeffding_tree.pl
index 3836ad65bf16f118e039b009690ad77e1e3c8ff4..01b525cab42a33c69c93ba3943bddfb807ae7901 100644
--- a/src/methods/hoeffding_tree/hoeffding_tree.pl
+++ b/src/methods/hoeffding_tree/hoeffding_tree.pl
@@ -1,3 +1,4 @@
+
 :- module(hoeffding_tree, [     initAndBuildModel/14,
                                 classify/7,
                                 train/6]).
@@ -17,7 +18,7 @@
 
 %% definitions for the connected function
 
-%% TODO: 
+
 %% --Input--
 %%              string  treeType                => "gini-hoeffding", "gini-binary", "info-hoeffding", "info-binary",
 %%              mat     dataset,
@@ -34,12 +35,15 @@
 %% --Output--
 %%
 %% --Description--
+%%              Construct the Hoeffding tree with the given parameters and given training data.
+%%              The tree may be trained either in batch mode (which looks at all points before splitting, and propagates these points to the created children for further training), or in streaming mode, where each point is only considered once. (In general, batch mode will give better-performing trees, but will have higher memory and runtime costs for the same dataset.)
+%%
 foreign(initAndBuildModel, c, initAndBuildModel(+string,
                                                 +pointer(float_array), +integer, +integer,
                                                 +pointer(float_array), +integer,
                                                 +integer, +integer, +float32, +integer, +integer, +integer, +integer, +integer)).
 
-%% TODO: 
+
 %% --Input--
 %%              mat     data
 %%
@@ -48,11 +52,14 @@ foreign(initAndBuildModel, c, initAndBuildModel(+string,
 %%              vec     probabilities
 %%
 %% --Description--
+%%              Classify the given points, using this node and the entire (sub)tree beneath it.
+%%              The predicted labels for each point are returned, as well as an estimate of the probability that the prediction is correct for each point. This estimate is simply the MajorityProbability for the leaf that each point bins to.
+%%
 foreign(classify, c, classify(  +pointer(float_array), +integer, +integer,
                                 -pointer(float_array), -integer,
                                 -pointer(float_array), -integer)).
 
-%% TODO: 
+
 %% --Input--
 %%              mat     data,
 %%              vec     labels,
@@ -61,6 +68,9 @@ foreign(classify, c, classify(  +pointer(float_array), +integer, +integer,
 %% --Output--
 %%
 %% --Description--
+%%              Train in streaming mode on the given dataset.
+%%              This takes one pass. Be sure that initAndBuildModel/14 has been called first!
+%%
 foreign(train, c, train(+pointer(float_array), +integer, +integer,
                         +pointer(float_array), +integer,
                         +integer)).
@@ -71,4 +81,4 @@ foreign_resource(hoeffding_tree, [      initAndBuildModel,
                                         classify,
                                         train]).
 
-:- load_foreign_resource(hoeffding_tree).
\ No newline at end of file
+:- load_foreign_resource(hoeffding_tree).
diff --git a/src/methods/kde/kde.pl b/src/methods/kde/kde.pl
index 082c26ea28e74203ed701e7696590f9d1e7a6059..6508c8e32539fb12312d98f891cc88e96ef55159 100644
--- a/src/methods/kde/kde.pl
+++ b/src/methods/kde/kde.pl
@@ -1,3 +1,4 @@
+
 :- module(kde, [        initAndBuildModel/14,
                         evaluateWithQuery/5,
                         evaluateNoQuery/2]).
@@ -18,7 +19,6 @@
 %% definitions for the connected function
 
 
-%% TODO: 
 %% --Input--
 %%              float32 bandwidth               => 1.0,
 %%              float32 relError                => 0.05,
@@ -36,9 +36,15 @@
 %% --Output--
 %%
 %% --Description--
-foreign(initAndBuildModel, c, initAndBuildModel(+float32, +float32, +float32, +string, +string, +string, +integer, +float32, +integer, +float32, +float32, +pointer(float_array), +integer, +integer)).
+%%              Build the KDE model with the given parameters and then trains it with the given reference data.
+%%
+foreign(initAndBuildModel, c, initAndBuildModel(+float32, +float32, +float32, 
+                                                +string, +string, +string, 
+                                                +integer, 
+                                                +float32, +integer, +float32, +float32,
+                                                +pointer(float_array), +integer, +integer)).
+
 
-%% TODO: 
 %% --Input--
 %%              mat     querySet
 %%
@@ -46,15 +52,23 @@ foreign(initAndBuildModel, c, initAndBuildModel(+float32, +float32, +float32, +s
 %%              vec     estimations
 %%
 %% --Description--
-foreign(evaluateWithQuery, c, evaluateWithQuery(+pointer(float_array), +integer, +integer, -pointer(float_array), -integer)).
+%%              Perform kernel density estimation on the given query set.
+%%              initAndBuildModel/14 has to be called before.
+%%
+foreign(evaluateWithQuery, c, evaluateWithQuery(+pointer(float_array), +integer, +integer, 
+                                                -pointer(float_array), -integer)).
+
 
-%% TODO: 
 %% --Input--
 %%
 %% --Output--
 %%              vec     estimations
 %%
 %% --Description--
+%%              Perform kernel density estimation on the reference set.
+%%              If possible, it returns normalized estimations.
+%%              initAndBuildModel/14 has to be called before.
+%%
 foreign(evaluateNoQuery, c, evaluateNoQuery(-pointer(float_array), -integer)).
 
 
@@ -63,4 +77,4 @@ foreign_resource(kde, [ initAndBuildModel,
                         evaluateWithQuery,
                         evaluateNoQuery]).
 
-:- load_foreign_resource(kde).
\ No newline at end of file
+:- load_foreign_resource(kde).
diff --git a/src/methods/kernel_pca/kernel_pca.pl b/src/methods/kernel_pca/kernel_pca.pl
index 55e8a944c39f3156551c240c69de9407fc845a3b..da2d6a42290517964c29151520525af56514e9fd 100644
--- a/src/methods/kernel_pca/kernel_pca.pl
+++ b/src/methods/kernel_pca/kernel_pca.pl
@@ -1,3 +1,4 @@
+
 :- module(kernel_pca, [kernel_pca/20]).
 
 %% requirements of library(struct)
@@ -15,26 +16,28 @@
 
 %% definitions for the connected function
 
-%% TODO: 
+
 %% --Input--
-%%              string  kernel          "advb","agbadf",
-%%              bool    name            => (1)true / (0)false,
-%%              bool    name            => (1)true / (0)false,
-%%              string  nystroemMethod  "kmeans", "ordered", "random",
-%%              float32 degree          needed by polynomial,
-%%              float32 offset          needed by polynomial, hyptan,
-%%              float32 bandwidth       needed by gaussian, epanechnikov, laplacian,
-%%              float32 scale           needed by hyptan,
+%%              string  kernel                  "advb","agbadf",
+%%              bool    centerTranformedData    => (1)true / (0)false,
+%%              bool    useNystoem              => (1)true / (0)false,
+%%              string  nystroemMethod          "kmeans", "ordered", "random",
+%%              float32 degree                  needed by polynomial,
+%%              float32 offset                  needed by polynomial, hyptan,
+%%              float32 bandwidth               needed by gaussian, epanechnikov, laplacian,
+%%              float32 scale                   needed by hyptan,
 %%              mat     data
 %%
 %% --Output--
 %%              mat     transformedData,
 %%              vec     eigenValues,
 %%              mat     eigenVectores,
-%%              int     newDimension
+%%              int     ""newDimension""
 %%
 %% --Description--
-foreign(kernel_pca, c, kernel_pca(+string, +integer, +integer, +string,
+%%              This program performs Kernel Principal Components Analysis (KPCA) on the specified dataset with the specified kernel. This will transform the data onto the kernel principal components, and optionally reduce the dimensionality by ignoring the kernel principal components with the smallest eigenvalues.
+%%
+foreign(kernel_pca, c, kernel_pca(      +string, +integer, +integer, +string,
                                         +float32, +float32, +float32, +float32,
                                         +pointer(float_array), +integer, +integer,
                                         -pointer(float_array), -integer, -integer,
@@ -46,4 +49,4 @@ foreign(kernel_pca, c, kernel_pca(+string, +integer, +integer, +string,
 %% Defines the functions that get connected from main.cpp
 foreign_resource(kernel_pca, [kernel_pca]).
 
-:- load_foreign_resource(kernel_pca).
\ No newline at end of file
+:- load_foreign_resource(kernel_pca).