From eacb8748e6cc8df22cc7d19d9fb7b5bc829763fa Mon Sep 17 00:00:00 2001
From: mkirsz <s1351949@sms.ed.ac.uk>
Date: Sun, 9 Mar 2025 01:20:33 +0000
Subject: [PATCH] Working tadah::mlip workspace

---
 CMakeLists.txt                                |  2 +
 include/tadah/mlip/descriptors_calc.h         |  2 +-
 include/tadah/mlip/descriptors_calc.hpp       |  4 +-
 .../tadah/mlip/design_matrix/design_matrix.h  |  4 +-
 .../functions/basis_functions/dm_bf_base.h    |  2 +-
 .../functions/basis_functions/dm_bf_linear.h  |  2 +-
 .../basis_functions/dm_bf_polynomial2.h       |  2 +-
 .../functions/dm_function_base.h              |  2 +-
 .../functions/kernels/dm_kern_all.h           |  2 +
 .../functions/kernels/dm_kern_base.h          |  2 +-
 .../functions/kernels/dm_kern_linear.h        |  4 +-
 .../functions/kernels/dm_kern_lq.h            |  2 +-
 .../functions/kernels/dm_kern_polynomial.h    |  2 +-
 .../functions/kernels/dm_kern_quadratic.h     |  2 +-
 .../functions/kernels/dm_kern_rbf.h           |  2 +-
 .../functions/kernels/dm_kern_sigmoid.h       |  2 +-
 include/tadah/mlip/models/m_all.h             |  2 +
 include/tadah/mlip/models/m_blr.h             | 38 +++++++--------
 include/tadah/mlip/models/m_krr.h             | 48 +++++++++----------
 include/tadah/mlip/models/m_tadah_base.h      | 10 ++--
 include/tadah/mlip/normaliser.h               |  4 +-
 src/dm_bf_base.cpp                            |  4 +-
 src/dm_bf_linear.cpp                          |  8 ++--
 src/dm_bf_polynomial2.cpp                     |  8 ++--
 src/dm_f_all.cpp                              | 32 ++++++-------
 src/dm_function_base.cpp                      |  2 +-
 src/dm_kern_base.cpp                          |  4 +-
 src/dm_kern_linear.cpp                        |  8 ++--
 src/dm_kern_lq.cpp                            |  8 ++--
 src/dm_kern_polynomial.cpp                    |  8 ++--
 src/dm_kern_quadratic.cpp                     |  8 ++--
 src/dm_kern_rbf.cpp                           |  8 ++--
 src/dm_kern_sigmoid.cpp                       |  8 ++--
 src/m_all.cpp                                 | 24 +++++-----
 src/structure_db.cpp                          |  4 +-
 tests/test_atom.cpp                           |  3 ++
 tests/test_dataset_readers.cpp                |  2 +
 tests/test_structure.cpp                      |  2 +
 tests/test_structure_properties.cpp           |  2 +
 tests/test_structure_transformations.cpp      |  2 +
 40 files changed, 152 insertions(+), 133 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8a88da8..d2081fd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -68,6 +68,8 @@ endif()
       message("${TADAH} Develop build: Directory not found.")
     endif()
   endfunction()
+  find_directory_case_insensitive("core" "$ENV{TADAH_PATH}" DEVELOP_CORE_DIR)
+  set(FETCHCONTENT_SOURCE_DIR_TADAH.CORE "${DEVELOP_CORE_DIR}")
   find_directory_case_insensitive("models" "$ENV{TADAH_PATH}" DEVELOP_MODELS_DIR)
   set(FETCHCONTENT_SOURCE_DIR_TADAH.MODELS "${DEVELOP_MODELS_DIR}")
 endif()
diff --git a/include/tadah/mlip/descriptors_calc.h b/include/tadah/mlip/descriptors_calc.h
index ef8df5c..f9968f0 100644
--- a/include/tadah/mlip/descriptors_calc.h
+++ b/include/tadah/mlip/descriptors_calc.h
@@ -47,7 +47,7 @@ namespace mlip {
  *  @tparam C3 Cut_Base child, three-body cutoff function.
  *  @tparam CM Cut_Base child, many-body cutoff function.
  */
-template <typename D2=D2_Base&, typename D3=D3_Base&, typename DM=DM_Base&, typename C2=Cut_Base&, typename C3=Cut_Base&, typename CM=Cut_Base&>
+template <typename D2=tadah::models::D2_Base&, typename D3=tadah::models::D3_Base&, typename DM=tadah::models::DM_Base&, typename C2=tadah::models::Cut_Base&, typename C3=tadah::models::Cut_Base&, typename CM=tadah::models::Cut_Base&>
 class DescriptorsCalc: public DC_Base {
 
     public:
diff --git a/include/tadah/mlip/descriptors_calc.hpp b/include/tadah/mlip/descriptors_calc.hpp
index 4f32e0e..b21a587 100644
--- a/include/tadah/mlip/descriptors_calc.hpp
+++ b/include/tadah/mlip/descriptors_calc.hpp
@@ -162,7 +162,7 @@ void DescriptorsCalc<D2,D3,DM,C2,C3,CM>::common_constructor() {
 template <typename D2, typename D3, typename DM, typename C2, typename C3, typename CM>
 void DescriptorsCalc<D2,D3,DM,C2,C3,CM>::calc_rho(const Structure &st, StDescriptors &st_d) {
   double rcut_mb_sq = pow(config.get<double>("RCUTMBMAX"),2);
-  tadah::core::tadah::core::rhos_type &rhos = st_d.rhos;
+  tadah::core::rhos_type &rhos = st_d.rhos;
   size_t s = dm.rhoi_size()+dm.rhoip_size();
   rhos.resize(s,st.natoms());
   rhos.set_zero();
@@ -336,7 +336,7 @@ void DescriptorsCalc<D2,D3,DM,C2,C3,CM>::calc_dimer(const Structure &st, StDescr
 
   // Not that this differ to how lammps implements this
   // TODO make it consistent between those two
-  Mat6R3C delM;  //i1-j1,i2-j1,i1-j2,i2-j2,i1-i2,j1-j2
+  tadah::core::Mat6R3C delM;  //i1-j1,i2-j1,i1-j2,i2-j2,i1-i2,j1-j2
   double r_sq[6];
   double r[6];
 
diff --git a/include/tadah/mlip/design_matrix/design_matrix.h b/include/tadah/mlip/design_matrix/design_matrix.h
index f886482..425ccbf 100644
--- a/include/tadah/mlip/design_matrix/design_matrix.h
+++ b/include/tadah/mlip/design_matrix/design_matrix.h
@@ -65,7 +65,7 @@ public:
  *  - Stresses are scaled by 1/6.
  *  - Energies are scaled by 1/N_i
  *
- * @tparam F Function_Base child -> BF_Base or Kern_Base
+ * @tparam F tadah::models::Function_Base child -> tadah::models::BF_Base or tadah::models::Kern_Base
  *
  */
 template <typename F>
@@ -88,7 +88,7 @@ public:
      * Usage example:
      * \code{.cpp}
      * tadah::core::Config config("tadah::core::Config");
-     * BF_Linear bf(config);
+     * tadah::models::BF_Linear bf(config);
      * DesignMatrix<LinearKernel> desmat(bf, config);
      *
      * \endcode
diff --git a/include/tadah/mlip/design_matrix/functions/basis_functions/dm_bf_base.h b/include/tadah/mlip/design_matrix/functions/basis_functions/dm_bf_base.h
index 56d0ef7..d5fb15b 100644
--- a/include/tadah/mlip/design_matrix/functions/basis_functions/dm_bf_base.h
+++ b/include/tadah/mlip/design_matrix/functions/basis_functions/dm_bf_base.h
@@ -11,7 +11,7 @@
 namespace tadah {
 namespace mlip {
 
-struct DM_BF_Base: public DM_Function_Base, public virtual BF_Base {
+struct DM_BF_Base: public DM_Function_Base, public virtual tadah::models::BF_Base {
    
     DM_BF_Base();
     DM_BF_Base(const tadah::core::Config &c);
diff --git a/include/tadah/mlip/design_matrix/functions/basis_functions/dm_bf_linear.h b/include/tadah/mlip/design_matrix/functions/basis_functions/dm_bf_linear.h
index 63cdeea..871bcc0 100644
--- a/include/tadah/mlip/design_matrix/functions/basis_functions/dm_bf_linear.h
+++ b/include/tadah/mlip/design_matrix/functions/basis_functions/dm_bf_linear.h
@@ -6,7 +6,7 @@
 namespace tadah {
 namespace mlip {
 
-struct DM_BF_Linear: public DM_BF_Base, public BF_Linear
+struct DM_BF_Linear: public DM_BF_Base, public tadah::models::BF_Linear
 {
     DM_BF_Linear();
     DM_BF_Linear(const tadah::core::Config &c);
diff --git a/include/tadah/mlip/design_matrix/functions/basis_functions/dm_bf_polynomial2.h b/include/tadah/mlip/design_matrix/functions/basis_functions/dm_bf_polynomial2.h
index 510dcfd..48f41a8 100644
--- a/include/tadah/mlip/design_matrix/functions/basis_functions/dm_bf_polynomial2.h
+++ b/include/tadah/mlip/design_matrix/functions/basis_functions/dm_bf_polynomial2.h
@@ -6,7 +6,7 @@
 namespace tadah {
 namespace mlip {
 
-struct DM_BF_Polynomial2: public DM_BF_Base, public BF_Polynomial2
+struct DM_BF_Polynomial2: public DM_BF_Base, public tadah::models::BF_Polynomial2
 {
     DM_BF_Polynomial2();
     DM_BF_Polynomial2(const tadah::core::Config &c);
diff --git a/include/tadah/mlip/design_matrix/functions/dm_function_base.h b/include/tadah/mlip/design_matrix/functions/dm_function_base.h
index 49b2581..37efe68 100644
--- a/include/tadah/mlip/design_matrix/functions/dm_function_base.h
+++ b/include/tadah/mlip/design_matrix/functions/dm_function_base.h
@@ -16,7 +16,7 @@ namespace tadah {
 namespace mlip {
 
 /** Base class for Kernels and Basis Functions */
-struct DM_Function_Base: public virtual Function_Base {
+struct DM_Function_Base: public virtual tadah::models::Function_Base {
 
   // Derived classes must implement Derived() and Derived(tadah::core::Config)
   DM_Function_Base();
diff --git a/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_all.h b/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_all.h
index aa96079..ac38408 100644
--- a/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_all.h
+++ b/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_all.h
@@ -7,3 +7,5 @@
 #include <tadah/mlip/design_matrix/functions/kernels/dm_kern_quadratic.h>
 namespace tadah {
 namespace mlip {
+} // namespace mlip
+} // namespace tadah
diff --git a/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_base.h b/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_base.h
index 4f73e75..0fc6729 100644
--- a/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_base.h
+++ b/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_base.h
@@ -19,7 +19,7 @@ namespace mlip {
  *  - ff = force descriptor
  *  - all derivatives are defined wrt to the second argument
  */
-class DM_Kern_Base: public DM_Function_Base, public virtual Kern_Base  {
+class DM_Kern_Base: public DM_Function_Base, public virtual tadah::models::Kern_Base  {
     public:
 
         DM_Kern_Base();
diff --git a/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_linear.h b/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_linear.h
index e54041f..b3f6d71 100644
--- a/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_linear.h
+++ b/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_linear.h
@@ -14,9 +14,9 @@ namespace mlip {
  * K(\mathbf{x}, \mathbf{y}) = \mathbf{x}^T \mathbf{y} = \sum_i x^{(i)} y^{(i)}
  * \f]
  *
- *  @see Kern_Base BF_Linear
+ *  @see tadah::models::Kern_Base tadah::models::BF_Linear
  */
-class DM_Kern_Linear :  public DM_Kern_Base, public Kern_Linear {
+class DM_Kern_Linear :  public DM_Kern_Base, public tadah::models::Kern_Linear {
     public:
     DM_Kern_Linear ();
     DM_Kern_Linear (const tadah::core::Config &c);
diff --git a/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_lq.h b/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_lq.h
index 0ad81aa..2d0c2af 100644
--- a/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_lq.h
+++ b/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_lq.h
@@ -6,7 +6,7 @@
 namespace tadah {
 namespace mlip {
 
-class DM_Kern_LQ :  public DM_Kern_Base, public Kern_LQ {
+class DM_Kern_LQ :  public DM_Kern_Base, public tadah::models::Kern_LQ {
     public:
         DM_Kern_LQ();
         DM_Kern_LQ(const tadah::core::Config &c);
diff --git a/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_polynomial.h b/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_polynomial.h
index 13c78e6..05911bf 100644
--- a/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_polynomial.h
+++ b/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_polynomial.h
@@ -6,7 +6,7 @@
 namespace tadah {
 namespace mlip {
 
-class DM_Kern_Polynomial :  public DM_Kern_Base, public Kern_Polynomial {
+class DM_Kern_Polynomial :  public DM_Kern_Base, public tadah::models::Kern_Polynomial {
     public:
         DM_Kern_Polynomial();
         DM_Kern_Polynomial(const tadah::core::Config &c);
diff --git a/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_quadratic.h b/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_quadratic.h
index de31022..c0d9e68 100644
--- a/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_quadratic.h
+++ b/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_quadratic.h
@@ -6,7 +6,7 @@
 namespace tadah {
 namespace mlip {
 
-class DM_Kern_Quadratic :  public DM_Kern_Base, public Kern_Quadratic {
+class DM_Kern_Quadratic :  public DM_Kern_Base, public tadah::models::Kern_Quadratic {
     public:
         DM_Kern_Quadratic();
         DM_Kern_Quadratic(const tadah::core::Config &c);
diff --git a/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_rbf.h b/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_rbf.h
index 5d349e7..6281e97 100644
--- a/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_rbf.h
+++ b/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_rbf.h
@@ -6,7 +6,7 @@
 namespace tadah {
 namespace mlip {
 
-class DM_Kern_RBF :  public DM_Kern_Base, public Kern_RBF {
+class DM_Kern_RBF :  public DM_Kern_Base, public tadah::models::Kern_RBF {
     public:
         DM_Kern_RBF();
         DM_Kern_RBF(const tadah::core::Config &c);
diff --git a/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_sigmoid.h b/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_sigmoid.h
index bf3cc1a..bd59f45 100644
--- a/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_sigmoid.h
+++ b/include/tadah/mlip/design_matrix/functions/kernels/dm_kern_sigmoid.h
@@ -6,7 +6,7 @@
 namespace tadah {
 namespace mlip {
 
-class DM_Kern_Sigmoid :  public DM_Kern_Base, public Kern_Sigmoid {
+class DM_Kern_Sigmoid :  public DM_Kern_Base, public tadah::models::Kern_Sigmoid {
     public:
         DM_Kern_Sigmoid();
         DM_Kern_Sigmoid(const tadah::core::Config &c);
diff --git a/include/tadah/mlip/models/m_all.h b/include/tadah/mlip/models/m_all.h
index 2a2a344..c3a0a08 100644
--- a/include/tadah/mlip/models/m_all.h
+++ b/include/tadah/mlip/models/m_all.h
@@ -3,3 +3,5 @@
 #include <tadah/mlip/models/m_krr.h>
 namespace tadah {
 namespace mlip {
+} // namespace mlip
+} // namespace tadah
diff --git a/include/tadah/mlip/models/m_blr.h b/include/tadah/mlip/models/m_blr.h
index b02aabe..a290b12 100644
--- a/include/tadah/mlip/models/m_blr.h
+++ b/include/tadah/mlip/models/m_blr.h
@@ -41,12 +41,12 @@ namespace mlip {
  */
 template
 <class BF=DM_Function_Base&>
-class M_BLR: public M_Tadah_Base, public M_BLR_Train<BF> {
+class M_BLR: public M_Tadah_Base, public tadah::models::M_BLR_Train<BF> {
 
 public:
 
-  using M_BLR_Train<BF>::config;
-  using M_BLR_Train<BF>::bf;
+  using tadah::models::M_BLR_Train<BF>::config;
+  using tadah::models::M_BLR_Train<BF>::bf;
 
   /** 
    * @brief Initializes for training or prediction using a configuration.
@@ -54,14 +54,14 @@ public:
    * **Example**:
    * \code{.cpp}
    * tadah::core::Config config("tadah::core::Config");
-   * M_BLR<BF_Linear> blr(config);
+   * M_BLR<tadah::models::BF_Linear> blr(config);
    * \endcode
    * 
    * @param c Configuration object.
    */
   M_BLR(tadah::core::Config &c):
-    M_BLR_Train<BF>(c),
-    desmat(M_BLR_Train<BF>::bf,c)
+    tadah::models::M_BLR_Train<BF>(c),
+    desmat(tadah::models::M_BLR_Train<BF>::bf,c)
   {
     norm = Normaliser(c);
   }
@@ -73,14 +73,14 @@ public:
    * @param c Configuration object.
    */
   M_BLR(BF &bf, tadah::core::Config &c):
-    M_BLR_Train<BF>(bf,c),
+    tadah::models::M_BLR_Train<BF>(bf,c),
     desmat(bf,c)
   {
     norm = Normaliser(c);
   }
 
   M_BLR(BF &bf, tadah::core::Config &c, tadah::mlip::memory::IMLIPWorkspaceManager& workspaceManager):
-    M_BLR_Train<BF>(bf,c,workspaceManager),
+    tadah::models::M_BLR_Train<BF>(bf,c,workspaceManager),
     desmat(bf,c,workspaceManager)
   {
     norm = Normaliser(c);
@@ -140,7 +140,7 @@ public:
   }
 
   Structure predict(const tadah::core::Config &c, StDescriptors &std, const Structure &st) {
-    if(config.template get<bool>("NORM") && !std.normalised && bf.get_label()!="BF_Linear")
+    if(config.template get<bool>("NORM") && !std.normalised && bf.get_label()!="tadah::models::BF_Linear")
       norm.normalise(std);
     return M_Tadah_Base::predict(c,std,st);
   }
@@ -181,7 +181,7 @@ public:
   StructureDB predict(tadah::core::Config config_pred, StructureDB &stdb, DC_Base &dc,
                       tadah::core::aed_type &predicted_error) {
 
-    LinearRegressor::read_sigma(config_pred,Sigma);
+    tadah::models::LinearRegressor::read_sigma(config_pred,Sigma);
     DesignMatrix<BF> dm(bf,config_pred);
     // dm.scale=false; // do not scale energy, forces and stresses
     bool wcopy=false;
@@ -273,7 +273,7 @@ private:
   // normalise weights such that when predict is called
   // we can supply it with a non-normalised descriptor
   tadah::core::t_type convert_to_nweights(const tadah::core::t_type &weights) const {
-    if(bf.get_label()!="BF_Linear") {
+    if(bf.get_label()!="tadah::models::BF_Linear") {
       throw std::runtime_error("Cannot convert weights to nweights for\n\
 non linear basis function\n");
     }
@@ -293,7 +293,7 @@ non linear basis function\n");
   }
   // The opposite of convert_to_nweights()
   tadah::core::t_type convert_to_weights(const tadah::core::t_type &nw) const {
-    if(bf.get_label()!="BF_Linear") {
+    if(bf.get_label()!="tadah::models::BF_Linear") {
       throw std::runtime_error("Cannot convert nweights to weights for\n\
 non linear basis function\n");
     }
@@ -321,21 +321,21 @@ non linear basis function\n");
     tadah::core::phi_type Phi = desmat.getPhi();
     tadah::core::t_type T = desmat.getT();
     //tadah::core::t_type &T = desmat.T;
-    M_BLR_Train<BF>::train(Phi,T);
+    tadah::models::M_BLR_Train<BF>::train(Phi,T);
 
     if (config.template get<bool>("NORM") &&
-      bf.get_label()=="BF_Linear") {
+      bf.get_label()=="tadah::models::BF_Linear") {
       weights = convert_to_nweights(weights);
     }
   }
 
   // Do we want to confuse user with those and make them public?
   // Either way they must be stated as below to silence clang warning
-  using M_BLR_Train<BF>::predict;
-  using M_BLR_Train<BF>::train;
-  using M_BLR_Train<BF>::trained;
-  using M_BLR_Train<BF>::weights;
-  using M_BLR_Train<BF>::Sigma;
+  using tadah::models::M_BLR_Train<BF>::predict;
+  using tadah::models::M_BLR_Train<BF>::train;
+  using tadah::models::M_BLR_Train<BF>::trained;
+  using tadah::models::M_BLR_Train<BF>::weights;
+  using tadah::models::M_BLR_Train<BF>::Sigma;
 };
 } // namespace mlip
 } // namespace tadah
diff --git a/include/tadah/mlip/models/m_krr.h b/include/tadah/mlip/models/m_krr.h
index d022e68..baa4960 100644
--- a/include/tadah/mlip/models/m_krr.h
+++ b/include/tadah/mlip/models/m_krr.h
@@ -44,7 +44,7 @@ namespace mlip {
 template
 <class K=DM_Function_Base&>
 class M_KRR: public M_Tadah_Base,
-  public M_KRR_Train<K>
+  public tadah::models::M_KRR_Train<K>
 {
 
 public:
@@ -55,13 +55,13 @@ public:
    * **Example**:
    * \code{.cpp}
    * tadah::core::Config config("tadah::core::Config");
-   * M_KRR<Kern_Linear> krr(config);
+   * M_KRR<tadah::models::Kern_Linear> krr(config);
    * \endcode
    *
      * @param c Configuration object.
      */
   M_KRR(tadah::core::Config &c):
-    M_KRR_Train<K>(c),
+    tadah::models::M_KRR_Train<K>(c),
     basis(c),
     desmat(kernel,c)
   {
@@ -75,7 +75,7 @@ public:
    * @param c Configuration object.
    */
   M_KRR(K &kernel, tadah::core::Config &c):
-    M_KRR_Train<K>(kernel,c),
+    tadah::models::M_KRR_Train<K>(kernel,c),
     basis(c),
     desmat(kernel,c)
   {
@@ -83,7 +83,7 @@ public:
   }
 
   M_KRR(K &kernel, tadah::core::Config &c, tadah::mlip::memory::IMLIPWorkspaceManager& workspaceManager):
-    M_KRR_Train<K>(kernel,c,workspaceManager),
+    tadah::models::M_KRR_Train<K>(kernel,c,workspaceManager),
     basis(c),
     desmat(kernel,c)
   {
@@ -133,7 +133,7 @@ public:
   }
   void train1(StructureDB &stdb, DC_Base &dc) {
     // KRR implementation using EKM
-    if(config.template get<bool>("NORM") || kernel.get_label()!="Kern_Linear") {
+    if(config.template get<bool>("NORM") || kernel.get_label()!="tadah::models::Kern_Linear") {
       // either build basis or prep normaliser
       std::string force=config.template get<std::string>("FORCE");
       std::string stress=config.template get<std::string>("STRESS");
@@ -156,7 +156,7 @@ public:
       config.add("FORCE", force);
       config.add("STRESS", stress);
 
-      if (kernel.get_label()!="Kern_Linear") {
+      if (kernel.get_label()!="tadah::models::Kern_Linear") {
         basis.build_random_basis(config.template get<size_t>("SBASIS"),st_desc_db_temp);
         desmat.f.set_basis(basis.b);
         kernel.set_basis(basis.b);
@@ -190,11 +190,11 @@ public:
     config.add("STRESS", stress);
     basis.prep_basis_for_krr(st_desc_db_temp,stdb);
     kernel.set_basis(basis.b);
-    M_KRR_Train<K>::train2(basis.b, basis.T);
+    tadah::models::M_KRR_Train<K>::train2(basis.b, basis.T);
   }
 
   Structure predict(const tadah::core::Config &c, StDescriptors &std, const Structure &st) {
-    if(config.template get<bool>("NORM") && !std.normalised && kernel.get_label()!="Kern_Linear")
+    if(config.template get<bool>("NORM") && !std.normalised && kernel.get_label()!="tadah::models::Kern_Linear")
       norm.normalise(std);
     return M_Tadah_Base::predict(c,std,st);
   }
@@ -231,7 +231,7 @@ public:
         c.add("NSTDEV", norm.std_dev[i]);
       }
     }
-    if (kernel.get_label()!="Kern_Linear") {
+    if (kernel.get_label()!="tadah::models::Kern_Linear") {
       // dump basis to the config file file
       // make sure keys are not accidently assigned
       if (c.exist("SBASIS"))
@@ -251,7 +251,7 @@ public:
   StructureDB predict(tadah::core::Config config_pred, StructureDB &stdb, DC_Base &dc,
                       tadah::core::aed_type &predicted_error) {
 
-    LinearRegressor::read_sigma(config_pred,Sigma);
+    tadah::models::LinearRegressor::read_sigma(config_pred,Sigma);
     DesignMatrix<K> dm(kernel,config_pred);
     // dm.scale=false; // do not scale energy, forces and stresses
     bool wcopy=false;
@@ -343,12 +343,12 @@ private:
   DesignMatrix<K> desmat;
 
   tadah::core::t_type convert_to_nweights(const tadah::core::t_type &weights) const {
-    if(kernel.get_label()!="Kern_Linear") {
+    if(kernel.get_label()!="tadah::models::Kern_Linear") {
       throw std::runtime_error("Cannot convert weights to nweights for\n\
 non linear kernel\n");
     }
     tadah::core::t_type kw(weights.rows());
-    if(config.template get<bool>("NORM") && kernel.get_label()=="Kern_Linear") {
+    if(config.template get<bool>("NORM") && kernel.get_label()=="tadah::models::Kern_Linear") {
       // normalise weights such that when predict is called
       // we can supply it with a non-normalised descriptor
       kw.resize(weights.rows());
@@ -368,7 +368,7 @@ non linear kernel\n");
   }
   // The opposite of convert_to_nweights()
   tadah::core::t_type convert_to_weights(const tadah::core::t_type &kw) const {
-    if(kernel.get_label()!="Kern_Linear") {
+    if(kernel.get_label()!="tadah::models::Kern_Linear") {
       throw std::runtime_error("Cannot convert nweights to weights for\n\
 non linear kernel\n");
     }
@@ -391,24 +391,24 @@ non linear kernel\n");
     // TODO see comments in M_BLR
     tadah::core::phi_type Phi = desmat.getPhi();
     tadah::core::t_type T = desmat.getT();
-    M_KRR_Train<K>::train(Phi,T);
+    tadah::models::M_KRR_Train<K>::train(Phi,T);
 
     if (config.template get<bool>("NORM") &&
-      kernel.get_label()=="Kern_Linear") {
+      kernel.get_label()=="tadah::models::Kern_Linear") {
       weights = convert_to_nweights(weights);
     }
   }
 
   // Do we want to confuse user with those and make them public?
   // Either way they must be stated as below to silence clang warning
-  using M_KRR_Train<K>::predict;
-  using M_KRR_Train<K>::train;
-  using M_KRR_Train<K>::trained;
-  using M_KRR_Train<K>::weights;
-  using M_KRR_Train<K>::Sigma;
-  using M_KRR_Train<K>::config;
-  using M_KRR_Train<K>::kernel;
-  using M_KRR_Train<K>::ekm;
+  using tadah::models::M_KRR_Train<K>::predict;
+  using tadah::models::M_KRR_Train<K>::train;
+  using tadah::models::M_KRR_Train<K>::trained;
+  using tadah::models::M_KRR_Train<K>::weights;
+  using tadah::models::M_KRR_Train<K>::Sigma;
+  using tadah::models::M_KRR_Train<K>::config;
+  using tadah::models::M_KRR_Train<K>::kernel;
+  using tadah::models::M_KRR_Train<K>::ekm;
 };
 } // namespace mlip
 } // namespace tadah
diff --git a/include/tadah/mlip/models/m_tadah_base.h b/include/tadah/mlip/models/m_tadah_base.h
index 3c2b884..670dc89 100644
--- a/include/tadah/mlip/models/m_tadah_base.h
+++ b/include/tadah/mlip/models/m_tadah_base.h
@@ -16,8 +16,8 @@ namespace mlip {
 /** This interface provides functionality required from all models.
  */
 class M_Tadah_Base:
-    public virtual M_Core,
-    public virtual M_Predict
+    public virtual tadah::models::M_Core,
+    public virtual tadah::models::M_Predict
 {
 
 public:
@@ -26,9 +26,9 @@ public:
   virtual ~M_Tadah_Base() {};
 
   /** \brief Predict total energy for a set of atoms. */
-  using M_Predict::epredict;
-  using M_Predict::fpredict;
-  using M_Core::predict;
+  using tadah::models::M_Predict::epredict;
+  using tadah::models::M_Predict::fpredict;
+  using tadah::models::M_Core::predict;
   double epredict(const StDescriptors &std);
 
   ///** \brief Predict force between a pair of atoms in a k-direction. */
diff --git a/include/tadah/mlip/normaliser.h b/include/tadah/mlip/normaliser.h
index 5088935..c5631e7 100644
--- a/include/tadah/mlip/normaliser.h
+++ b/include/tadah/mlip/normaliser.h
@@ -11,7 +11,9 @@
 namespace tadah {
 namespace mlip {
 
-class Normaliser: public Normaliser_Core {
+using tadah::core::operator<<;
+
+class Normaliser: public tadah::core::Normaliser_Core {
     public:
         using Normaliser_Core::normalise;
 
diff --git a/src/dm_bf_base.cpp b/src/dm_bf_base.cpp
index 11a6587..ab800c4 100644
--- a/src/dm_bf_base.cpp
+++ b/src/dm_bf_base.cpp
@@ -5,8 +5,8 @@ namespace tadah {
 namespace mlip {
 DM_BF_Base::DM_BF_Base() {}
 DM_BF_Base::DM_BF_Base(const tadah::core::Config &c):
-  Function_Base(c), 
-  BF_Base(c),
+  tadah::models::Function_Base(c), 
+  tadah::models::BF_Base(c),
   DM_Function_Base(c) {}
 DM_BF_Base::~DM_BF_Base() {}
 } // namespace mlip
diff --git a/src/dm_bf_linear.cpp b/src/dm_bf_linear.cpp
index 5fd5f13..10e095e 100644
--- a/src/dm_bf_linear.cpp
+++ b/src/dm_bf_linear.cpp
@@ -2,14 +2,14 @@
 namespace tadah {
 namespace mlip {
 
-//CONFIG::Registry<DM_Function_Base>::Register<DM_BF_Linear> DM_BF_Linear_1( "BF_Linear" );
-//CONFIG::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_BF_Linear> DM_BF_Linear_2( "BF_Linear" );
+//CONFIG::Registry<DM_Function_Base>::Register<DM_BF_Linear> DM_BF_Linear_1( "tadah::models::BF_Linear" );
+//CONFIG::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_BF_Linear> DM_BF_Linear_2( "tadah::models::BF_Linear" );
 
 DM_BF_Linear::DM_BF_Linear() {}
 DM_BF_Linear::DM_BF_Linear(const tadah::core::Config &c): 
-  Function_Base(c), 
+  tadah::models::Function_Base(c), 
   DM_BF_Base(c),
-  BF_Linear(c)
+  tadah::models::BF_Linear(c)
 {}
 size_t DM_BF_Linear::get_phi_cols(const tadah::core::Config &config)
 {
diff --git a/src/dm_bf_polynomial2.cpp b/src/dm_bf_polynomial2.cpp
index 0dfc14a..78af190 100644
--- a/src/dm_bf_polynomial2.cpp
+++ b/src/dm_bf_polynomial2.cpp
@@ -4,14 +4,14 @@
 namespace tadah {
 namespace mlip {
 
-//CONFIG::Registry<DM_Function_Base>::Register<DM_BF_Polynomial2> DM_BF_Polynomial2_1( "BF_Polynomial2" );
-//CONFIG::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_BF_Polynomial2> DM_BF_Polynomial2_2( "BF_Polynomial2" );
+//CONFIG::Registry<DM_Function_Base>::Register<DM_BF_Polynomial2> DM_BF_Polynomial2_1( "tadah::models::BF_Polynomial2" );
+//CONFIG::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_BF_Polynomial2> DM_BF_Polynomial2_2( "tadah::models::BF_Polynomial2" );
 
 DM_BF_Polynomial2::DM_BF_Polynomial2() {}
 DM_BF_Polynomial2::DM_BF_Polynomial2(const tadah::core::Config &c): 
-  Function_Base(c),
+  tadah::models::Function_Base(c),
   DM_BF_Base(c),
-  BF_Polynomial2(c)
+  tadah::models::BF_Polynomial2(c)
 {}
 size_t DM_BF_Polynomial2::get_phi_cols(const tadah::core::Config &config)
 {
diff --git a/src/dm_f_all.cpp b/src/dm_f_all.cpp
index 6faeda6..4730cd6 100644
--- a/src/dm_f_all.cpp
+++ b/src/dm_f_all.cpp
@@ -6,22 +6,22 @@ template<> tadah::core::Registry<DM_Function_Base>::Map tadah::core::Registry<DM
 template<> tadah::core::Registry<DM_Function_Base,tadah::core::Config&>::Map tadah::core::Registry<DM_Function_Base,tadah::core::Config&>::registry{};
 
 
-tadah::core::Registry<DM_Function_Base>::Register<DM_BF_Linear> DM_BF_Linear_1( "BF_Linear" );
-tadah::core::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_BF_Linear> DM_BF_Linear_2( "BF_Linear" );
-tadah::core::Registry<DM_Function_Base>::Register<DM_BF_Polynomial2> DM_BF_Polynomial2_1( "BF_Polynomial2" );
-tadah::core::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_BF_Polynomial2> DM_BF_Polynomial2_2( "BF_Polynomial2" );
-tadah::core::Registry<DM_Function_Base>::Register<DM_Kern_Linear> DM_Kern_Linear_1( "Kern_Linear" );
-tadah::core::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_Linear> DM_Kern_Linear_2( "Kern_Linear" );
-tadah::core::Registry<DM_Function_Base>::Register<DM_Kern_LQ> DM_Kern_LQ_1( "Kern_LQ" );
-tadah::core::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_LQ> DM_Kern_LQ_2( "Kern_LQ" );
-tadah::core::Registry<DM_Function_Base>::Register<DM_Kern_Polynomial> DM_Kern_Polynomial_1( "Kern_Polynomial" );
-tadah::core::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_Polynomial> DM_Kern_Polynomial_2( "Kern_Polynomial" );
-tadah::core::Registry<DM_Function_Base>::Register<DM_Kern_Quadratic> DM_Kern_Quadratic_1( "Kern_Quadratic" );
-tadah::core::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_Quadratic> DM_Kern_Quadratic_2( "Kern_Quadratic" );
-tadah::core::Registry<DM_Function_Base>::Register<DM_Kern_RBF> DM_Kern_RBF_1( "Kern_RBF" );
-tadah::core::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_RBF> DM_Kern_RBF_2( "Kern_RBF" );
-tadah::core::Registry<DM_Function_Base>::Register<DM_Kern_Sigmoid> DM_Kern_Sigmoid_1( "Kern_Sigmoid" );
-tadah::core::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_Sigmoid> DM_Kern_Sigmoid_2( "Kern_Sigmoid" );
+tadah::core::Registry<DM_Function_Base>::Register<DM_BF_Linear> DM_BF_Linear_1( "tadah::models::BF_Linear" );
+tadah::core::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_BF_Linear> DM_BF_Linear_2( "tadah::models::BF_Linear" );
+tadah::core::Registry<DM_Function_Base>::Register<DM_BF_Polynomial2> DM_BF_Polynomial2_1( "tadah::models::BF_Polynomial2" );
+tadah::core::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_BF_Polynomial2> DM_BF_Polynomial2_2( "tadah::models::BF_Polynomial2" );
+tadah::core::Registry<DM_Function_Base>::Register<DM_Kern_Linear> DM_Kern_Linear_1( "tadah::models::Kern_Linear" );
+tadah::core::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_Linear> DM_Kern_Linear_2( "tadah::models::Kern_Linear" );
+tadah::core::Registry<DM_Function_Base>::Register<DM_Kern_LQ> DM_Kern_LQ_1( "tadah::models::Kern_LQ" );
+tadah::core::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_LQ> DM_Kern_LQ_2( "tadah::models::Kern_LQ" );
+tadah::core::Registry<DM_Function_Base>::Register<DM_Kern_Polynomial> DM_Kern_Polynomial_1( "tadah::models::Kern_Polynomial" );
+tadah::core::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_Polynomial> DM_Kern_Polynomial_2( "tadah::models::Kern_Polynomial" );
+tadah::core::Registry<DM_Function_Base>::Register<DM_Kern_Quadratic> DM_Kern_Quadratic_1( "tadah::models::Kern_Quadratic" );
+tadah::core::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_Quadratic> DM_Kern_Quadratic_2( "tadah::models::Kern_Quadratic" );
+tadah::core::Registry<DM_Function_Base>::Register<DM_Kern_RBF> DM_Kern_RBF_1( "tadah::models::Kern_RBF" );
+tadah::core::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_RBF> DM_Kern_RBF_2( "tadah::models::Kern_RBF" );
+tadah::core::Registry<DM_Function_Base>::Register<DM_Kern_Sigmoid> DM_Kern_Sigmoid_1( "tadah::models::Kern_Sigmoid" );
+tadah::core::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_Sigmoid> DM_Kern_Sigmoid_2( "tadah::models::Kern_Sigmoid" );
 
 } // namespace mlip
 } // namespace tadah
diff --git a/src/dm_function_base.cpp b/src/dm_function_base.cpp
index 72490e2..0e03343 100644
--- a/src/dm_function_base.cpp
+++ b/src/dm_function_base.cpp
@@ -3,7 +3,7 @@
 namespace tadah {
 namespace mlip {
 DM_Function_Base::DM_Function_Base() {}
-DM_Function_Base::DM_Function_Base(const tadah::core::Config &c): Function_Base(c) {}
+DM_Function_Base::DM_Function_Base(const tadah::core::Config &c): tadah::models::Function_Base(c) {}
 DM_Function_Base::~DM_Function_Base() {}
 } // namespace mlip
 } // namespace tadah
diff --git a/src/dm_kern_base.cpp b/src/dm_kern_base.cpp
index 0c32977..444a810 100644
--- a/src/dm_kern_base.cpp
+++ b/src/dm_kern_base.cpp
@@ -8,8 +8,8 @@ namespace mlip {
 DM_Kern_Base::~DM_Kern_Base() {}
 DM_Kern_Base::DM_Kern_Base() {}
 DM_Kern_Base::DM_Kern_Base(const tadah::core::Config &c): 
-  Function_Base(c), 
-  Kern_Base(c), 
+  tadah::models::Function_Base(c), 
+  tadah::models::Kern_Base(c), 
   DM_Function_Base(c) {}
 size_t DM_Kern_Base::get_phi_cols(const tadah::core::Config &)
 {
diff --git a/src/dm_kern_linear.cpp b/src/dm_kern_linear.cpp
index 3390526..225803e 100644
--- a/src/dm_kern_linear.cpp
+++ b/src/dm_kern_linear.cpp
@@ -3,14 +3,14 @@
 namespace tadah {
 namespace mlip {
 
-//CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_Linear> DM_Kern_Linear_1( "Kern_Linear" );
-//CONFIG::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_Linear> DM_Kern_Linear_2( "Kern_Linear" );
+//CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_Linear> DM_Kern_Linear_1( "tadah::models::Kern_Linear" );
+//CONFIG::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_Linear> DM_Kern_Linear_2( "tadah::models::Kern_Linear" );
 
 DM_Kern_Linear::DM_Kern_Linear() {}
 DM_Kern_Linear::DM_Kern_Linear (const tadah::core::Config &c): 
-  Function_Base(c),
+  tadah::models::Function_Base(c),
   DM_Kern_Base(c),
-  Kern_Linear(c)
+  tadah::models::Kern_Linear(c)
 {}
 size_t DM_Kern_Linear::get_phi_cols(const tadah::core::Config &config)
 {
diff --git a/src/dm_kern_lq.cpp b/src/dm_kern_lq.cpp
index d9be686..3006e46 100644
--- a/src/dm_kern_lq.cpp
+++ b/src/dm_kern_lq.cpp
@@ -4,15 +4,15 @@
 namespace tadah {
 namespace mlip {
 
-//CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_LQ> DM_Kern_LQ_1( "Kern_LQ" );
-//CONFIG::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_LQ> DM_Kern_LQ_2( "Kern_LQ" );
+//CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_LQ> DM_Kern_LQ_1( "tadah::models::Kern_LQ" );
+//CONFIG::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_LQ> DM_Kern_LQ_2( "tadah::models::Kern_LQ" );
 
 DM_Kern_LQ::DM_Kern_LQ()
 {}
 DM_Kern_LQ::DM_Kern_LQ(const tadah::core::Config &c):
-  Function_Base(c), 
+  tadah::models::Function_Base(c), 
   DM_Kern_Base(c),
-  Kern_LQ(c)
+  tadah::models::Kern_LQ(c)
 {}
 } // namespace mlip
 } // namespace tadah
diff --git a/src/dm_kern_polynomial.cpp b/src/dm_kern_polynomial.cpp
index b2d1c7d..e79844d 100644
--- a/src/dm_kern_polynomial.cpp
+++ b/src/dm_kern_polynomial.cpp
@@ -2,15 +2,15 @@
 namespace tadah {
 namespace mlip {
 
-//CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_Polynomial> DM_Kern_Polynomial_1( "Kern_Polynomial" );
-//CONFIG::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_Polynomial> DM_Kern_Polynomial_2( "Kern_Polynomial" );
+//CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_Polynomial> DM_Kern_Polynomial_1( "tadah::models::Kern_Polynomial" );
+//CONFIG::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_Polynomial> DM_Kern_Polynomial_2( "tadah::models::Kern_Polynomial" );
 
 DM_Kern_Polynomial::DM_Kern_Polynomial()
 {}
 DM_Kern_Polynomial::DM_Kern_Polynomial(const tadah::core::Config &c):
-  Function_Base(c), 
+  tadah::models::Function_Base(c), 
   DM_Kern_Base(c),
-  Kern_Polynomial(c)
+  tadah::models::Kern_Polynomial(c)
 {}
 } // namespace mlip
 } // namespace tadah
diff --git a/src/dm_kern_quadratic.cpp b/src/dm_kern_quadratic.cpp
index b8a1efe..aafbf8b 100644
--- a/src/dm_kern_quadratic.cpp
+++ b/src/dm_kern_quadratic.cpp
@@ -3,15 +3,15 @@
 namespace tadah {
 namespace mlip {
 
-//CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_Quadratic> DM_Kern_Quadratic_1( "Kern_Quadratic" );
-//CONFIG::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_Quadratic> DM_Kern_Quadratic_2( "Kern_Quadratic" );
+//CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_Quadratic> DM_Kern_Quadratic_1( "tadah::models::Kern_Quadratic" );
+//CONFIG::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_Quadratic> DM_Kern_Quadratic_2( "tadah::models::Kern_Quadratic" );
 
 DM_Kern_Quadratic::DM_Kern_Quadratic()
 {}
 DM_Kern_Quadratic::DM_Kern_Quadratic(const tadah::core::Config &c):
-  Function_Base(c),
+  tadah::models::Function_Base(c),
   DM_Kern_Base(c),
-  Kern_Quadratic(c)
+  tadah::models::Kern_Quadratic(c)
 {}
 } // namespace mlip
 } // namespace tadah
diff --git a/src/dm_kern_rbf.cpp b/src/dm_kern_rbf.cpp
index 4489073..6ce20d4 100644
--- a/src/dm_kern_rbf.cpp
+++ b/src/dm_kern_rbf.cpp
@@ -2,15 +2,15 @@
 namespace tadah {
 namespace mlip {
 
-//CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_RBF> DM_Kern_RBF_1( "Kern_RBF" );
-//CONFIG::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_RBF> DM_Kern_RBF_2( "Kern_RBF" );
+//CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_RBF> DM_Kern_RBF_1( "tadah::models::Kern_RBF" );
+//CONFIG::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_RBF> DM_Kern_RBF_2( "tadah::models::Kern_RBF" );
 
 DM_Kern_RBF::DM_Kern_RBF()
 {}
 DM_Kern_RBF::DM_Kern_RBF(const tadah::core::Config &c):
-  Function_Base(c), 
+  tadah::models::Function_Base(c), 
   DM_Kern_Base(c),
-  Kern_RBF(c)
+  tadah::models::Kern_RBF(c)
 {}
 } // namespace mlip
 } // namespace tadah
diff --git a/src/dm_kern_sigmoid.cpp b/src/dm_kern_sigmoid.cpp
index fb1482c..2304227 100644
--- a/src/dm_kern_sigmoid.cpp
+++ b/src/dm_kern_sigmoid.cpp
@@ -2,15 +2,15 @@
 namespace tadah {
 namespace mlip {
 
-//CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_Sigmoid> DM_Kern_Sigmoid_1( "Kern_Sigmoid" );
-//CONFIG::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_Sigmoid> DM_Kern_Sigmoid_2( "Kern_Sigmoid" );
+//CONFIG::Registry<DM_Function_Base>::Register<DM_Kern_Sigmoid> DM_Kern_Sigmoid_1( "tadah::models::Kern_Sigmoid" );
+//CONFIG::Registry<DM_Function_Base,tadah::core::Config&>::Register<DM_Kern_Sigmoid> DM_Kern_Sigmoid_2( "tadah::models::Kern_Sigmoid" );
 
 DM_Kern_Sigmoid::DM_Kern_Sigmoid()
 {}
 DM_Kern_Sigmoid::DM_Kern_Sigmoid(const tadah::core::Config &c):
-  Function_Base(c), 
+  tadah::models::Function_Base(c), 
   DM_Kern_Base(c),
-  Kern_Sigmoid(c)
+  tadah::models::Kern_Sigmoid(c)
 {}
 } // namespace mlip
 } // namespace tadah
diff --git a/src/m_all.cpp b/src/m_all.cpp
index 6ddcebe..783da52 100644
--- a/src/m_all.cpp
+++ b/src/m_all.cpp
@@ -5,24 +5,24 @@ namespace tadah {
 namespace mlip {
 
 template<>
-CONFIG::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&>::Map
-CONFIG::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&>::registry{};
+tadah::core::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&>::Map
+tadah::core::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&>::registry{};
 
-CONFIG::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&>::Register<M_KRR<>> M_KRR_1("M_KRR");
-CONFIG::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&>::Register<M_BLR<>> M_BLR_1("M_BLR");
+tadah::core::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&>::Register<M_KRR<>> M_KRR_1("M_KRR");
+tadah::core::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&>::Register<M_BLR<>> M_BLR_1("M_BLR");
 
 /*template<>*/
-/*CONFIG::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&, tadah::models::memory::IModelsWorkspaceManager&>::Map*/
-/*CONFIG::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&, tadah::models::memory::IModelsWorkspaceManager&>::registry{};*/
+/*tadah::core::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&, tadah::models::memory::IModelsWorkspaceManager&>::Map*/
+/*tadah::core::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&, tadah::models::memory::IModelsWorkspaceManager&>::registry{};*/
 /**/
-/*CONFIG::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&, tadah::models::memory::IModelsWorkspaceManager&>::Register<M_BLR<>> M_BLR_2("M_BLR");*/
-/*CONFIG::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&, tadah::models::memory::IModelsWorkspaceManager&>::Register<M_KRR<>> M_KRR_2("M_KRR");*/
+/*tadah::core::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&, tadah::models::memory::IModelsWorkspaceManager&>::Register<M_BLR<>> M_BLR_2("M_BLR");*/
+/*tadah::core::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&, tadah::models::memory::IModelsWorkspaceManager&>::Register<M_KRR<>> M_KRR_2("M_KRR");*/
 
 template<>
-CONFIG::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&, tadah::mlip::memory::IMLIPWorkspaceManager&>::Map
-CONFIG::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&, tadah::mlip::memory::IMLIPWorkspaceManager&>::registry{};
+tadah::core::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&, tadah::mlip::memory::IMLIPWorkspaceManager&>::Map
+tadah::core::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&, tadah::mlip::memory::IMLIPWorkspaceManager&>::registry{};
 
-CONFIG::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&, tadah::mlip::memory::IMLIPWorkspaceManager&>::Register<M_BLR<>> M_BLR_3("M_BLR");
-CONFIG::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&, tadah::mlip::memory::IMLIPWorkspaceManager&>::Register<M_KRR<>> M_KRR_3("M_KRR");
+tadah::core::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&, tadah::mlip::memory::IMLIPWorkspaceManager&>::Register<M_BLR<>> M_BLR_3("M_BLR");
+tadah::core::Registry<M_Tadah_Base, DM_Function_Base&, tadah::core::Config&, tadah::mlip::memory::IMLIPWorkspaceManager&>::Register<M_KRR<>> M_KRR_3("M_KRR");
 } // namespace mlip
 } // namespace tadah
diff --git a/src/structure_db.cpp b/src/structure_db.cpp
index 7028155..16dbc7e 100644
--- a/src/structure_db.cpp
+++ b/src/structure_db.cpp
@@ -283,9 +283,9 @@ void StructureDB::dump_to_file(const std::string& filepath, bool append, size_t
 }
 
 std::string StructureDB::summary() const {
-  std::string str =  "# of structures : " + to_string(structures.size());
+  std::string str =  "# of structures : " + std::to_string(structures.size());
 
-  str +=  " | # of atoms : " + to_string(calc_natoms());
+  str +=  " | # of atoms : " + std::to_string(calc_natoms());
 
   str += " | Elements : ";
   std::set<tadah::core::Element> ue = get_unique_elements(); 
diff --git a/tests/test_atom.cpp b/tests/test_atom.cpp
index fb60b03..fb9b639 100644
--- a/tests/test_atom.cpp
+++ b/tests/test_atom.cpp
@@ -3,6 +3,9 @@
 #include <tadah/mlip/atom.h>
 #include <string>
 
+using namespace tadah::core;
+using namespace tadah::mlip;
+
 
 char symbol1[]="Ti";
 int Z1 = 22;
diff --git a/tests/test_dataset_readers.cpp b/tests/test_dataset_readers.cpp
index 430bd3d..30e65ce 100644
--- a/tests/test_dataset_readers.cpp
+++ b/tests/test_dataset_readers.cpp
@@ -10,6 +10,8 @@
 #include <vector>
 
 namespace fs = std::filesystem;
+using namespace tadah::core;
+using namespace tadah::mlip;
 
 // Function to list all files in a directory
 std::vector<std::string> get_all_files(const std::string& directory) {
diff --git a/tests/test_structure.cpp b/tests/test_structure.cpp
index 0b890d5..9d6059d 100644
--- a/tests/test_structure.cpp
+++ b/tests/test_structure.cpp
@@ -4,6 +4,8 @@
 #include <tadah/mlip/atom.h>
 #include <tadah/mlip/structure.h>
 
+using namespace tadah::core;
+using namespace tadah::mlip;
 // Conversion factor from eV/A^3 to kbar;
 double fac = 1602.1766208;
 
diff --git a/tests/test_structure_properties.cpp b/tests/test_structure_properties.cpp
index bddbfaf..9af9f8e 100644
--- a/tests/test_structure_properties.cpp
+++ b/tests/test_structure_properties.cpp
@@ -4,6 +4,8 @@
 #include <tadah/mlip/atom.h>
 #include <tadah/core/periodic_table.h>
 
+using namespace tadah::core;
+using namespace tadah::mlip;
 // Helper to create an element from symbol
 static Element makeElement(const std::string& sym) {
     return PeriodicTable::find_by_symbol(sym);
diff --git a/tests/test_structure_transformations.cpp b/tests/test_structure_transformations.cpp
index b147320..cad23c4 100644
--- a/tests/test_structure_transformations.cpp
+++ b/tests/test_structure_transformations.cpp
@@ -10,6 +10,8 @@
 #include <vector>
 #include <iostream>
 
+using namespace tadah::core;
+using namespace tadah::mlip;
 // Helper function to build a simple 2×2×2 box with two atoms.
 static Structure makeSimpleStructure()
 {
-- 
GitLab