diff --git a/cmake-build-debug/CMakeFiles/DAPPLE.dir/CXX.includecache b/cmake-build-debug/CMakeFiles/DAPPLE.dir/CXX.includecache
index 9ee65a51b794f25e15b57d5f3565be0d59cdd0a2..f75641bc887bdb64e332a41744709a2c1fe30fa4 100644
--- a/cmake-build-debug/CMakeFiles/DAPPLE.dir/CXX.includecache
+++ b/cmake-build-debug/CMakeFiles/DAPPLE.dir/CXX.includecache
@@ -72,6 +72,12 @@ DTPKC.h
 ../UTIL/math_util.hh
 /home/rania/CLionProjects/DAPPLE-2.0/UTIL/math_util.hh
 
+/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalExpo.h
+DTPKC.h
+/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/DTPKC.h
+../UTIL/math_util.hh
+/home/rania/CLionProjects/DAPPLE-2.0/UTIL/math_util.hh
+
 /home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalHBound.h
 DTPKC.h
 /home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/DTPKC.h
@@ -110,6 +116,12 @@ DTPKC.h
 ../UTIL/math_util.hh
 /home/rania/CLionProjects/DAPPLE-2.0/UTIL/math_util.hh
 
+/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalSqrt.h
+DTPKC.h
+/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/DTPKC.h
+EvalDiv.h
+/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalDiv.h
+
 /home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalStandardDiv.h
 DTPKC.h
 /home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/DTPKC.h
@@ -124,10 +136,6 @@ EvalSub.h
 DTPKC.h
 /home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/DTPKC.h
 
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalSub2.h
-DTPKC.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/DTPKC.h
-
 /home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalThreashold.h
 DTPKC.h
 /home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/DTPKC.h
@@ -144,38 +152,6 @@ DTPKC.h
 vector
 -
 
-/home/rania/CLionProjects/DAPPLE-2.0/LIB/config4cpp/include/config4cpp/Configuration.h
-namespace.h
-/home/rania/CLionProjects/DAPPLE-2.0/LIB/config4cpp/include/config4cpp/namespace.h
-ConfigurationException.h
-/home/rania/CLionProjects/DAPPLE-2.0/LIB/config4cpp/include/config4cpp/ConfigurationException.h
-StringBuffer.h
-/home/rania/CLionProjects/DAPPLE-2.0/LIB/config4cpp/include/config4cpp/StringBuffer.h
-StringVector.h
-/home/rania/CLionProjects/DAPPLE-2.0/LIB/config4cpp/include/config4cpp/StringVector.h
-stddef.h
--
-
-/home/rania/CLionProjects/DAPPLE-2.0/LIB/config4cpp/include/config4cpp/ConfigurationException.h
-namespace.h
-/home/rania/CLionProjects/DAPPLE-2.0/LIB/config4cpp/include/config4cpp/namespace.h
-string.h
--
-
-/home/rania/CLionProjects/DAPPLE-2.0/LIB/config4cpp/include/config4cpp/StringBuffer.h
-namespace.h
-/home/rania/CLionProjects/DAPPLE-2.0/LIB/config4cpp/include/config4cpp/namespace.h
-assert.h
--
-
-/home/rania/CLionProjects/DAPPLE-2.0/LIB/config4cpp/include/config4cpp/StringVector.h
-namespace.h
-/home/rania/CLionProjects/DAPPLE-2.0/LIB/config4cpp/include/config4cpp/namespace.h
-StringBuffer.h
-/home/rania/CLionProjects/DAPPLE-2.0/LIB/config4cpp/include/config4cpp/StringBuffer.h
-
-/home/rania/CLionProjects/DAPPLE-2.0/LIB/config4cpp/include/config4cpp/namespace.h
-
 /home/rania/CLionProjects/DAPPLE-2.0/ML/IO/DatasetReader.h
 fstream
 -
@@ -204,62 +180,6 @@ vector
 iostream
 -
 
-/home/rania/CLionProjects/DAPPLE-2.0/ML/LR/LR.h
-string
--
-fstream
--
-vector
--
-math.h
--
-stdlib.h
--
-iostream
--
-string.h
--
-netinet/in.h
--
-../IO/Record.h
-/home/rania/CLionProjects/DAPPLE-2.0/ML/IO/Record.h
-../IO/DatasetReader.h
-/home/rania/CLionProjects/DAPPLE-2.0/ML/IO/DatasetReader.h
-chrono
--
-
-/home/rania/CLionProjects/DAPPLE-2.0/ML/NB/NB_Classifier.h
-netinet/in.h
--
-../IO/DatasetReader.h
-/home/rania/CLionProjects/DAPPLE-2.0/ML/IO/DatasetReader.h
-../../UTIL/math_util.hh
-/home/rania/CLionProjects/DAPPLE-2.0/UTIL/math_util.hh
-Stats.h
-/home/rania/CLionProjects/DAPPLE-2.0/ML/NB/Stats.h
-math.h
-/home/rania/CLionProjects/DAPPLE-2.0/ML/NB/math.h
-
-/home/rania/CLionProjects/DAPPLE-2.0/ML/NB/Stats.h
-iostream
--
-map
--
-iterator
--
-../IO/Record.h
-/home/rania/CLionProjects/DAPPLE-2.0/ML/IO/Record.h
-gmpxx.h
--
-gmp.h
--
-../../UTIL/util_gmp_rand.h
-/home/rania/CLionProjects/DAPPLE-2.0/UTIL/util_gmp_rand.h
-../../UTIL/num_th_alg.hh
-/home/rania/CLionProjects/DAPPLE-2.0/UTIL/num_th_alg.hh
-../../UTIL/mpz_class.hh
-/home/rania/CLionProjects/DAPPLE-2.0/UTIL/mpz_class.hh
-
 /home/rania/CLionProjects/DAPPLE-2.0/ML/VFDT/Node.h
 ../IO/Record.h
 /home/rania/CLionProjects/DAPPLE-2.0/ML/IO/Record.h
@@ -306,165 +226,21 @@ Node.h
 math.h
 /home/rania/CLionProjects/DAPPLE-2.0/ML/VFDT/math.h
 
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/IO/PPDatasetReader.h
-PPRecord.h
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/IO/PPRecord.h
-fstream
--
-stdio.h
--
-string.h
--
-../../CRYPTO/SkeySwitch.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/SkeySwitch.h
-vector
--
-cstring
--
-
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/IO/PPRecord.h
-vector
--
-iostream
--
-../../CRYPTO/DTPKC.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/DTPKC.h
-
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/PPLR/PPLR_Classifier.h
-../IO/PPDatasetReader.h
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/IO/PPDatasetReader.h
-../../UTIL/math_util.hh
-/home/rania/CLionProjects/DAPPLE-2.0/UTIL/math_util.hh
-../../CRYPTO/EvalSigmoid.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalSigmoid.h
-../../CRYPTO/EvalDotProd.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalDotProd.h
-../../CRYPTO/EvalLrUpdate.h
+/home/rania/CLionProjects/DAPPLE-2.0/TEST/TESTBuildingBlocks.cpp
+TESTBuildingBlocks.h
+/home/rania/CLionProjects/DAPPLE-2.0/TEST/TESTBuildingBlocks.h
+../ML/VFDT/VFDT_Classifier.h
+/home/rania/CLionProjects/DAPPLE-2.0/ML/VFDT/VFDT_Classifier.h
+../CRYPTO/EvalThreashold.h
+/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalThreashold.h
+../CRYPTO/EvalLrUpdate.h
 /home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalLrUpdate.h
-../../CRYPTO/EvalSub2.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalSub2.h
-math.h
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/PPLR/math.h
-
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/PPNB/PPNB_Classifier.h
-../IO/PPDatasetReader.h
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/IO/PPDatasetReader.h
-../../UTIL/math_util.hh
-/home/rania/CLionProjects/DAPPLE-2.0/UTIL/math_util.hh
-PPStats.h
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/PPNB/PPStats.h
-math.h
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/PPNB/math.h
-
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/PPNB/PPStats.h
-iostream
--
-map
--
-iterator
--
-../IO/PPRecord.h
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/IO/PPRecord.h
-gmpxx.h
--
-gmp.h
--
-omp.h
--
-../../UTIL/util_gmp_rand.h
-/home/rania/CLionProjects/DAPPLE-2.0/UTIL/util_gmp_rand.h
-../../UTIL/num_th_alg.hh
-/home/rania/CLionProjects/DAPPLE-2.0/UTIL/num_th_alg.hh
-../../UTIL/mpz_class.hh
-/home/rania/CLionProjects/DAPPLE-2.0/UTIL/mpz_class.hh
-../../CRYPTO/DTPKC.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/DTPKC.h
-../../CRYPTO/EvalAdd.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalAdd.h
-../../CRYPTO/EvalMult.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalMult.h
-../../CRYPTO/EvalDiv100.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalDiv100.h
-../../CRYPTO/EvalProba.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalProba.h
-../../CRYPTO/EvalLog.h
+../CRYPTO/EvalLog.h
 /home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalLog.h
-
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/PPVFDT/PPNode.h
-../IO/PPRecord.h
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/IO/PPRecord.h
-PPNodeStats.h
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/PPVFDT/PPNodeStats.h
-PPNodeTest.h
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/PPVFDT/PPNodeTest.h
-
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/PPVFDT/PPNodeStats.h
-iostream
--
-map
--
-iterator
--
-../IO/PPRecord.h
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/IO/PPRecord.h
-gmpxx.h
--
-gmp.h
--
-../../UTIL/util_gmp_rand.h
-/home/rania/CLionProjects/DAPPLE-2.0/UTIL/util_gmp_rand.h
-../../UTIL/num_th_alg.hh
-/home/rania/CLionProjects/DAPPLE-2.0/UTIL/num_th_alg.hh
-../../UTIL/mpz_class.hh
-/home/rania/CLionProjects/DAPPLE-2.0/UTIL/mpz_class.hh
-../../CRYPTO/DTPKC.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/DTPKC.h
-../../CRYPTO/EvalAdd.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalAdd.h
-../../CRYPTO/EvalAddPow2.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalAddPow2.h
-
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/PPVFDT/PPNodeTest.h
-map
--
-../IO/PPRecord.h
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/IO/PPRecord.h
-../../CRYPTO/EvalCmp.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalCmp.h
-
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/PPVFDT/PPVFDT_Classifier.h
-netinet/in.h
--
-../IO/PPDatasetReader.h
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/IO/PPDatasetReader.h
-PPNode.h
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/PPVFDT/PPNode.h
-../../UTIL/math_util.hh
-/home/rania/CLionProjects/DAPPLE-2.0/UTIL/math_util.hh
-math.h
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/PPVFDT/math.h
-../../CRYPTO/DTPKC.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/DTPKC.h
-../../CRYPTO/EvalEntropy.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalEntropy.h
-../../CRYPTO/EvalHBound.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalHBound.h
-../../CRYPTO/EvalMult.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalMult.h
-../../CRYPTO/EvalAddPow2.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalAddPow2.h
-../../CRYPTO/EvalStandardDiv.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalStandardDiv.h
-../../CRYPTO/EvalDiv.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalDiv.h
-../../CRYPTO/EvalDiv100.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalDiv100.h
-../../CRYPTO/EvalAdd.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalAdd.h
-../../CRYPTO/EvalSub.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalSub.h
-../../CRYPTO/EvalThreashold.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalThreashold.h
+../CRYPTO/EvalSqrt.h
+/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalSqrt.h
+../CRYPTO/EvalExpo.h
+/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalExpo.h
 
 /home/rania/CLionProjects/DAPPLE-2.0/TEST/TESTBuildingBlocks.h
 iostream
@@ -504,122 +280,6 @@ iostream
 ../UTIL/num_th_alg.hh
 /home/rania/CLionProjects/DAPPLE-2.0/UTIL/num_th_alg.hh
 
-/home/rania/CLionProjects/DAPPLE-2.0/TEST/TESTElementaryOps.h
-iostream
--
-../CRYPTO/DTPKC.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/DTPKC.h
-../CRYPTO/EvalAdd.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalAdd.h
-../CRYPTO/EvalSub.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalSub.h
-../CRYPTO/EvalDiv.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalDiv.h
-../CRYPTO/EvalDiv100.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalDiv100.h
-../CRYPTO/EvalEntropy.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalEntropy.h
-../CRYPTO/EvalProba.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalProba.h
-../CRYPTO/EvalHBound.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalHBound.h
-../CRYPTO/SkeySwitch.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/SkeySwitch.h
-../CRYPTO/EvalCmp.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalCmp.h
-../CRYPTO/EvalMult.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalMult.h
-../CRYPTO/EvalAddPow2.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalAddPow2.h
-../CRYPTO/EvalStandardDiv.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalStandardDiv.h
-../CRYPTO/EvalSigmoid.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalSigmoid.h
-../CRYPTO/EvalDotProd.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalDotProd.h
-../UTIL/mpz_class.hh
-/home/rania/CLionProjects/DAPPLE-2.0/UTIL/mpz_class.hh
-../UTIL/num_th_alg.hh
-/home/rania/CLionProjects/DAPPLE-2.0/UTIL/num_th_alg.hh
-
-/home/rania/CLionProjects/DAPPLE-2.0/TEST/TESTpacking.h
-iostream
--
-../CRYPTO/DTPKC.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/DTPKC.h
-../CRYPTO/EvalAdd.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalAdd.h
-../CRYPTO/EvalSub.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalSub.h
-../CRYPTO/EvalDiv.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalDiv.h
-../CRYPTO/EvalDiv100.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalDiv100.h
-../CRYPTO/EvalEntropy.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalEntropy.h
-../CRYPTO/EvalProba.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalProba.h
-../CRYPTO/EvalHBound.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalHBound.h
-../CRYPTO/SkeySwitch.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/SkeySwitch.h
-../CRYPTO/EvalCmp.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalCmp.h
-../CRYPTO/EvalMult.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalMult.h
-../CRYPTO/EvalAddPow2.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalAddPow2.h
-../CRYPTO/EvalStandardDiv.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalStandardDiv.h
-../CRYPTO/EvalSigmoid.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalSigmoid.h
-../CRYPTO/EvalDotProd.h
-/home/rania/CLionProjects/DAPPLE-2.0/CRYPTO/EvalDotProd.h
-../UTIL/mpz_class.hh
-/home/rania/CLionProjects/DAPPLE-2.0/UTIL/mpz_class.hh
-../UTIL/num_th_alg.hh
-/home/rania/CLionProjects/DAPPLE-2.0/UTIL/num_th_alg.hh
-
-/home/rania/CLionProjects/DAPPLE-2.0/TEST/main.cpp
-../PPML/PPNB/PPNB_Classifier.h
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/PPNB/PPNB_Classifier.h
-../PPML/PPLR/PPLR_Classifier.h
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/PPLR/PPLR_Classifier.h
-../PPML/PPVFDT/PPVFDT_Classifier.h
-/home/rania/CLionProjects/DAPPLE-2.0/PPML/PPVFDT/PPVFDT_Classifier.h
-../ML/NB/NB_Classifier.h
-/home/rania/CLionProjects/DAPPLE-2.0/ML/NB/NB_Classifier.h
-../ML/VFDT/VFDT_Classifier.h
-/home/rania/CLionProjects/DAPPLE-2.0/ML/VFDT/VFDT_Classifier.h
-../LIB/config4cpp/include/config4cpp/Configuration.h
-/home/rania/CLionProjects/DAPPLE-2.0/LIB/config4cpp/include/config4cpp/Configuration.h
-TESTBuildingBlocks.h
-/home/rania/CLionProjects/DAPPLE-2.0/TEST/TESTBuildingBlocks.h
-TESTElementaryOps.h
-/home/rania/CLionProjects/DAPPLE-2.0/TEST/TESTElementaryOps.h
-TESTpacking.h
-/home/rania/CLionProjects/DAPPLE-2.0/TEST/TESTpacking.h
-../ML/LR/LR.h
-/home/rania/CLionProjects/DAPPLE-2.0/ML/LR/LR.h
-stdio.h
--
-stdlib.h
--
-string.h
--
-unistd.h
--
-sys/types.h
--
-sys/socket.h
--
-netinet/in.h
--
-arpa/inet.h
--
-mcheck.h
--
-
 /home/rania/CLionProjects/DAPPLE-2.0/UTIL/math_util.hh
 vector
 -