diff --git a/design_matrix/functions/basis_functions/dm_bf_linear.cpp b/design_matrix/functions/basis_functions/dm_bf_linear.cpp
index 3c80e232be8b34abaa689d677a4a761693a6a5a5..8b3241a035dabc0f951350ff5ae6aeaa61efa6e0 100644
--- a/design_matrix/functions/basis_functions/dm_bf_linear.cpp
+++ b/design_matrix/functions/basis_functions/dm_bf_linear.cpp
@@ -1,7 +1,7 @@
 #include "dm_bf_linear.h"
 
-Registry<DM_Function_Base>::Register<DM_BF_Linear> DM_BF_Linear_1( "BF_Linear" );
-Registry<DM_Function_Base,Config&>::Register<DM_BF_Linear> DM_BF_Linear_2( "BF_Linear" );
+//CONFIG::Registry<DM_Function_Base>::Register<DM_BF_Linear> DM_BF_Linear_1( "BF_Linear" );
+//CONFIG::Registry<DM_Function_Base,Config&>::Register<DM_BF_Linear> DM_BF_Linear_2( "BF_Linear" );
 
 DM_BF_Linear::DM_BF_Linear() {}
 DM_BF_Linear::DM_BF_Linear(const Config &c): BF_Linear(c)
diff --git a/design_matrix/functions/basis_functions/dm_bf_polynomial2.cpp b/design_matrix/functions/basis_functions/dm_bf_polynomial2.cpp
index 49b1a372fb53f902777c133a956a5f473b2b7cc6..9543e92baf97cdf2b4d1058e837b288ff1ee945b 100644
--- a/design_matrix/functions/basis_functions/dm_bf_polynomial2.cpp
+++ b/design_matrix/functions/basis_functions/dm_bf_polynomial2.cpp
@@ -1,7 +1,7 @@
 #include "dm_bf_polynomial2.h"
 
-Registry<DM_Function_Base>::Register<DM_BF_Polynomial2> DM_BF_Polynomial2_1( "BF_Polynomial2" );
-Registry<DM_Function_Base,Config&>::Register<DM_BF_Polynomial2> DM_BF_Polynomial2_2( "BF_Polynomial2" );
+//CONFIG::Registry<DM_Function_Base>::Register<DM_BF_Polynomial2> DM_BF_Polynomial2_1( "BF_Polynomial2" );
+//CONFIG::Registry<DM_Function_Base,Config&>::Register<DM_BF_Polynomial2> DM_BF_Polynomial2_2( "BF_Polynomial2" );
 
 DM_BF_Polynomial2::DM_BF_Polynomial2() {}
 DM_BF_Polynomial2::DM_BF_Polynomial2(const Config &c): BF_Polynomial2(c)
diff --git a/design_matrix/functions/dm_f_all.cpp b/design_matrix/functions/dm_f_all.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..5d174a089f9e1fdd668a8171b26c5e56bbc15dff
--- /dev/null
+++ b/design_matrix/functions/dm_f_all.cpp
@@ -0,0 +1,22 @@
+#include "dm_f_all.h"
+
+template<> CONFIG::Registry<DM_Function_Base>::Map CONFIG::Registry<DM_Function_Base>::registry{};
+template<> CONFIG::Registry<DM_Function_Base,Config&>::Map CONFIG::Registry<DM_Function_Base,Config&>::registry{};
+
+
+CONFIG::Registry<DM_Function_Base>::Register<DM_BF_Linear> DM_BF_Linear_1( "BF_Linear" );
+CONFIG::Registry<DM_Function_Base,Config&>::Register<DM_BF_Linear> DM_BF_Linear_2( "BF_Linear" );
+CONFIG::Registry<DM_Function_Base>::Register<DM_BF_Polynomial2> DM_BF_Polynomial2_1( "BF_Polynomial2" );
+CONFIG::Registry<DM_Function_Base,Config&>::Register<DM_BF_Polynomial2> DM_BF_Polynomial2_2( "BF_Polynomial2" );
+CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_Linear> DM_Kern_Linear_1( "Kern_Linear" );
+CONFIG::Registry<DM_Function_Base,Config&>::Register<DM_Kern_Linear> DM_Kern_Linear_2( "Kern_Linear" );
+CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_LQ> DM_Kern_LQ_1( "Kern_LQ" );
+CONFIG::Registry<DM_Function_Base,Config&>::Register<DM_Kern_LQ> DM_Kern_LQ_2( "Kern_LQ" );
+CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_Polynomial> DM_Kern_Polynomial_1( "Kern_Polynomial" );
+CONFIG::Registry<DM_Function_Base,Config&>::Register<DM_Kern_Polynomial> DM_Kern_Polynomial_2( "Kern_Polynomial" );
+CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_Quadratic> DM_Kern_Quadratic_1( "Kern_Quadratic" );
+CONFIG::Registry<DM_Function_Base,Config&>::Register<DM_Kern_Quadratic> DM_Kern_Quadratic_2( "Kern_Quadratic" );
+CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_RBF> DM_Kern_RBF_1( "Kern_RBF" );
+CONFIG::Registry<DM_Function_Base,Config&>::Register<DM_Kern_RBF> DM_Kern_RBF_2( "Kern_RBF" );
+CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_Sigmoid> DM_Kern_Sigmoid_1( "Kern_Sigmoid" );
+CONFIG::Registry<DM_Function_Base,Config&>::Register<DM_Kern_Sigmoid> DM_Kern_Sigmoid_2( "Kern_Sigmoid" );
diff --git a/design_matrix/functions/dm_f_all.h b/design_matrix/functions/dm_f_all.h
new file mode 100644
index 0000000000000000000000000000000000000000..38a31839eb25cbcb666bc7021d3f510f4604e4fc
--- /dev/null
+++ b/design_matrix/functions/dm_f_all.h
@@ -0,0 +1,2 @@
+#include "basis_functions/dm_bf_all.h"
+#include "kernels/dm_kern_all.h"
diff --git a/design_matrix/functions/dm_function_base.h b/design_matrix/functions/dm_function_base.h
index a426f19d1361ee79aca7668fb2a17db067094195..1838f8661ce71773442764f2ab7d7d83ea679886 100644
--- a/design_matrix/functions/dm_function_base.h
+++ b/design_matrix/functions/dm_function_base.h
@@ -27,6 +27,6 @@ struct DM_Function_Base: public virtual Function_Base {
     virtual void calc_phi_stress_rows(phi_type &, size_t &,
             const double[6], const Structure &, const StDescriptors &)=0;
 };
-template<> inline Registry<DM_Function_Base>::Map Registry<DM_Function_Base>::registry{};
-template<> inline Registry<DM_Function_Base,Config&>::Map Registry<DM_Function_Base,Config&>::registry{};
+//template<> inline CONFIG::Registry<DM_Function_Base>::Map CONFIG::Registry<DM_Function_Base>::registry{};
+//template<> inline CONFIG::Registry<DM_Function_Base,Config&>::Map CONFIG::Registry<DM_Function_Base,Config&>::registry{};
 #endif
diff --git a/design_matrix/functions/kernels/dm_kern_all.h b/design_matrix/functions/kernels/dm_kern_all.h
index 5b4c94e1e84499e65cf9c15072a8b5d5d054bd27..0f050e617da6c0f2790656d3c4aa74519a2fd603 100644
--- a/design_matrix/functions/kernels/dm_kern_all.h
+++ b/design_matrix/functions/kernels/dm_kern_all.h
@@ -1,7 +1,7 @@
 #include "dm_kern_base.h"
 #include "dm_kern_linear.h"
 #include "dm_kern_rbf.h"
-//#include "dm_kern_lq.h"
+#include "dm_kern_lq.h"
 #include "dm_kern_polynomial.h"
 #include "dm_kern_sigmoid.h"
 #include "dm_kern_quadratic.h"
diff --git a/design_matrix/functions/kernels/dm_kern_linear.cpp b/design_matrix/functions/kernels/dm_kern_linear.cpp
index 19d1d0944af52af8199ec2545f4ceda6aac2d1d8..28fa629f3607bf7271c61cb45c9cf2144f0bf0d1 100644
--- a/design_matrix/functions/kernels/dm_kern_linear.cpp
+++ b/design_matrix/functions/kernels/dm_kern_linear.cpp
@@ -1,7 +1,7 @@
 #include "dm_kern_linear.h"
 
-Registry<DM_Function_Base>::Register<DM_Kern_Linear> DM_Kern_Linear_1( "Kern_Linear" );
-Registry<DM_Function_Base,Config&>::Register<DM_Kern_Linear> DM_Kern_Linear_2( "Kern_Linear" );
+//CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_Linear> DM_Kern_Linear_1( "Kern_Linear" );
+//CONFIG::Registry<DM_Function_Base,Config&>::Register<DM_Kern_Linear> DM_Kern_Linear_2( "Kern_Linear" );
 
 DM_Kern_Linear::DM_Kern_Linear() {}
 DM_Kern_Linear::DM_Kern_Linear (const Config &c): Kern_Linear(c)
diff --git a/design_matrix/functions/kernels/dm_kern_lq.cpp b/design_matrix/functions/kernels/dm_kern_lq.cpp
index 7fe9251b58362d76e491a33c0d782419b95f76d9..590406ca712793ed36bfea7e7c701c903d169f29 100644
--- a/design_matrix/functions/kernels/dm_kern_lq.cpp
+++ b/design_matrix/functions/kernels/dm_kern_lq.cpp
@@ -1,7 +1,7 @@
 #include "dm_kern_lq.h"
 
-Registry<DM_Function_Base>::Register<DM_Kern_LQ> DM_Kern_LQ_1( "Kern_LQ" );
-Registry<DM_Function_Base,Config&>::Register<DM_Kern_LQ> DM_Kern_LQ_2( "Kern_LQ" );
+//CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_LQ> DM_Kern_LQ_1( "Kern_LQ" );
+//CONFIG::Registry<DM_Function_Base,Config&>::Register<DM_Kern_LQ> DM_Kern_LQ_2( "Kern_LQ" );
 
 DM_Kern_LQ::DM_Kern_LQ():
     Kern_LQ()
diff --git a/design_matrix/functions/kernels/dm_kern_polynomial.cpp b/design_matrix/functions/kernels/dm_kern_polynomial.cpp
index 496292c71e71a930759010db10aa48871bebc82c..b533b005a5ca1fae0c88dfb2a3f1a77a5f8af6bf 100644
--- a/design_matrix/functions/kernels/dm_kern_polynomial.cpp
+++ b/design_matrix/functions/kernels/dm_kern_polynomial.cpp
@@ -1,7 +1,7 @@
 #include "dm_kern_polynomial.h"
 
-Registry<DM_Function_Base>::Register<DM_Kern_Polynomial> DM_Kern_Polynomial_1( "Kern_Polynomial" );
-Registry<DM_Function_Base,Config&>::Register<DM_Kern_Polynomial> DM_Kern_Polynomial_2( "Kern_Polynomial" );
+//CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_Polynomial> DM_Kern_Polynomial_1( "Kern_Polynomial" );
+//CONFIG::Registry<DM_Function_Base,Config&>::Register<DM_Kern_Polynomial> DM_Kern_Polynomial_2( "Kern_Polynomial" );
 
 DM_Kern_Polynomial::DM_Kern_Polynomial():
     Kern_Polynomial()
diff --git a/design_matrix/functions/kernels/dm_kern_quadratic.cpp b/design_matrix/functions/kernels/dm_kern_quadratic.cpp
index 0187056b905161395f793ad2795a94b600445aa9..f710de24c65c74d6b3bd37fe0317222eb31476d2 100644
--- a/design_matrix/functions/kernels/dm_kern_quadratic.cpp
+++ b/design_matrix/functions/kernels/dm_kern_quadratic.cpp
@@ -1,7 +1,7 @@
 #include "dm_kern_quadratic.h"
 
-Registry<DM_Function_Base>::Register<DM_Kern_Quadratic> DM_Kern_Quadratic_1( "Kern_Quadratic" );
-Registry<DM_Function_Base,Config&>::Register<DM_Kern_Quadratic> DM_Kern_Quadratic_2( "Kern_Quadratic" );
+//CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_Quadratic> DM_Kern_Quadratic_1( "Kern_Quadratic" );
+//CONFIG::Registry<DM_Function_Base,Config&>::Register<DM_Kern_Quadratic> DM_Kern_Quadratic_2( "Kern_Quadratic" );
 
 DM_Kern_Quadratic::DM_Kern_Quadratic():
     Kern_Quadratic()
diff --git a/design_matrix/functions/kernels/dm_kern_rbf.cpp b/design_matrix/functions/kernels/dm_kern_rbf.cpp
index ca413654564348d3b7faf1bcf96c1bb004564806..2a2112af1de5997daeaed1fff42d66d41a2e6c97 100644
--- a/design_matrix/functions/kernels/dm_kern_rbf.cpp
+++ b/design_matrix/functions/kernels/dm_kern_rbf.cpp
@@ -1,7 +1,7 @@
 #include "dm_kern_rbf.h"
 
-Registry<DM_Function_Base>::Register<DM_Kern_RBF> DM_Kern_RBF_1( "Kern_RBF" );
-Registry<DM_Function_Base,Config&>::Register<DM_Kern_RBF> DM_Kern_RBF_2( "Kern_RBF" );
+//CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_RBF> DM_Kern_RBF_1( "Kern_RBF" );
+//CONFIG::Registry<DM_Function_Base,Config&>::Register<DM_Kern_RBF> DM_Kern_RBF_2( "Kern_RBF" );
 
 DM_Kern_RBF::DM_Kern_RBF():
     Kern_RBF()
diff --git a/design_matrix/functions/kernels/dm_kern_sigmoid.cpp b/design_matrix/functions/kernels/dm_kern_sigmoid.cpp
index 1560b8a647dddb0a76c76a2242635d635f1f0d1d..bf847236a791d25fa1120e425ba8309af909ab63 100644
--- a/design_matrix/functions/kernels/dm_kern_sigmoid.cpp
+++ b/design_matrix/functions/kernels/dm_kern_sigmoid.cpp
@@ -1,7 +1,7 @@
 #include "dm_kern_sigmoid.h"
 
-Registry<DM_Function_Base>::Register<DM_Kern_Sigmoid> DM_Kern_Sigmoid_1( "Kern_Sigmoid" );
-Registry<DM_Function_Base,Config&>::Register<DM_Kern_Sigmoid> DM_Kern_Sigmoid_2( "Kern_Sigmoid" );
+//CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_Sigmoid> DM_Kern_Sigmoid_1( "Kern_Sigmoid" );
+//CONFIG::Registry<DM_Function_Base,Config&>::Register<DM_Kern_Sigmoid> DM_Kern_Sigmoid_2( "Kern_Sigmoid" );
 
 DM_Kern_Sigmoid::DM_Kern_Sigmoid():
     Kern_Sigmoid()
diff --git a/models/m_all.cpp b/models/m_all.cpp
index 5bc0f4684b0d34f1e33c697ce0c4f33b7a06e3e7..6d50651b2e08b1e13a5a227c4a6004359da7c24f 100644
--- a/models/m_all.cpp
+++ b/models/m_all.cpp
@@ -1,5 +1,5 @@
 #include "m_all.h"
 
-template<> Registry<M_Tadah_Base,DM_Function_Base&,Config&>::Map Registry<M_Tadah_Base,DM_Function_Base&,Config&>::registry{};
-Registry<M_Tadah_Base,DM_Function_Base&,Config&>::Register<M_KRR<>> M_KRR_1("M_KRR");
-Registry<M_Tadah_Base,DM_Function_Base&,Config&>::Register<M_BLR<>> M_BLR_1("M_BLR");
+template<> CONFIG::Registry<M_Tadah_Base,DM_Function_Base&,Config&>::Map CONFIG::Registry<M_Tadah_Base,DM_Function_Base&,Config&>::registry{};
+CONFIG::Registry<M_Tadah_Base,DM_Function_Base&,Config&>::Register<M_KRR<>> M_KRR_1("M_KRR");
+CONFIG::Registry<M_Tadah_Base,DM_Function_Base&,Config&>::Register<M_BLR<>> M_BLR_1("M_BLR");