diff --git a/src/bf_linear.cpp b/src/bf_linear.cpp
index b9e73ce1391d611f3ff9a5a3cbaf0998ccee40e0..7f9fb1ae7e289ec652d58728c51c18ea8a0c0708 100644
--- a/src/bf_linear.cpp
+++ b/src/bf_linear.cpp
@@ -1,7 +1,9 @@
 #include <tadah/models/functions/basis_functions/bf_linear.h>
 
 BF_Linear::BF_Linear() {}
-BF_Linear::BF_Linear(const Config &c): BF_Base(c) {}
+BF_Linear::BF_Linear(const Config &c):
+  Function_Base(c),
+  BF_Base(c) {}
 std::string BF_Linear::get_label() const {
     return label;
 }
diff --git a/src/bf_polynomial2.cpp b/src/bf_polynomial2.cpp
index 387e3f1b7a2325b2d242b5e5173f160e5967959c..8b99fb3858db8de7afa41aeae39537f3fd5bfa69 100644
--- a/src/bf_polynomial2.cpp
+++ b/src/bf_polynomial2.cpp
@@ -1,7 +1,9 @@
 #include <tadah/models/functions/basis_functions/bf_polynomial2.h>
 
 BF_Polynomial2::BF_Polynomial2() {}
-BF_Polynomial2::BF_Polynomial2(const Config &c): BF_Base(c)
+BF_Polynomial2::BF_Polynomial2(const Config &c): 
+  Function_Base(c),
+  BF_Base(c)
 {}
 std::string BF_Polynomial2::get_label() const
 {
diff --git a/src/function_base.cpp b/src/function_base.cpp
index 748af7150e9b22136d23182491eb85b7471c575e..1e62fad5db0e55013b269839843759925ab34d95 100644
--- a/src/function_base.cpp
+++ b/src/function_base.cpp
@@ -8,10 +8,10 @@ Function_Base::Function_Base(const Config &c) {
 void Function_Base::set_verbose(int v) { verbose=v; }
 int Function_Base::get_verbose() { return verbose; }
 
-Function_Base::~Function_Base() {};
+Function_Base::~Function_Base() {}
 
-double Function_Base::operator() (const aed_type2& , const aed_type2& ) const {std::cout << "FB" <<std::endl; return 0.0; };
-aed_type2 Function_Base::derivative(const aed_type2& , const aed_type2& ) const { return aed_type2(); };
+double Function_Base::operator() (const aed_type2& , const aed_type2& ) const { return 0.0; }
+aed_type2 Function_Base::derivative(const aed_type2& , const aed_type2& ) const { return aed_type2(); }
 double Function_Base::prime(const aed_type2& , const aed_type2& ,
                             const aed_type2& ) const { return 0.0; }
-void Function_Base::set_basis(const Matrix ) {};
+void Function_Base::set_basis(const Matrix ) {}
diff --git a/src/kern_linear.cpp b/src/kern_linear.cpp
index ef7203811c10655e88d03e727c3c8f18584713c4..b30cd88143f1a8a734bdb8fbdfd74d2ec585a460 100644
--- a/src/kern_linear.cpp
+++ b/src/kern_linear.cpp
@@ -2,6 +2,7 @@
 
 Kern_Linear::Kern_Linear() {}
 Kern_Linear::Kern_Linear (const Config &c):
+    Function_Base(c),
     Kern_Base(c)
 {}
 double Kern_Linear::operator() (const aed_type2& b, const aed_type2& af) const
diff --git a/src/kern_lq.cpp b/src/kern_lq.cpp
index 7bb370ae41895f847b6b9e560cd2015ab2e67106..7c51e1ef2124844a285a8c0e7fbcaa67ead8a8d7 100644
--- a/src/kern_lq.cpp
+++ b/src/kern_lq.cpp
@@ -2,6 +2,7 @@
 
 Kern_LQ::Kern_LQ () {}
 Kern_LQ::Kern_LQ (const Config &c):
+    Function_Base(c),
     Kern_Base(c)
 {
     if (get_verbose()) std::cout << std::endl << label << std::endl;
diff --git a/src/kern_polynomial.cpp b/src/kern_polynomial.cpp
index 84a615b731177a19ccd84a9cdb900a3646c1dc0e..77a9911faf1d5bc6efddedefe1d7b7bf4cab7355 100644
--- a/src/kern_polynomial.cpp
+++ b/src/kern_polynomial.cpp
@@ -2,6 +2,7 @@
 
 Kern_Polynomial::Kern_Polynomial () {}
 Kern_Polynomial::Kern_Polynomial (const Config &config):
+    Function_Base(config),
     Kern_Base(config),
     d(config.get<int>("MPARAMS",0)),
     gamma(config.get<double>("MPARAMS",1)),
diff --git a/src/kern_quadratic.cpp b/src/kern_quadratic.cpp
index 3852a96e8a228f91bcd7a48134eb3e71d4a4e5d9..f22a8c0a5354a30e1d3dbc08dfa8097a6d860687 100644
--- a/src/kern_quadratic.cpp
+++ b/src/kern_quadratic.cpp
@@ -2,6 +2,7 @@
 
 Kern_Quadratic::Kern_Quadratic () {}
 Kern_Quadratic::Kern_Quadratic (const Config &c):
+    Function_Base(c),
     Kern_Base(c)
 {
     if (get_verbose()) std::cout << std::endl << label << std::endl;
diff --git a/src/kern_rbf.cpp b/src/kern_rbf.cpp
index 9a374ac8333d425a8c76b5e645f8b8a3ef5fdd2f..e80b5f22837faa34d7ece5b3d50fa6c6c6d10921 100644
--- a/src/kern_rbf.cpp
+++ b/src/kern_rbf.cpp
@@ -2,6 +2,7 @@
 
 Kern_RBF::Kern_RBF () {}
 Kern_RBF::Kern_RBF (const Config &c):
+    Function_Base(c),
     Kern_Base(c),
     sigma(c.get<double>("MPARAMS")),
     gamma(1.0/(2.0*sigma*sigma))
diff --git a/src/kern_sigmoid.cpp b/src/kern_sigmoid.cpp
index 1586030a5628a3bbd007a6015d06264451ed35af..de31d52b22a3bafd51ca5ce133baeebc7b5dd898 100644
--- a/src/kern_sigmoid.cpp
+++ b/src/kern_sigmoid.cpp
@@ -2,6 +2,7 @@
 
 Kern_Sigmoid::Kern_Sigmoid () {}
 Kern_Sigmoid::Kern_Sigmoid (const Config &config):
+    Function_Base(config),
     Kern_Base(config),
     gamma(config.get<double>("MPARAMS",0)),
     c(config.get<double>("MPARAMS",1))