diff --git a/Core/Aggregate/FTDecayFunctions.cpp b/Core/Aggregate/FTDecayFunctions.cpp
index 23ece081dc1698981ed15e8b60a534ccb604ea42..6d7ec71eb4209dc2ab9ca35ece6fd14600df57b1 100644
--- a/Core/Aggregate/FTDecayFunctions.cpp
+++ b/Core/Aggregate/FTDecayFunctions.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Aggregate/FTDecayFunctions.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/ParameterPool.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -26,13 +25,13 @@ IFTDecayFunction1D::IFTDecayFunction1D(double decay_length) : m_decay_length(dec
 
 void IFTDecayFunction1D::register_decay_length()
 {
-    registerParameter(BornAgain::DecayLength, &m_decay_length);
+    registerParameter("DecayLength", &m_decay_length);
 }
 
 FTDecayFunction1DCauchy::FTDecayFunction1DCauchy(double decay_length)
     : IFTDecayFunction1D(decay_length)
 {
-    setName(BornAgain::FTDecayFunction1DCauchyType);
+    setName("FTDecayFunction1DCauchy");
     register_decay_length();
 }
 
@@ -50,7 +49,7 @@ double FTDecayFunction1DCauchy::evaluate(double q) const
 FTDecayFunction1DGauss::FTDecayFunction1DGauss(double decay_length)
     : IFTDecayFunction1D(decay_length)
 {
-    setName(BornAgain::FTDecayFunction1DGaussType);
+    setName("FTDecayFunction1DGauss");
     register_decay_length();
 }
 
@@ -68,7 +67,7 @@ double FTDecayFunction1DGauss::evaluate(double q) const
 FTDecayFunction1DTriangle::FTDecayFunction1DTriangle(double decay_length)
     : IFTDecayFunction1D(decay_length)
 {
-    setName(BornAgain::FTDecayFunction1DTriangleType);
+    setName("FTDecayFunction1DTriangle");
     register_decay_length();
 }
 
@@ -86,9 +85,9 @@ double FTDecayFunction1DTriangle::evaluate(double q) const
 FTDecayFunction1DVoigt::FTDecayFunction1DVoigt(double decay_length, double eta)
     : IFTDecayFunction1D(decay_length), m_eta(eta)
 {
-    setName(BornAgain::FTDecayFunction1DVoigtType);
+    setName("FTDecayFunction1DVoigt");
     register_decay_length();
-    registerParameter(BornAgain::Eta, &m_eta);
+    registerParameter("Eta", &m_eta);
 }
 
 FTDecayFunction1DVoigt* FTDecayFunction1DVoigt::clone() const
@@ -162,18 +161,18 @@ IFTDecayFunction2D::boundingReciprocalLatticeCoordinates(double qX, double qY, d
 
 void IFTDecayFunction2D::register_decay_lengths()
 {
-    registerParameter(BornAgain::DecayLengthX, &m_decay_length_x)
-        .setUnit(BornAgain::UnitsNm)
+    registerParameter("DecayLengthX", &m_decay_length_x)
+        .setUnit("nm")
         .setNonnegative();
-    registerParameter(BornAgain::DecayLengthY, &m_decay_length_y)
-        .setUnit(BornAgain::UnitsNm)
+    registerParameter("DecayLengthY", &m_decay_length_y)
+        .setUnit("nm")
         .setNonnegative();
 }
 
 void IFTDecayFunction2D::register_gamma()
 {
-    registerParameter(BornAgain::Gamma, &m_gamma)
-        .setUnit(BornAgain::UnitsRad)
+    registerParameter("Gamma", &m_gamma)
+        .setUnit("rad")
         .setLimited(-M_PI_2, M_PI_2);
 }
 
@@ -196,7 +195,7 @@ FTDecayFunction2DCauchy::FTDecayFunction2DCauchy(double decay_length_x, double d
                                                  double gamma)
     : IFTDecayFunction2D(decay_length_x, decay_length_y, gamma)
 {
-    setName(BornAgain::FTDecayFunction2DCauchyType);
+    setName("FTDecayFunction2DCauchy");
     init_parameters();
 }
 
@@ -216,7 +215,7 @@ FTDecayFunction2DGauss::FTDecayFunction2DGauss(double decay_length_x, double dec
                                                double gamma)
     : IFTDecayFunction2D(decay_length_x, decay_length_y, gamma)
 {
-    setName(BornAgain::FTDecayFunction2DGaussType);
+    setName("FTDecayFunction2DGauss");
     init_parameters();
 }
 
@@ -242,9 +241,9 @@ FTDecayFunction2DVoigt::FTDecayFunction2DVoigt(double decay_length_x, double dec
                                                double eta, double gamma)
     : IFTDecayFunction2D(decay_length_x, decay_length_y, gamma), m_eta(eta)
 {
-    setName(BornAgain::FTDecayFunction2DVoigtType);
+    setName("FTDecayFunction2DVoigt");
     register_decay_lengths();
-    registerParameter(BornAgain::Eta, &m_eta);
+    registerParameter("Eta", &m_eta);
     register_gamma();
 }
 
diff --git a/Core/Aggregate/FTDistributions1D.cpp b/Core/Aggregate/FTDistributions1D.cpp
index 4e862db05a3825fcadad5404e3cf9b9daa7182e9..348c9ed83ad43104ca0ad61852be8fb7589672cb 100644
--- a/Core/Aggregate/FTDistributions1D.cpp
+++ b/Core/Aggregate/FTDistributions1D.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Aggregate/FTDistributions1D.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/ParameterPool.h"
@@ -30,12 +29,12 @@ IFTDistribution1D::~IFTDistribution1D() = default;
 
 void IFTDistribution1D::init_parameters()
 {
-    registerParameter(BornAgain::Omega, &m_omega);
+    registerParameter("Omega", &m_omega);
 }
 
 FTDistribution1DCauchy::FTDistribution1DCauchy(double omega) : IFTDistribution1D(omega)
 {
-    setName(BornAgain::FTDistribution1DCauchyType);
+    setName("FTDistribution1DCauchy");
     init_parameters();
 }
 
@@ -62,7 +61,7 @@ std::unique_ptr<IDistribution1DSampler> FTDistribution1DCauchy::createSampler()
 
 FTDistribution1DGauss::FTDistribution1DGauss(double omega) : IFTDistribution1D(omega)
 {
-    setName(BornAgain::FTDistribution1DGaussType);
+    setName("FTDistribution1DGauss");
     init_parameters();
 }
 
@@ -89,7 +88,7 @@ std::unique_ptr<IDistribution1DSampler> FTDistribution1DGauss::createSampler() c
 
 FTDistribution1DGate::FTDistribution1DGate(double omega) : IFTDistribution1D(omega)
 {
-    setName(BornAgain::FTDistribution1DGateType);
+    setName("FTDistribution1DGate");
     init_parameters();
 }
 
@@ -115,7 +114,7 @@ std::unique_ptr<IDistribution1DSampler> FTDistribution1DGate::createSampler() co
 
 FTDistribution1DTriangle::FTDistribution1DTriangle(double omega) : IFTDistribution1D(omega)
 {
-    setName(BornAgain::FTDistribution1DTriangleType);
+    setName("FTDistribution1DTriangle");
     init_parameters();
 }
 
@@ -142,7 +141,7 @@ std::unique_ptr<IDistribution1DSampler> FTDistribution1DTriangle::createSampler(
 
 FTDistribution1DCosine::FTDistribution1DCosine(double omega) : IFTDistribution1D(omega)
 {
-    setName(BornAgain::FTDistribution1DCosineType);
+    setName("FTDistribution1DCosine");
     init_parameters();
 }
 
@@ -172,9 +171,9 @@ std::unique_ptr<IDistribution1DSampler> FTDistribution1DCosine::createSampler()
 FTDistribution1DVoigt::FTDistribution1DVoigt(double omega, double eta)
     : IFTDistribution1D(omega), m_eta(eta)
 {
-    setName(BornAgain::FTDistribution1DVoigtType);
+    setName("FTDistribution1DVoigt");
     init_parameters();
-    registerParameter(BornAgain::Eta, &m_eta);
+    registerParameter("Eta", &m_eta);
 }
 
 FTDistribution1DVoigt* FTDistribution1DVoigt::clone() const
diff --git a/Core/Aggregate/FTDistributions2D.cpp b/Core/Aggregate/FTDistributions2D.cpp
index eee68951352130b710903f71e9e8063f1b6811ed..28ffde16b4ef3c82f0073e64f5342956927db612 100644
--- a/Core/Aggregate/FTDistributions2D.cpp
+++ b/Core/Aggregate/FTDistributions2D.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Aggregate/FTDistributions2D.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/ParameterPool.h"
@@ -38,14 +37,14 @@ double IFTDistribution2D::sumsq(double qx, double qy) const
 
 void IFTDistribution2D::register_omega()
 {
-    registerParameter(BornAgain::OmegaX, &m_omega_x).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::OmegaY, &m_omega_y).setUnit(BornAgain::UnitsNm).setNonnegative();
+    registerParameter("OmegaX", &m_omega_x).setUnit("nm").setNonnegative();
+    registerParameter("OmegaY", &m_omega_y).setUnit("nm").setNonnegative();
 }
 
 void IFTDistribution2D::register_gamma()
 {
-    registerParameter(BornAgain::Gamma, &m_gamma)
-        .setUnit(BornAgain::UnitsRad)
+    registerParameter("Gamma", &m_gamma)
+        .setUnit("rad")
         .setLimited(-M_PI_2, M_PI_2);
 }
 
@@ -58,7 +57,7 @@ void IFTDistribution2D::init_parameters()
 FTDistribution2DCauchy::FTDistribution2DCauchy(double omega_x, double omega_y, double gamma)
     : IFTDistribution2D(omega_x, omega_y, gamma)
 {
-    setName(BornAgain::FTDistribution2DCauchyType);
+    setName("FTDistribution2DCauchy");
     init_parameters();
 }
 
@@ -80,7 +79,7 @@ std::unique_ptr<IDistribution2DSampler> FTDistribution2DCauchy::createSampler()
 FTDistribution2DGauss::FTDistribution2DGauss(double omega_x, double omega_y, double gamma)
     : IFTDistribution2D(omega_x, omega_y, gamma)
 {
-    setName(BornAgain::FTDistribution2DGaussType);
+    setName("FTDistribution2DGauss");
     init_parameters();
 }
 
@@ -102,7 +101,7 @@ std::unique_ptr<IDistribution2DSampler> FTDistribution2DGauss::createSampler() c
 FTDistribution2DGate::FTDistribution2DGate(double omega_x, double omega_y, double gamma)
     : IFTDistribution2D(omega_x, omega_y, gamma)
 {
-    setName(BornAgain::FTDistribution2DGateType);
+    setName("FTDistribution2DGate");
     init_parameters();
 }
 
@@ -125,7 +124,7 @@ std::unique_ptr<IDistribution2DSampler> FTDistribution2DGate::createSampler() co
 FTDistribution2DCone::FTDistribution2DCone(double omega_x, double omega_y, double gamma)
     : IFTDistribution2D(omega_x, omega_y, gamma)
 {
-    setName(BornAgain::FTDistribution2DConeType);
+    setName("FTDistribution2DCone");
     init_parameters();
 }
 
@@ -161,9 +160,9 @@ FTDistribution2DVoigt::FTDistribution2DVoigt(double omega_x, double omega_y, dou
                                              double gamma)
     : IFTDistribution2D(omega_x, omega_y, gamma), m_eta(eta)
 {
-    setName(BornAgain::FTDistribution2DVoigtType);
+    setName("FTDistribution2DVoigt");
     register_omega();
-    registerParameter(BornAgain::Eta, &m_eta);
+    registerParameter("Eta", &m_eta);
     register_gamma();
 }
 
diff --git a/Core/Aggregate/IInterferenceFunction.cpp b/Core/Aggregate/IInterferenceFunction.cpp
index c758ff7a480ef22d687e7a190369a7c55b6dbb1d..017cd4b938c333cb1c2f932a2de99d9450993859 100644
--- a/Core/Aggregate/IInterferenceFunction.cpp
+++ b/Core/Aggregate/IInterferenceFunction.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Aggregate/IInterferenceFunction.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/RealParameter.h"
 #include <algorithm>
 #include <stdexcept>
@@ -62,7 +61,7 @@ double IInterferenceFunction::iff_no_inner(const kvector_t q, double outer_iff)
 
 void IInterferenceFunction::init_parameters()
 {
-    registerParameter(BornAgain::PositionVariance, &m_position_var)
-        .setUnit(BornAgain::UnitsNm2)
+    registerParameter("PositionVariance", &m_position_var)
+        .setUnit("nm^2")
         .setNonnegative();
 }
diff --git a/Core/Aggregate/InterferenceFunction1DLattice.cpp b/Core/Aggregate/InterferenceFunction1DLattice.cpp
index e14553061e5eed8baa3682d10ab1f1ca28a9bc08..2b89163690c5344b2b0b173d69f5064060ef47d0 100644
--- a/Core/Aggregate/InterferenceFunction1DLattice.cpp
+++ b/Core/Aggregate/InterferenceFunction1DLattice.cpp
@@ -14,7 +14,6 @@
 
 #include "Core/Aggregate/InterferenceFunction1DLattice.h"
 #include "Core/Aggregate/FTDecayFunctions.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -34,7 +33,7 @@ static const int min_points = 4;
 InterferenceFunction1DLattice::InterferenceFunction1DLattice(double length, double xi)
     : m_lattice_params(length, xi), m_na{0}
 {
-    setName(BornAgain::InterferenceFunction1DLatticeType);
+    setName("Interference1DLattice");
     init_parameters();
 }
 
@@ -103,8 +102,8 @@ InterferenceFunction1DLattice::InterferenceFunction1DLattice(
 
 void InterferenceFunction1DLattice::init_parameters()
 {
-    registerParameter(BornAgain::Length, &m_lattice_params.m_length)
-        .setUnit(BornAgain::UnitsNm)
+    registerParameter("Length", &m_lattice_params.m_length)
+        .setUnit("nm")
         .setNonnegative();
-    registerParameter(BornAgain::Xi, &m_lattice_params.m_xi).setUnit(BornAgain::UnitsRad);
+    registerParameter("Xi", &m_lattice_params.m_xi).setUnit("rad");
 }
diff --git a/Core/Aggregate/InterferenceFunction2DLattice.cpp b/Core/Aggregate/InterferenceFunction2DLattice.cpp
index 8c2a20fe4e958b2cdf0e2d43d43c15e15777f8ae..07ab60b159c35c54633c01f349580ef7e085f582 100644
--- a/Core/Aggregate/InterferenceFunction2DLattice.cpp
+++ b/Core/Aggregate/InterferenceFunction2DLattice.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Aggregate/InterferenceFunction2DLattice.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -30,7 +29,7 @@ static const int min_points = 4;
 InterferenceFunction2DLattice::InterferenceFunction2DLattice(const Lattice2D& lattice)
     : m_integrate_xi(false)
 {
-    setName(BornAgain::InterferenceFunction2DLatticeType);
+    setName("Interference2DLattice");
     setLattice(lattice);
     init_parameters();
 }
@@ -44,7 +43,7 @@ InterferenceFunction2DLattice::InterferenceFunction2DLattice(double length_1, do
                                                              double alpha, double xi)
     : m_integrate_xi(false), m_na(0), m_nb(0)
 {
-    setName(BornAgain::InterferenceFunction2DLatticeType);
+    setName("Interference2DLattice");
     setLattice(BasicLattice(length_1, length_2, alpha, xi));
     init_parameters();
 }
diff --git a/Core/Aggregate/InterferenceFunction2DParaCrystal.cpp b/Core/Aggregate/InterferenceFunction2DParaCrystal.cpp
index e0443004f8836a67168b248184f9c1af075627fc..83c4a70bcaba7929652a130c2296af029f3b7521 100644
--- a/Core/Aggregate/InterferenceFunction2DParaCrystal.cpp
+++ b/Core/Aggregate/InterferenceFunction2DParaCrystal.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Aggregate/InterferenceFunction2DParaCrystal.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/ParameterPool.h"
@@ -26,7 +25,7 @@ InterferenceFunction2DParaCrystal::InterferenceFunction2DParaCrystal(const Latti
                                                                      double domain_size_2)
     : m_integrate_xi(false), m_damping_length(damping_length)
 {
-    setName(BornAgain::InterferenceFunction2DParaCrystalType);
+    setName("Interference2DParaCrystal");
     setLattice(lattice);
     setDomainSizes(domain_size_1, domain_size_2);
     init_parameters();
@@ -45,7 +44,7 @@ InterferenceFunction2DParaCrystal::InterferenceFunction2DParaCrystal(double leng
                                                                      double damping_length)
     : m_integrate_xi(false), m_damping_length(damping_length)
 {
-    setName(BornAgain::InterferenceFunction2DParaCrystalType);
+    setName("Interference2DParaCrystal");
     setLattice(BasicLattice(length_1, length_2, alpha, xi));
     setDomainSizes(0.0, 0.0);
     init_parameters();
@@ -60,14 +59,14 @@ InterferenceFunction2DParaCrystal* InterferenceFunction2DParaCrystal::clone() co
 
 void InterferenceFunction2DParaCrystal::init_parameters()
 {
-    registerParameter(BornAgain::DampingLength, &m_damping_length)
-        .setUnit(BornAgain::UnitsNm)
+    registerParameter("DampingLength", &m_damping_length)
+        .setUnit("nm")
         .setNonnegative();
-    registerParameter(BornAgain::DomainSize1, &m_domain_sizes[0])
-        .setUnit(BornAgain::UnitsNm)
+    registerParameter("DomainSize1", &m_domain_sizes[0])
+        .setUnit("nm")
         .setNonnegative();
-    registerParameter(BornAgain::DomainSize2, &m_domain_sizes[1])
-        .setUnit(BornAgain::UnitsNm)
+    registerParameter("DomainSize2", &m_domain_sizes[1])
+        .setUnit("nm")
         .setNonnegative();
 }
 
diff --git a/Core/Aggregate/InterferenceFunction2DSuperLattice.cpp b/Core/Aggregate/InterferenceFunction2DSuperLattice.cpp
index b1967e1e5b5a5fa89224ca470203b1b7716322ae..2d31ba94f9540f34444a93a749404ee9390d24d6 100644
--- a/Core/Aggregate/InterferenceFunction2DSuperLattice.cpp
+++ b/Core/Aggregate/InterferenceFunction2DSuperLattice.cpp
@@ -14,7 +14,6 @@
 
 #include "Core/Aggregate/InterferenceFunction2DSuperLattice.h"
 #include "Core/Aggregate/InterferenceFunctionNone.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -29,7 +28,7 @@ InterferenceFunction2DSuperLattice::InterferenceFunction2DSuperLattice(const Lat
                                                                        unsigned size_2)
     : m_integrate_xi(false), mP_substructure(nullptr), m_size_1(size_1), m_size_2(size_2)
 {
-    setName(BornAgain::InterferenceFunction2DSuperLattice);
+    setName("Interference2DSuperLattice");
     setLattice(lattice);
     setSubstructureIFF(InterferenceFunctionNone());
     init_parameters();
@@ -44,7 +43,7 @@ InterferenceFunction2DSuperLattice::InterferenceFunction2DSuperLattice(
     double length_1, double length_2, double alpha, double xi, unsigned size_1, unsigned size_2)
     : m_integrate_xi(false), mP_substructure(nullptr), m_size_1(size_1), m_size_2(size_2)
 {
-    setName(BornAgain::InterferenceFunction2DSuperLattice);
+    setName("Interference2DSuperLattice");
     setLattice(BasicLattice(length_1, length_2, alpha, xi));
     setSubstructureIFF(InterferenceFunctionNone());
     init_parameters();
diff --git a/Core/Aggregate/InterferenceFunction3DLattice.cpp b/Core/Aggregate/InterferenceFunction3DLattice.cpp
index 9c286695a86f6d7e3a7d1f242e3140ba053fb7ff..7b34359480d0a53f5a8db8a26da8c5af757f1e3c 100644
--- a/Core/Aggregate/InterferenceFunction3DLattice.cpp
+++ b/Core/Aggregate/InterferenceFunction3DLattice.cpp
@@ -14,14 +14,13 @@
 
 #include "Core/Aggregate/InterferenceFunction3DLattice.h"
 #include "Core/Aggregate/IPeakShape.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include <algorithm>
 
 InterferenceFunction3DLattice::InterferenceFunction3DLattice(const Lattice& lattice)
     : m_lattice(lattice), mP_peak_shape(nullptr), m_rec_radius(0.0)
 {
-    setName(BornAgain::InterferenceFunction3DLatticeType);
+    setName("Interference3DLattice");
     initRecRadius();
 }
 
diff --git a/Core/Aggregate/InterferenceFunctionFinite2DLattice.cpp b/Core/Aggregate/InterferenceFunctionFinite2DLattice.cpp
index c5721e9aa23b8e4b0edc0472567623b0969ffee1..844f8249c0fbc8472833db5df8ed4b596a209b7d 100644
--- a/Core/Aggregate/InterferenceFunctionFinite2DLattice.cpp
+++ b/Core/Aggregate/InterferenceFunctionFinite2DLattice.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Aggregate/InterferenceFunctionFinite2DLattice.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -31,7 +30,7 @@ InterferenceFunctionFinite2DLattice::InterferenceFunctionFinite2DLattice(const L
                                                                          unsigned N_1, unsigned N_2)
     : m_integrate_xi(false), m_N_1(N_1), m_N_2(N_2)
 {
-    setName(BornAgain::InterferenceFunctionFinite2DLatticeType);
+    setName("InterferenceFinite2DLattice");
     setLattice(lattice);
     init_parameters();
 }
@@ -49,7 +48,7 @@ InterferenceFunctionFinite2DLattice::InterferenceFunctionFinite2DLattice(double
                                                                          unsigned N_1, unsigned N_2)
     : m_integrate_xi(false), m_N_1(N_1), m_N_2(N_2)
 {
-    setName(BornAgain::InterferenceFunctionFinite2DLatticeType);
+    setName("InterferenceFinite2DLattice");
     setLattice(BasicLattice(length_1, length_2, alpha, xi));
     init_parameters();
 }
diff --git a/Core/Aggregate/InterferenceFunctionFinite3DLattice.cpp b/Core/Aggregate/InterferenceFunctionFinite3DLattice.cpp
index 345e4ee8f1c7155a6faa4b249e13d6048a51bca5..e6e1518ba58cecf85a5b2a599301cbd9c8cfe630 100644
--- a/Core/Aggregate/InterferenceFunctionFinite3DLattice.cpp
+++ b/Core/Aggregate/InterferenceFunctionFinite3DLattice.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Aggregate/InterferenceFunctionFinite3DLattice.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -32,7 +31,7 @@ InterferenceFunctionFinite3DLattice::InterferenceFunctionFinite3DLattice(const L
                                                                          unsigned N_3)
     : m_N_1(N_1), m_N_2(N_2), m_N_3(N_3)
 {
-    setName(BornAgain::InterferenceFunctionFinite3DLatticeType);
+    setName("InterferenceFinite3DLattice");
     setLattice(lattice);
 }
 
diff --git a/Core/Aggregate/InterferenceFunctionHardDisk.cpp b/Core/Aggregate/InterferenceFunctionHardDisk.cpp
index b4426497f8b5e4cf8cc2e490b349110ced5750fd..3431d55561be163440abd644a958182428fa6e78 100644
--- a/Core/Aggregate/InterferenceFunctionHardDisk.cpp
+++ b/Core/Aggregate/InterferenceFunctionHardDisk.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Aggregate/InterferenceFunctionHardDisk.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/RealParameter.h"
 #include "Core/Tools/MathFunctions.h"
 #include <cmath>
@@ -29,7 +28,7 @@ double W2(double x);
 InterferenceFunctionHardDisk::InterferenceFunctionHardDisk(double radius, double density)
     : m_radius(radius), m_density(density)
 {
-    setName(BornAgain::InterferenceFunctionHardDiskType);
+    setName("InterferenceHardDisk");
     validateParameters();
     init_parameters();
 }
@@ -60,7 +59,7 @@ InterferenceFunctionHardDisk::InterferenceFunctionHardDisk(
     const InterferenceFunctionHardDisk& other)
     : IInterferenceFunction(other), m_radius(other.m_radius), m_density(other.m_density)
 {
-    setName(BornAgain::InterferenceFunctionHardDiskType);
+    setName("InterferenceHardDisk");
     validateParameters();
     init_parameters();
 }
@@ -82,9 +81,9 @@ double InterferenceFunctionHardDisk::iff_without_dw(const kvector_t q) const
 
 void InterferenceFunctionHardDisk::init_parameters()
 {
-    registerParameter(BornAgain::Radius, &m_radius).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::TotalParticleDensity, &m_density)
-        .setUnit(BornAgain::UnitsNm)
+    registerParameter("Radius", &m_radius).setUnit("nm").setNonnegative();
+    registerParameter("TotalParticleDensity", &m_density)
+        .setUnit("nm")
         .setNonnegative();
 }
 
diff --git a/Core/Aggregate/InterferenceFunctionNone.cpp b/Core/Aggregate/InterferenceFunctionNone.cpp
index fc4880a13e162f066271c41f307a6e62bf240e77..4b335f297da7cc7d50ab146a6a630f7f8f6810f2 100644
--- a/Core/Aggregate/InterferenceFunctionNone.cpp
+++ b/Core/Aggregate/InterferenceFunctionNone.cpp
@@ -13,11 +13,10 @@
 // ************************************************************************** //
 
 #include "Core/Aggregate/InterferenceFunctionNone.h"
-#include "Core/Basics/BornAgainNamespace.h"
 
 InterferenceFunctionNone::InterferenceFunctionNone()
 {
-    setName(BornAgain::InterferenceFunctionNoneType);
+    setName("InterferenceNone");
 }
 
 InterferenceFunctionNone* InterferenceFunctionNone::clone() const
diff --git a/Core/Aggregate/InterferenceFunctionRadialParaCrystal.cpp b/Core/Aggregate/InterferenceFunctionRadialParaCrystal.cpp
index 445755817ebcee15fc226a5db104482828441240..5d2afd22b230994187f05b9597261c5475721cde 100644
--- a/Core/Aggregate/InterferenceFunctionRadialParaCrystal.cpp
+++ b/Core/Aggregate/InterferenceFunctionRadialParaCrystal.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Aggregate/InterferenceFunctionRadialParaCrystal.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Parametrization/ParameterPool.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -27,7 +26,7 @@ InterferenceFunctionRadialParaCrystal::InterferenceFunctionRadialParaCrystal(dou
     : m_peak_distance(peak_distance), m_damping_length(damping_length), m_use_damping_length(true),
       m_kappa(0.0), m_domain_size(0.0)
 {
-    setName(BornAgain::InterferenceFunctionRadialParaCrystalType);
+    setName("InterferenceRadialParaCrystal");
     if (m_damping_length == 0.0)
         m_use_damping_length = false;
     init_parameters();
@@ -35,15 +34,15 @@ InterferenceFunctionRadialParaCrystal::InterferenceFunctionRadialParaCrystal(dou
 
 void InterferenceFunctionRadialParaCrystal::init_parameters()
 {
-    registerParameter(BornAgain::PeakDistance, &m_peak_distance)
-        .setUnit(BornAgain::UnitsNm)
+    registerParameter("PeakDistance", &m_peak_distance)
+        .setUnit("nm")
         .setNonnegative();
-    registerParameter(BornAgain::DampingLength, &m_damping_length)
-        .setUnit(BornAgain::UnitsNm)
+    registerParameter("DampingLength", &m_damping_length)
+        .setUnit("nm")
         .setNonnegative();
-    registerParameter(BornAgain::SizeSpaceCoupling, &m_kappa).setNonnegative();
-    registerParameter(BornAgain::DomainSize, &m_domain_size)
-        .setUnit(BornAgain::UnitsNm)
+    registerParameter("SizeSpaceCoupling", &m_kappa).setNonnegative();
+    registerParameter("DomainSize", &m_domain_size)
+        .setUnit("nm")
         .setNonnegative();
 }
 
diff --git a/Core/Aggregate/InterferenceFunctionTwin.cpp b/Core/Aggregate/InterferenceFunctionTwin.cpp
index 1f74d967945cfa4c0d9b5b9b2999c63876b53bbd..46322c19e61c7cbcc60ae5d14c32b5e9b2a34e23 100644
--- a/Core/Aggregate/InterferenceFunctionTwin.cpp
+++ b/Core/Aggregate/InterferenceFunctionTwin.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Aggregate/InterferenceFunctionTwin.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/RealParameter.h"
 #include <cmath>
 
@@ -21,7 +20,7 @@ InterferenceFunctionTwin::InterferenceFunctionTwin(const kvector_t& direction, d
                                                    double std_dev)
     : m_direction(direction), m_distance(mean_distance), m_std_dev(std_dev)
 {
-    setName(BornAgain::InterferenceFunctionTwinType);
+    setName("InterferenceTwin");
     validateParameters();
     init_parameters();
 }
@@ -50,7 +49,7 @@ InterferenceFunctionTwin::InterferenceFunctionTwin(const InterferenceFunctionTwi
     : IInterferenceFunction(other), m_direction(other.m_direction), m_distance(other.m_distance),
       m_std_dev(other.m_std_dev)
 {
-    setName(BornAgain::InterferenceFunctionTwinType);
+    setName("InterferenceTwin");
     validateParameters();
     init_parameters();
 }
@@ -73,9 +72,9 @@ void InterferenceFunctionTwin::validateParameters() const
 
 void InterferenceFunctionTwin::init_parameters()
 {
-    registerVector(BornAgain::Direction, &m_direction, BornAgain::UnitsNone);
-    registerParameter(BornAgain::Mean, &m_distance).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::StdDeviation, &m_std_dev)
-        .setUnit(BornAgain::UnitsNm)
+    registerVector("Direction", &m_direction, "");
+    registerParameter("Mean", &m_distance).setUnit("nm").setNonnegative();
+    registerParameter("StdDev", &m_std_dev)
+        .setUnit("nm")
         .setNonnegative();
 }
diff --git a/Core/Aggregate/ParticleLayout.cpp b/Core/Aggregate/ParticleLayout.cpp
index a1352816e3f4b75ad3ed2b8ff3cb80049483ba23..79e247b075b6fffd14bb3aa3ce7f1eb868b22f6e 100644
--- a/Core/Aggregate/ParticleLayout.cpp
+++ b/Core/Aggregate/ParticleLayout.cpp
@@ -15,7 +15,6 @@
 #include "Core/Aggregate/ParticleLayout.h"
 #include "Core/Aggregate/IInterferenceFunction.h"
 #include "Core/Aggregate/InterferenceFunctionNone.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Parametrization/ParameterPool.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -29,11 +28,11 @@ namespace
 //! which is the case for 2D functions.
 bool particleDensityIsProvidedByInterference(const IInterferenceFunction& iff)
 {
-    if (iff.getName() == BornAgain::InterferenceFunction2DLatticeType
-        || iff.getName() == BornAgain::InterferenceFunction2DParaCrystalType
-        || iff.getName() == BornAgain::InterferenceFunction2DSuperLattice
-        || iff.getName() == BornAgain::InterferenceFunctionFinite2DLatticeType
-        || iff.getName() == BornAgain::InterferenceFunctionHardDiskType)
+    if (iff.getName() == "Interference2DLattice"
+        || iff.getName() == "Interference2DParaCrystal"
+        || iff.getName() == "Interference2DSuperLattice"
+        || iff.getName() == "InterferenceFinite2DLattice"
+        || iff.getName() == "InterferenceHardDisk")
         return true;
     return false;
 }
@@ -41,7 +40,7 @@ bool particleDensityIsProvidedByInterference(const IInterferenceFunction& iff)
 
 ParticleLayout::ParticleLayout() : mP_interference_function{nullptr}, m_total_particle_density{0.01}
 {
-    setName(BornAgain::ParticleLayoutType);
+    setName("ParticleLayout");
     registerParticleDensity();
     registerWeight();
 }
@@ -51,7 +50,7 @@ ParticleLayout::~ParticleLayout() {} // needs member class definitions => don't
 ParticleLayout::ParticleLayout(const IAbstractParticle& particle, double abundance)
     : mP_interference_function{nullptr}, m_total_particle_density{0.01}
 {
-    setName(BornAgain::ParticleLayoutType);
+    setName("ParticleLayout");
     addParticle(particle, abundance);
     registerParticleDensity();
     registerWeight();
@@ -173,14 +172,14 @@ void ParticleLayout::setAndRegisterInterferenceFunction(IInterferenceFunction* c
 void ParticleLayout::registerParticleDensity(bool make_registered)
 {
     if (make_registered) {
-        if (!parameter(BornAgain::TotalParticleDensity))
-            registerParameter(BornAgain::TotalParticleDensity, &m_total_particle_density);
+        if (!parameter("TotalParticleDensity"))
+            registerParameter("TotalParticleDensity", &m_total_particle_density);
     } else {
-        removeParameter(BornAgain::TotalParticleDensity);
+        removeParameter("TotalParticleDensity");
     }
 }
 
 void ParticleLayout::registerWeight()
 {
-    registerParameter(BornAgain::Weight, &m_weight);
+    registerParameter("Weight", &m_weight);
 }
diff --git a/Core/Basics/BornAgainNamespace.h b/Core/Basics/BornAgainNamespace.h
deleted file mode 100644
index a410174e9f5123aa8f03ec5efaf36abbe73a6c6a..0000000000000000000000000000000000000000
--- a/Core/Basics/BornAgainNamespace.h
+++ /dev/null
@@ -1,261 +0,0 @@
-// ************************************************************************** //
-//
-//  BornAgain: simulate and fit scattering at grazing incidence
-//
-//! @file      Core/Basics/BornAgainNamespace.h
-//! @brief     Defines BornAgain namespace
-//!
-//! @homepage  http://www.bornagainproject.org
-//! @license   GNU General Public License v3 or higher (see COPYING)
-//! @copyright Forschungszentrum Jülich GmbH 2018
-//! @authors   Scientific Computing Group at MLZ (see CITATION, AUTHORS)
-//
-// ************************************************************************** //
-
-#ifndef BORNAGAIN_CORE_BASICS_BORNAGAINNAMESPACE_H
-#define BORNAGAIN_CORE_BASICS_BORNAGAINNAMESPACE_H
-
-#include <string>
-
-//! Mostly names of classes and parameters.
-
-namespace BornAgain
-{
-// Axis constants
-const std::string PHI_AXIS_NAME = "phi_f";
-const std::string ALPHA_AXIS_NAME = "alpha_f";
-const std::string U_AXIS_NAME = "u";
-const std::string V_AXIS_NAME = "v";
-const size_t X_AXIS_INDEX = 0;
-const size_t Y_AXIS_INDEX = 1;
-
-// Simulation types
-const std::string GISASSimulationType = "GISASSimulation";
-const std::string OffSpecSimulationType = "OffSpecSimulation";
-const std::string SpecularSimulationType = "SpecularSimulation";
-const std::string DepthProbeSimulationType = "DepthProbeSimulation";
-
-// Instrument related constants
-const std::string InstrumentType = "Instrument";
-const std::string ResolutionFunction2D = "ResolutionFunction2D";
-const std::string DetectorType = "Detector";
-const std::string SphericalDetectorType = "SphericalDetector";
-const std::string RectangularDetectorType = "RectangularDetector";
-const std::string IsGISAXSDetectorType = "IsGISAXSDetector";
-const std::string SpecularDetectorType = "SpecularDetector1D";
-const std::string BeamType = "Beam";
-const std::string GaussianFootprintFactorType = "FootprintFactorGaussian";
-const std::string SquareFootprintFactorType = "FootprintFactorSquare";
-const std::string DetectorAnalyzer = "Analyzer";
-const std::string ConstantBackgroundType = "ConstantBackground";
-const std::string PoissonNoiseBackgroundType = "PoissonNoiseBackground";
-
-// ISample object types
-const std::string MultiLayerType = "MultiLayer";
-const std::string LayerType = "Layer";
-const std::string LayerInterfaceType = "LayerInterface";
-const std::string ParticleLayoutType = "ParticleLayout";
-const std::string ParticleType = "Particle";
-const std::string ParticleCoreShellType = "ParticleCoreShell";
-const std::string ParticleDistributionType = "ParticleDistribution";
-const std::string ParticleCompositionType = "ParticleComposition";
-const std::string TransformationType = "Rotation";
-
-const std::string LayerBasicRoughnessType = "LayerBasicRoughness";
-const std::string LayerZeroRoughnessType = "LayerZeroRoughness";
-
-const std::string BasicLatticeType = "BasicLattice";
-const std::string SquareLatticeType = "SquareLattice";
-const std::string HexagonalLatticeType = "HexagonalLattice";
-
-const std::string InterferenceFunctionNoneType = "InterferenceNone";
-const std::string InterferenceFunction1DLatticeType = "Interference1DLattice";
-const std::string InterferenceFunction2DLatticeType = "Interference2DLattice";
-const std::string InterferenceFunction2DParaCrystalType = "Interference2DParaCrystal";
-const std::string InterferenceFunction2DSuperLattice = "Interference2DSuperLattice";
-const std::string InterferenceFunction3DLatticeType = "Interference3DLattice";
-const std::string InterferenceFunctionFinite2DLatticeType = "InterferenceFinite2DLattice";
-const std::string InterferenceFunctionFinite3DLatticeType = "InterferenceFinite3DLattice";
-const std::string InterferenceFunctionHardDiskType = "InterferenceHardDisk";
-const std::string InterferenceFunctionRadialParaCrystalType = "InterferenceRadialParaCrystal";
-const std::string InterferenceFunctionTwinType = "InterferenceTwin";
-
-const std::string CrystalType = "Crystal";
-const std::string LatticeType = "Lattice";
-const std::string MesoCrystalType = "MesoCrystal";
-
-const std::string FF2DLattice = "2DLatticeFF";
-const std::string FFAnisoPyramidType = "AnisoPyramid";
-const std::string FFBoxType = "Box";
-const std::string FFConeType = "Cone";
-const std::string FFCone6Type = "Cone6";
-const std::string FFCuboctahedronType = "Cuboctahedron";
-const std::string FFCylinderType = "Cylinder";
-const std::string FFDebyeBuecheType = "FormFactorDebyeBueche";
-const std::string FFDodecahedronType = "Dodecahedron";
-const std::string FFDotType = "Dot";
-const std::string FFEllipsoidalCylinderType = "EllipsoidalCylinder";
-const std::string FFFullSphereType = "FullSphere";
-const std::string FFFullSpheroidType = "FullSpheroid";
-const std::string FFGaussType = "FormFactorGauss";
-const std::string FFHemiEllipsoidType = "HemiEllipsoid";
-const std::string FFIcosahedronType = "Icosahedron";
-const std::string FFLongBoxGaussType = "FormFactorLongBoxGauss";
-const std::string FFLongBoxLorentzType = "FormFactorLongBoxLorentz";
-const std::string FFLorentzType = "FormFactorLorentz";
-const std::string FFOrnsteinZernikeType = "FormFactorOrnsteinZernike";
-const std::string FFPrism3Type = "Prism3";
-const std::string FFPrism6Type = "Prism6";
-const std::string FFPyramidType = "Pyramid";
-const std::string FFBarGaussType = "BarGauss";
-const std::string FFBarLorentzType = "BarLorentz";
-const std::string FFRipple1BoxType = "Ripple1Box";
-const std::string FFRipple1GaussType = "Ripple1Gauss";
-const std::string FFRipple1LorentzType = "Ripple1Lorentz";
-const std::string FFRipple2BoxType = "Ripple2Box";
-const std::string FFRipple2GaussType = "Ripple2Gauss";
-const std::string FFRipple2LorentzType = "Ripple2Lorentz";
-const std::string FFTetrahedronType = "Tetrahedron";
-const std::string FFTruncatedCubeType = "TruncatedCube";
-const std::string FFTruncatedSphereType = "TruncatedSphere";
-const std::string FFTruncatedSpheroidType = "TruncatedSpheroid";
-
-const std::string FormFactorCrystalType = "FormFactorCrystal";
-const std::string FormFactorSphereGaussianRadiusType = "FormFactorSphereGaussianRadius";
-const std::string FormFactorSphereLogNormalRadiusType = "FormFactorSphereLogNormalRadius";
-const std::string FormFactorSphereUniformRadiusType = "FormFactorSphereUniformRadius";
-const std::string FormFactorDWBAType = "FormFactorDWBA";
-const std::string FormFactorPolarizedDWBAType = "FormFactorDWBAPol";
-const std::string FormFactorPolarizedBAType = "FormFactorBAPol";
-
-const std::string FormFactorCoreShellType = "FormFactorCoreShell";
-const std::string FormFactorDecoratorPositionFactorType = "FormFactorDecoratorPositionFactor";
-const std::string FormFactorDecoratorRotationType = "FormFactorDecoratorRotation";
-const std::string FormFactorDecoratorMaterialType = "FormFactorDecoratorMaterial";
-const std::string FormFactorWeightedType = "FormFactorWeighted";
-
-const std::string XRotationType = "XRotation";
-const std::string YRotationType = "YRotation";
-const std::string ZRotationType = "ZRotation";
-const std::string EulerRotationType = "EulerRotation";
-
-const std::string DistributionNoneType = "DistributionNone";
-const std::string DistributionGateType = "DistributionGate";
-const std::string DistributionLorentzType = "DistributionLorentz";
-const std::string DistributionGaussianType = "DistributionGaussian";
-const std::string DistributionLogNormalType = "DistributionLogNormal";
-const std::string DistributionCosineType = "DistributionCosine";
-const std::string DistributionTrapezoidType = "DistributionTrapezoid";
-
-const std::string FTDistribution1DCauchyType = "FTDistribution1DCauchy";
-const std::string FTDistribution1DGaussType = "FTDistribution1DGauss";
-const std::string FTDistribution1DGateType = "FTDistribution1DGate";
-const std::string FTDistribution1DTriangleType = "FTDistribution1DTriangle";
-const std::string FTDistribution1DCosineType = "FTDistribution1DCosine";
-const std::string FTDistribution1DVoigtType = "FTDistribution1DVoigt";
-
-const std::string FTDistribution2DCauchyType = "FTDistribution2DCauchy";
-const std::string FTDistribution2DGaussType = "FTDistribution2DGauss";
-const std::string FTDistribution2DGateType = "FTDistribution2DGate";
-const std::string FTDistribution2DConeType = "FTDistribution2DCone";
-const std::string FTDistribution2DVoigtType = "FTDistribution2DVoigt";
-
-const std::string FTDecayFunction1DCauchyType = "FTDecayFunction1DCauchy";
-const std::string FTDecayFunction1DGaussType = "FTDecayFunction1DGauss";
-const std::string FTDecayFunction1DTriangleType = "FTDecayFunction1DTriangle";
-const std::string FTDecayFunction1DVoigtType = "FTDecayFunction1DVoigt";
-
-const std::string FTDecayFunction2DCauchyType = "FTDecayFunction2DCauchy";
-const std::string FTDecayFunction2DGaussType = "FTDecayFunction2DGauss";
-const std::string FTDecayFunction2DVoigtType = "FTDecayFunction2DVoigt";
-
-const std::string SampleBuilderType = "SampleBuilder";
-
-// Parameter names (dimensions, angles, ...)
-const std::string Abundance = "Abundance";
-const std::string Position = "Position";
-const std::string BasisVector_A = "BasisA";
-const std::string BasisVector_B = "BasisB";
-const std::string BasisVector_C = "BasisC";
-const std::string Radius = "Radius";
-const std::string RadiusX = "RadiusX";
-const std::string RadiusY = "RadiusY";
-const std::string MeanRadius = "MeanRadius";
-const std::string SigmaRadius = "SigmaRadius";
-const std::string FullWidth = "FullWidth";
-const std::string Edge = "Edge";
-const std::string BaseEdge = "BaseEdge";
-const std::string Length = "Length";
-const std::string PositionVariance = "PositionVariance";
-const std::string RemovedLength = "RemovedLength";
-const std::string Width = "Width";
-const std::string LeftWidth = "LeftWidth";
-const std::string MiddleWidth = "MiddleWidth";
-const std::string RightWidth = "RightWidth";
-const std::string Center = "Center";
-const std::string Height = "Height";
-const std::string HeightRatio = "HeightRatio";
-const std::string HeightFlattening = "HeightFlattening";
-const std::string DeltaHeight = "DeltaHeight";
-const std::string Weight = "Weight";
-const std::string Intensity = "Intensity";
-const std::string Wavelength = "Wavelength";
-const std::string Angle = "Angle";
-const std::string Alpha = "Alpha";
-const std::string Beta = "Beta";
-const std::string Gamma = "Gamma";
-const std::string Delta = "Delta";
-const std::string Phi = "Phi";
-const std::string Xi = "Xi";
-const std::string Minimum = "Min";
-const std::string Maximum = "Max";
-const std::string Mean = "Mean";
-const std::string StdDeviation = "StdDev";
-const std::string HWHM = "HWHM";
-const std::string Median = "Median";
-const std::string ScaleParameter = "ScaleParameter";
-const std::string Sigma = "Sigma";
-const std::string Eta = "Eta";
-const std::string Omega = "Omega";
-const std::string OmegaX = "OmegaX";
-const std::string OmegaY = "OmegaY";
-const std::string DecayLength = "DecayLength";
-const std::string DecayLengthX = "DecayLengthX";
-const std::string DecayLengthY = "DecayLengthY";
-const std::string SigmaX = "SigmaX";
-const std::string SigmaY = "SigmaY";
-const std::string HeightDWFactor = "HeightDWFactor";
-const std::string RadiusDWFactor = "RadiusDWFactor";
-const std::string AsymmetryLength = "AsymmetryLength";
-const std::string LatticeLength = "LatticeLength";
-const std::string LatticeLength1 = "LatticeLength1";
-const std::string LatticeLength2 = "LatticeLength2";
-const std::string LatticeAngle = "Alpha";
-const std::string DampingLength = "DampingLength";
-const std::string DomainSize = "DomainSize";
-const std::string DomainSize1 = "DomainSize1";
-const std::string DomainSize2 = "DomainSize2";
-const std::string PeakDistance = "PeakDistance";
-const std::string SizeSpaceCoupling = "SizeSpaceCoupling";
-const std::string Thickness = "Thickness";
-const std::string Hurst = "Hurst";
-const std::string CorrelationLength = "CorrelationLength";
-const std::string CrossCorrelationLength = "CrossCorrelationLength";
-const std::string Inclination = "InclinationAngle";
-const std::string Azimuth = "AzimuthalAngle";
-const std::string TotalParticleDensity = "TotalParticleDensity";
-const std::string ExternalField = "ExternalField";
-const std::string BlochVector = "BlochVector";
-const std::string Direction = "Direction";
-const std::string Efficiency = "Efficiency";
-const std::string Transmission = "Transmission";
-const std::string BackgroundValue = "BackgroundValue";
-const std::string BeamToSampleWidthRatio = "BeamToSampleWidthRatio";
-
-const std::string UnitsRad = "rad";
-const std::string UnitsNm = "nm";
-const std::string UnitsNm2 = "nm^2";
-const std::string UnitsNone = "";
-} // namespace BornAgain
-
-#endif // BORNAGAIN_CORE_BASICS_BORNAGAINNAMESPACE_H
diff --git a/Core/Beam/Beam.cpp b/Core/Beam/Beam.cpp
index 96fcb8ad73b8fb8b9fd406f57a8c9d85e5d10a22..8079cf62f83433419f287163445439e26c954f2a 100644
--- a/Core/Beam/Beam.cpp
+++ b/Core/Beam/Beam.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Beam/Beam.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Complex.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
@@ -25,7 +24,7 @@ static constexpr double INCLINATION_LIMIT = M_PI_2 + 1e-10;
 
 Beam::Beam() : m_wavelength(1.0), m_alpha(0.0), m_phi(0.0), m_intensity(1.0)
 {
-    setName(BornAgain::BeamType);
+    setName("Beam");
     init_parameters();
 }
 
@@ -126,17 +125,17 @@ std::vector<const INode*> Beam::getChildren() const
 
 void Beam::init_parameters()
 {
-    registerParameter(BornAgain::Intensity, &m_intensity).setNonnegative();
-    registerParameter(BornAgain::Wavelength, &m_wavelength)
-        .setUnit(BornAgain::UnitsNm)
+    registerParameter("Intensity", &m_intensity).setNonnegative();
+    registerParameter("Wavelength", &m_wavelength)
+        .setUnit("nm")
         .setNonnegative();
-    registerParameter(BornAgain::Inclination, &m_alpha)
-        .setUnit(BornAgain::UnitsRad)
+    registerParameter("InclinationAngle", &m_alpha)
+        .setUnit("rad")
         .setLimited(0, INCLINATION_LIMIT);
-    registerParameter(BornAgain::Azimuth, &m_phi)
-        .setUnit(BornAgain::UnitsRad)
+    registerParameter("AzimuthalAngle", &m_phi)
+        .setUnit("rad")
         .setLimited(-M_PI_2, M_PI_2);
-    registerVector(BornAgain::BlochVector, &m_bloch_vector, BornAgain::UnitsNone);
+    registerVector("BlochVector", &m_bloch_vector, "");
 }
 
 void Beam::registerChildren()
diff --git a/Core/Beam/FootprintFactorGaussian.cpp b/Core/Beam/FootprintFactorGaussian.cpp
index 48819632614a61087b3f878a2d04d3d68109ef67..39e41bd17e7d44daa4b168e03d0ca7248d5fa8fd 100644
--- a/Core/Beam/FootprintFactorGaussian.cpp
+++ b/Core/Beam/FootprintFactorGaussian.cpp
@@ -55,7 +55,7 @@ FootprintFactorGaussian::FootprintFactorGaussian(const FootprintFactorGaussian&
 
 void FootprintFactorGaussian::initialize()
 {
-    setName(BornAgain::GaussianFootprintFactorType);
+    setName("FootprintFactorGaussian");
 }
 
 static_assert(!std::is_copy_constructible<FootprintFactorGaussian>::value,
diff --git a/Core/Beam/FootprintFactorSquare.cpp b/Core/Beam/FootprintFactorSquare.cpp
index cd3651dcc2f2f79576ae8631d9c9ce8717c01ceb..1743d7983c3eb1672fdce068f683f767dba8d6b4 100644
--- a/Core/Beam/FootprintFactorSquare.cpp
+++ b/Core/Beam/FootprintFactorSquare.cpp
@@ -56,7 +56,7 @@ FootprintFactorSquare::FootprintFactorSquare(const FootprintFactorSquare& other)
 
 void FootprintFactorSquare::initialize()
 {
-    setName(BornAgain::SquareFootprintFactorType);
+    setName("FootprintFactorSquare");
 }
 
 static_assert(!std::is_copy_constructible<FootprintFactorSquare>::value,
diff --git a/Core/Beam/IFootprintFactor.cpp b/Core/Beam/IFootprintFactor.cpp
index 5ab5b7457f2f470505e7568d577bb79614cc7b6d..44f8031da87c7d5875e6986b2b06b5eb9236d8dd 100644
--- a/Core/Beam/IFootprintFactor.cpp
+++ b/Core/Beam/IFootprintFactor.cpp
@@ -42,5 +42,5 @@ IFootprintFactor::IFootprintFactor(const IFootprintFactor& other)
 
 void IFootprintFactor::initialize()
 {
-    registerParameter(BornAgain::BeamToSampleWidthRatio, &m_width_ratio).setNonnegative();
+    registerParameter("BeamToSampleWidthRatio", &m_width_ratio).setNonnegative();
 }
diff --git a/Core/Computation/ConstantBackground.cpp b/Core/Computation/ConstantBackground.cpp
index 7c0af047521243d2a3db85e34f91ca62f14b9bcf..22fe0d96847313b1ed2636d002cea8f6bd7a7e79 100644
--- a/Core/Computation/ConstantBackground.cpp
+++ b/Core/Computation/ConstantBackground.cpp
@@ -18,7 +18,7 @@
 ConstantBackground::ConstantBackground(double background_value)
     : m_background_value(background_value)
 {
-    setName(BornAgain::ConstantBackgroundType);
+    setName("ConstantBackground");
     init_parameters();
 }
 
@@ -36,5 +36,5 @@ double ConstantBackground::addBackGround(double intensity) const
 
 void ConstantBackground::init_parameters()
 {
-    registerParameter(BornAgain::BackgroundValue, &m_background_value).setNonnegative();
+    registerParameter("BackgroundValue", &m_background_value).setNonnegative();
 }
diff --git a/Core/Computation/PoissonNoiseBackground.cpp b/Core/Computation/PoissonNoiseBackground.cpp
index 0482e204cb72e47f38556dc36cb3a445de6221ca..043b92ea1e9460c37dd259fcd97d70abad965f3b 100644
--- a/Core/Computation/PoissonNoiseBackground.cpp
+++ b/Core/Computation/PoissonNoiseBackground.cpp
@@ -17,7 +17,7 @@
 
 PoissonNoiseBackground::PoissonNoiseBackground()
 {
-    setName(BornAgain::PoissonNoiseBackgroundType);
+    setName("PoissonNoiseBackground");
 }
 
 PoissonNoiseBackground::~PoissonNoiseBackground() = default;
diff --git a/Core/DecoratedFormFactor/FormFactorDecoratorMaterial.cpp b/Core/DecoratedFormFactor/FormFactorDecoratorMaterial.cpp
index 622595d440da5343e483f00a7fde2b1482ebf4c9..dfccb767792b89c75c93c43c855cd3ceaf295cc5 100644
--- a/Core/DecoratedFormFactor/FormFactorDecoratorMaterial.cpp
+++ b/Core/DecoratedFormFactor/FormFactorDecoratorMaterial.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/DecoratedFormFactor/FormFactorDecoratorMaterial.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
 #include "Core/Vector/WavevectorInfo.h"
@@ -22,7 +21,7 @@ FormFactorDecoratorMaterial::FormFactorDecoratorMaterial(const IFormFactor& form
     : IFormFactorDecorator(form_factor), m_material(HomogeneousMaterial()),
       m_ambient_material(HomogeneousMaterial())
 {
-    setName(BornAgain::FormFactorDecoratorMaterialType);
+    setName("FormFactorDecoratorMaterial");
 }
 
 FormFactorDecoratorMaterial::~FormFactorDecoratorMaterial() {}
diff --git a/Core/DecoratedFormFactor/FormFactorDecoratorPositionFactor.cpp b/Core/DecoratedFormFactor/FormFactorDecoratorPositionFactor.cpp
index 5481b6560137c993d6d12f863445d168b48071b4..1e505194ed00e6bf0cb9fccc88e3fa32e39d14ed 100644
--- a/Core/DecoratedFormFactor/FormFactorDecoratorPositionFactor.cpp
+++ b/Core/DecoratedFormFactor/FormFactorDecoratorPositionFactor.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/DecoratedFormFactor/FormFactorDecoratorPositionFactor.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Scattering/Rotations.h"
 #include "Core/Vector/WavevectorInfo.h"
 
@@ -21,7 +20,7 @@ FormFactorDecoratorPositionFactor::FormFactorDecoratorPositionFactor(const IForm
                                                                      const kvector_t& position)
     : IFormFactorDecorator(form_factor), m_position(position)
 {
-    setName(BornAgain::FormFactorDecoratorPositionFactorType);
+    setName("FormFactorDecoratorPositionFactor");
 }
 
 double FormFactorDecoratorPositionFactor::bottomZ(const IRotation& rotation) const
diff --git a/Core/DecoratedFormFactor/FormFactorDecoratorRotation.cpp b/Core/DecoratedFormFactor/FormFactorDecoratorRotation.cpp
index e23b057bc21ac34ad799532730dc08c65d9ba9f0..e873f85ddfff15a1b6bb3ce9ef74d544689b771f 100644
--- a/Core/DecoratedFormFactor/FormFactorDecoratorRotation.cpp
+++ b/Core/DecoratedFormFactor/FormFactorDecoratorRotation.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/DecoratedFormFactor/FormFactorDecoratorRotation.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Vector/WavevectorInfo.h"
 #include <memory>
 
@@ -21,7 +20,7 @@ FormFactorDecoratorRotation::FormFactorDecoratorRotation(const IFormFactor& form
                                                          const IRotation& rotation)
     : IFormFactorDecorator(form_factor)
 {
-    setName(BornAgain::FormFactorDecoratorRotationType);
+    setName("FormFactorDecoratorRotation");
     m_transform = rotation.getTransform3D();
 }
 
@@ -58,5 +57,5 @@ FormFactorDecoratorRotation::FormFactorDecoratorRotation(const IFormFactor& form
                                                          const Transform3D& transform)
     : IFormFactorDecorator(form_factor), m_transform(transform)
 {
-    setName(BornAgain::FormFactorDecoratorRotationType);
+    setName("FormFactorDecoratorRotation");
 }
diff --git a/Core/Export/PythonFormatting.cpp b/Core/Export/PythonFormatting.cpp
index da30f06a83b84dcd19e41f4738d0ffc0bea591f2..0e60f664217dd539de0b8f6d4f8aeeeb615b8660 100644
--- a/Core/Export/PythonFormatting.cpp
+++ b/Core/Export/PythonFormatting.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Export/PythonFormatting.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Binning/FixedBinAxis.h"
 #include "Core/Binning/PointwiseAxis.h"
@@ -176,11 +175,11 @@ std::string printDegrees(double input)
 
 std::string printValue(double value, const std::string& units)
 {
-    if (units == BornAgain::UnitsRad)
+    if (units == "rad")
         return printDegrees(value);
-    else if (units == BornAgain::UnitsNm)
+    else if (units == "nm")
         return printNm(value);
-    else if (units == BornAgain::UnitsNone)
+    else if (units == "")
         return printDouble(value);
     else
         throw std::runtime_error("PythonFormatting::printValue() -> Error. Unknown units '" + units
@@ -224,7 +223,7 @@ bool isDefaultDirection(const kvector_t direction)
 
 std::string valueTimesUnit(const RealParameter* par)
 {
-    if (par->unit() == BornAgain::UnitsRad)
+    if (par->unit() == "rad")
         return printDegrees(par->value());
     return printDouble(par->value()) + (par->unit() == "" ? "" : ("*" + par->unit()));
 }
diff --git a/Core/Export/SimulationToPython.cpp b/Core/Export/SimulationToPython.cpp
index a44c98f0c44fcb0e16f96ab8e5644e3bc6cea5b6..78f44c5e190618b52b507ea36585fcb954181300 100644
--- a/Core/Export/SimulationToPython.cpp
+++ b/Core/Export/SimulationToPython.cpp
@@ -275,7 +275,7 @@ std::string SimulationToPython::defineOffSpecBeam(const OffSpecSimulation& simul
 
     const std::string axis_def = indent() + "alpha_i_axis = ";
     result << axis_def
-           << PythonFormatting::printAxis(*simulation.beamAxis(), BornAgain::UnitsRad,
+           << PythonFormatting::printAxis(*simulation.beamAxis(), "rad",
                                           axis_def.size())
            << "\n";
 
diff --git a/Core/HardParticle/FormFactorAnisoPyramid.cpp b/Core/HardParticle/FormFactorAnisoPyramid.cpp
index 092d0a078b0d8965b35111abfef839c02482cad7..6925349ec16d91cc3ddb30215f839a15af6bc8c3 100644
--- a/Core/HardParticle/FormFactorAnisoPyramid.cpp
+++ b/Core/HardParticle/FormFactorAnisoPyramid.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorAnisoPyramid.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -36,12 +35,12 @@ FormFactorAnisoPyramid::FormFactorAnisoPyramid(double length, double width, doub
                                                double alpha)
     : FormFactorPolyhedron(), m_length(length), m_width(width), m_height(height), m_alpha(alpha)
 {
-    setName(BornAgain::FFAnisoPyramidType);
-    registerParameter(BornAgain::Length, &m_length).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Width, &m_width).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Height, &m_height).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Alpha, &m_alpha)
-        .setUnit(BornAgain::UnitsRad)
+    setName("AnisoPyramid");
+    registerParameter("Length", &m_length).setUnit("nm").setNonnegative();
+    registerParameter("Width", &m_width).setUnit("nm").setNonnegative();
+    registerParameter("Height", &m_height).setUnit("nm").setNonnegative();
+    registerParameter("Alpha", &m_alpha)
+        .setUnit("rad")
         .setLimited(0., M_PI_2);
     onChange();
 }
diff --git a/Core/HardParticle/FormFactorBar.cpp b/Core/HardParticle/FormFactorBar.cpp
index b615a5dcfdd1358b2c2fe3ebeaa4ce2fc49eb4d4..73f39ff7be684e6c1357d40ce8fa829c92f52f4f 100644
--- a/Core/HardParticle/FormFactorBar.cpp
+++ b/Core/HardParticle/FormFactorBar.cpp
@@ -22,7 +22,7 @@
 FormFactorBarGauss::FormFactorBarGauss(double length, double width, double height)
     : ProfileBar{length, width, height}
 {
-    setName(BornAgain::FFBarGaussType);
+    setName("BarGauss");
 }
 
 FormFactorBarGauss* FormFactorBarGauss::clone() const
@@ -47,7 +47,7 @@ complex_t FormFactorBarGauss::factor_x(complex_t qx) const
 FormFactorBarLorentz::FormFactorBarLorentz(double length, double width, double height)
     : ProfileBar{length, width, height}
 {
-    setName(BornAgain::FFBarLorentzType);
+    setName("BarLorentz");
 }
 
 FormFactorBarLorentz* FormFactorBarLorentz::clone() const
diff --git a/Core/HardParticle/FormFactorBox.cpp b/Core/HardParticle/FormFactorBox.cpp
index 4ee4c424c514b4a24ec0113d2f3967b34fc85152..6cb076e7b7ed5b56b264282504ae487b60cae103 100644
--- a/Core/HardParticle/FormFactorBox.cpp
+++ b/Core/HardParticle/FormFactorBox.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorBox.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/RealParameter.h"
 #include "Core/Tools/MathFunctions.h"
 
@@ -24,10 +23,10 @@
 FormFactorBox::FormFactorBox(double length, double width, double height)
     : FormFactorPolygonalPrism(height), m_length(length), m_width(width)
 {
-    setName(BornAgain::FFBoxType);
-    registerParameter(BornAgain::Length, &m_length).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Width, &m_width).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Height, &m_height).setUnit(BornAgain::UnitsNm).setNonnegative();
+    setName("Box");
+    registerParameter("Length", &m_length).setUnit("nm").setNonnegative();
+    registerParameter("Width", &m_width).setUnit("nm").setNonnegative();
+    registerParameter("Height", &m_height).setUnit("nm").setNonnegative();
     onChange();
 }
 
diff --git a/Core/HardParticle/FormFactorCantellatedCube.cpp b/Core/HardParticle/FormFactorCantellatedCube.cpp
index 5b4f9974793f94c37af5f9e690556b9cd942bb78..442d24cada4316122391ed544fa77505fa8a8b98 100644
--- a/Core/HardParticle/FormFactorCantellatedCube.cpp
+++ b/Core/HardParticle/FormFactorCantellatedCube.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorCantellatedCube.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Parametrization/RealParameter.h"
 
@@ -55,9 +54,9 @@ FormFactorCantellatedCube::FormFactorCantellatedCube(double length, double remov
     : FormFactorPolyhedron(), m_length(length), m_removed_length(removed_length)
 {
     setName("CantellatedCube");
-    registerParameter(BornAgain::Length, &m_length).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::RemovedLength, &m_removed_length)
-        .setUnit(BornAgain::UnitsNm)
+    registerParameter("Length", &m_length).setUnit("nm").setNonnegative();
+    registerParameter("RemovedLength", &m_removed_length)
+        .setUnit("nm")
         .setNonnegative();
     onChange();
 }
diff --git a/Core/HardParticle/FormFactorCone.cpp b/Core/HardParticle/FormFactorCone.cpp
index b3609f31ea35d74f20ed635524901ad478be2d74..8f506e85e6c8d86776cdb9bc964b7e385758dfcf 100644
--- a/Core/HardParticle/FormFactorCone.cpp
+++ b/Core/HardParticle/FormFactorCone.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorCone.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -28,7 +27,7 @@
 FormFactorCone::FormFactorCone(double radius, double height, double alpha)
     : m_radius(radius), m_height(height), m_alpha(alpha)
 {
-    setName(BornAgain::FFConeType);
+    setName("Cone");
     m_cot_alpha = MathFunctions::cot(m_alpha);
     if (!std::isfinite(m_cot_alpha) || m_cot_alpha < 0)
         throw Exceptions::OutOfBoundsException("pyramid angle alpha out of bounds");
@@ -41,10 +40,10 @@ FormFactorCone::FormFactorCone(double radius, double height, double alpha)
         ostr << "Check for 'height <= radius*tan(alpha)' failed.";
         throw Exceptions::ClassInitializationException(ostr.str());
     }
-    registerParameter(BornAgain::Radius, &m_radius).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Height, &m_height).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Alpha, &m_alpha)
-        .setUnit(BornAgain::UnitsRad)
+    registerParameter("Radius", &m_radius).setUnit("nm").setNonnegative();
+    registerParameter("Height", &m_height).setUnit("nm").setNonnegative();
+    registerParameter("Alpha", &m_alpha)
+        .setUnit("rad")
         .setLimited(0., M_PI_2);
     onChange();
 }
diff --git a/Core/HardParticle/FormFactorCone6.cpp b/Core/HardParticle/FormFactorCone6.cpp
index 53fe93f2bad32bb452ecdef1ed61e50fc1774e9a..91aa6f2aec4de0cc048bbb7c4d85e39e4773376f 100644
--- a/Core/HardParticle/FormFactorCone6.cpp
+++ b/Core/HardParticle/FormFactorCone6.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorCone6.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -36,13 +35,13 @@ const PolyhedralTopology FormFactorCone6::topology = {{{{5, 4, 3, 2, 1, 0}, true
 FormFactorCone6::FormFactorCone6(double base_edge, double height, double alpha)
     : FormFactorPolyhedron(), m_base_edge(base_edge), m_height(height), m_alpha(alpha)
 {
-    setName(BornAgain::FFCone6Type);
-    registerParameter(BornAgain::BaseEdge, &m_base_edge)
-        .setUnit(BornAgain::UnitsNm)
+    setName("Cone6");
+    registerParameter("BaseEdge", &m_base_edge)
+        .setUnit("nm")
         .setNonnegative();
-    registerParameter(BornAgain::Height, &m_height).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Alpha, &m_alpha)
-        .setUnit(BornAgain::UnitsRad)
+    registerParameter("Height", &m_height).setUnit("nm").setNonnegative();
+    registerParameter("Alpha", &m_alpha)
+        .setUnit("rad")
         .setLimited(0., M_PI_2);
     onChange();
 }
diff --git a/Core/HardParticle/FormFactorCuboctahedron.cpp b/Core/HardParticle/FormFactorCuboctahedron.cpp
index 5276a8000990746090608b3c3b895c32cd966b75..0336370ac4e5bbf715c106e3e3d71c548c2d8c7c 100644
--- a/Core/HardParticle/FormFactorCuboctahedron.cpp
+++ b/Core/HardParticle/FormFactorCuboctahedron.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorCuboctahedron.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/HardParticle/FormFactorPyramid.h"
@@ -43,14 +42,14 @@ FormFactorCuboctahedron::FormFactorCuboctahedron(double length, double height, d
     : FormFactorPolyhedron(), m_length(length), m_height(height), m_height_ratio(height_ratio),
       m_alpha(alpha)
 {
-    setName(BornAgain::FFCuboctahedronType);
-    registerParameter(BornAgain::Length, &m_length).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Height, &m_height).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::HeightRatio, &m_height_ratio)
-        .setUnit(BornAgain::UnitsNm)
+    setName("Cuboctahedron");
+    registerParameter("Length", &m_length).setUnit("nm").setNonnegative();
+    registerParameter("Height", &m_height).setUnit("nm").setNonnegative();
+    registerParameter("HeightRatio", &m_height_ratio)
+        .setUnit("nm")
         .setNonnegative();
-    registerParameter(BornAgain::Alpha, &m_alpha)
-        .setUnit(BornAgain::UnitsRad)
+    registerParameter("Alpha", &m_alpha)
+        .setUnit("rad")
         .setLimited(0., M_PI_2);
     onChange();
 }
diff --git a/Core/HardParticle/FormFactorCylinder.cpp b/Core/HardParticle/FormFactorCylinder.cpp
index 698c8f446597dfbbc49b99d7e1401c54f39612ee..a4a4117acd8e6cc65392d2b4d902f9abd993b054 100644
--- a/Core/HardParticle/FormFactorCylinder.cpp
+++ b/Core/HardParticle/FormFactorCylinder.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorCylinder.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
 #include "Core/Shapes/DoubleEllipse.h"
@@ -25,9 +24,9 @@
 FormFactorCylinder::FormFactorCylinder(double radius, double height)
     : m_radius(radius), m_height(height)
 {
-    setName(BornAgain::FFCylinderType);
-    registerParameter(BornAgain::Radius, &m_radius).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Height, &m_height).setUnit(BornAgain::UnitsNm).setNonnegative();
+    setName("Cylinder");
+    registerParameter("Radius", &m_radius).setUnit("nm").setNonnegative();
+    registerParameter("Height", &m_height).setUnit("nm").setNonnegative();
     onChange();
 }
 
diff --git a/Core/HardParticle/FormFactorDodecahedron.cpp b/Core/HardParticle/FormFactorDodecahedron.cpp
index 6b9bef4fbb4e580ea95ba7185fdc9a7a51006bfc..f52f3d13eb46363689c10aea81bde91840451311 100644
--- a/Core/HardParticle/FormFactorDodecahedron.cpp
+++ b/Core/HardParticle/FormFactorDodecahedron.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorDodecahedron.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/RealParameter.h"
 
 const PolyhedralTopology FormFactorDodecahedron::topology = {{// bottom:
@@ -38,8 +37,8 @@ const PolyhedralTopology FormFactorDodecahedron::topology = {{// bottom:
 //! @param edge: length of the edge in nanometers
 FormFactorDodecahedron::FormFactorDodecahedron(double edge) : FormFactorPolyhedron(), m_edge(edge)
 {
-    setName(BornAgain::FFDodecahedronType);
-    registerParameter(BornAgain::Edge, &m_edge).setUnit(BornAgain::UnitsNm).setNonnegative();
+    setName("Dodecahedron");
+    registerParameter("Edge", &m_edge).setUnit("nm").setNonnegative();
     onChange();
 }
 
diff --git a/Core/HardParticle/FormFactorDot.cpp b/Core/HardParticle/FormFactorDot.cpp
index 663d09287480180cec6e9a924b534eb11a61bb9e..6a262be85d7a4230c782c51ec665655c4ef11c3d 100644
--- a/Core/HardParticle/FormFactorDot.cpp
+++ b/Core/HardParticle/FormFactorDot.cpp
@@ -13,15 +13,14 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorDot.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/RealParameter.h"
 
 //! Constructor.
 //! @param rscat: radius of a sphere with same forward scattering power, in nanometers
 FormFactorDot::FormFactorDot(double radius) : m_radius(radius)
 {
-    setName(BornAgain::FFDotType);
-    registerParameter(BornAgain::Radius, &m_radius).setUnit(BornAgain::UnitsNm).setNonnegative();
+    setName("Dot");
+    registerParameter("Radius", &m_radius).setUnit("nm").setNonnegative();
     onChange();
 }
 
diff --git a/Core/HardParticle/FormFactorEllipsoidalCylinder.cpp b/Core/HardParticle/FormFactorEllipsoidalCylinder.cpp
index d6854ad3c13ed5ce7651075d0c104cedb44e6048..b74cd93288e90f7ff4b14e41adfa894ce6f8e97c 100644
--- a/Core/HardParticle/FormFactorEllipsoidalCylinder.cpp
+++ b/Core/HardParticle/FormFactorEllipsoidalCylinder.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorEllipsoidalCylinder.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
 #include "Core/Shapes/DoubleEllipse.h"
@@ -27,10 +26,10 @@ FormFactorEllipsoidalCylinder::FormFactorEllipsoidalCylinder(double radius_x, do
                                                              double height)
     : m_radius_x(radius_x), m_radius_y(radius_y), m_height(height)
 {
-    setName(BornAgain::FFEllipsoidalCylinderType);
-    registerParameter(BornAgain::RadiusX, &m_radius_x).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::RadiusY, &m_radius_y).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Height, &m_height).setUnit(BornAgain::UnitsNm).setNonnegative();
+    setName("EllipsoidalCylinder");
+    registerParameter("RadiusX", &m_radius_x).setUnit("nm").setNonnegative();
+    registerParameter("RadiusY", &m_radius_y).setUnit("nm").setNonnegative();
+    registerParameter("Height", &m_height).setUnit("nm").setNonnegative();
     onChange();
 }
 
diff --git a/Core/HardParticle/FormFactorFullSphere.cpp b/Core/HardParticle/FormFactorFullSphere.cpp
index 9be7f181855f1cf08737dbbfeef15b95ffd3665b..a8f510b5a94a3064b498618d97846849a85a7bbc 100644
--- a/Core/HardParticle/FormFactorFullSphere.cpp
+++ b/Core/HardParticle/FormFactorFullSphere.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorFullSphere.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/HardParticle/FormFactorTruncatedSphere.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -25,8 +24,8 @@
 FormFactorFullSphere::FormFactorFullSphere(double radius, bool position_at_center)
     : m_radius(radius), m_position_at_center(position_at_center)
 {
-    setName(BornAgain::FFFullSphereType);
-    registerParameter(BornAgain::Radius, &m_radius).setUnit(BornAgain::UnitsNm).setNonnegative();
+    setName("FullSphere");
+    registerParameter("Radius", &m_radius).setUnit("nm").setNonnegative();
     onChange();
 }
 
diff --git a/Core/HardParticle/FormFactorFullSpheroid.cpp b/Core/HardParticle/FormFactorFullSpheroid.cpp
index c778cef7dd2665d4eac2e6919ffa83fbe39da2e6..97e7b9f1f6d297267125031f98674b25de47d7a2 100644
--- a/Core/HardParticle/FormFactorFullSpheroid.cpp
+++ b/Core/HardParticle/FormFactorFullSpheroid.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorFullSpheroid.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/HardParticle/FormFactorTruncatedSpheroid.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -27,9 +26,9 @@
 FormFactorFullSpheroid::FormFactorFullSpheroid(double radius, double height)
     : m_radius(radius), m_height(height)
 {
-    setName(BornAgain::FFFullSpheroidType);
-    registerParameter(BornAgain::Radius, &m_radius).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Height, &m_height).setUnit(BornAgain::UnitsNm).setNonnegative();
+    setName("FullSpheroid");
+    registerParameter("Radius", &m_radius).setUnit("nm").setNonnegative();
+    registerParameter("Height", &m_height).setUnit("nm").setNonnegative();
     onChange();
 }
 
diff --git a/Core/HardParticle/FormFactorHemiEllipsoid.cpp b/Core/HardParticle/FormFactorHemiEllipsoid.cpp
index 4b4b8ba1e011fc95548011ebfebe5aa319d9a871..d486dc99de1b45d0ae950415e32922c8dc629905 100644
--- a/Core/HardParticle/FormFactorHemiEllipsoid.cpp
+++ b/Core/HardParticle/FormFactorHemiEllipsoid.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorHemiEllipsoid.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
 #include "Core/Shapes/TruncatedEllipsoid.h"
@@ -27,10 +26,10 @@
 FormFactorHemiEllipsoid::FormFactorHemiEllipsoid(double radius_x, double radius_y, double height)
     : m_radius_x(radius_x), m_radius_y(radius_y), m_height(height)
 {
-    setName(BornAgain::FFHemiEllipsoidType);
-    registerParameter(BornAgain::RadiusX, &m_radius_x).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::RadiusY, &m_radius_y).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Height, &m_height).setUnit(BornAgain::UnitsNm).setNonnegative();
+    setName("HemiEllipsoid");
+    registerParameter("RadiusX", &m_radius_x).setUnit("nm").setNonnegative();
+    registerParameter("RadiusY", &m_radius_y).setUnit("nm").setNonnegative();
+    registerParameter("Height", &m_height).setUnit("nm").setNonnegative();
     onChange();
 }
 
diff --git a/Core/HardParticle/FormFactorIcosahedron.cpp b/Core/HardParticle/FormFactorIcosahedron.cpp
index a450dbc9d12c8b19a43ca6018f934cd3c2b2b41a..0924286442ed9e18806ebaf04df5e1af5f36b3cf 100644
--- a/Core/HardParticle/FormFactorIcosahedron.cpp
+++ b/Core/HardParticle/FormFactorIcosahedron.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorIcosahedron.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/RealParameter.h"
 
 const PolyhedralTopology FormFactorIcosahedron::topology = {{// bottom:
@@ -48,8 +47,8 @@ const PolyhedralTopology FormFactorIcosahedron::topology = {{// bottom:
 //! @param edge: length of the edge in nanometers
 FormFactorIcosahedron::FormFactorIcosahedron(double edge) : FormFactorPolyhedron(), m_edge(edge)
 {
-    setName(BornAgain::FFIcosahedronType);
-    registerParameter(BornAgain::Edge, &m_edge).setUnit(BornAgain::UnitsNm).setNonnegative();
+    setName("Icosahedron");
+    registerParameter("Edge", &m_edge).setUnit("nm").setNonnegative();
     onChange();
 }
 
diff --git a/Core/HardParticle/FormFactorLongBoxGauss.cpp b/Core/HardParticle/FormFactorLongBoxGauss.cpp
index 77c5672e87f002738f745b8b3f22d50af9b9740a..fdb9a45d9bdf79996a9702d966b116c102af6de9 100644
--- a/Core/HardParticle/FormFactorLongBoxGauss.cpp
+++ b/Core/HardParticle/FormFactorLongBoxGauss.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorLongBoxGauss.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/RealParameter.h"
 #include "Core/Shapes/Box.h"
 #include "Core/Tools/MathFunctions.h"
@@ -21,10 +20,10 @@
 FormFactorLongBoxGauss::FormFactorLongBoxGauss(double length, double width, double height)
     : m_length(length), m_width(width), m_height(height)
 {
-    setName(BornAgain::FFLongBoxGaussType);
-    registerParameter(BornAgain::Length, &m_length).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Width, &m_width).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Height, &m_height).setUnit(BornAgain::UnitsNm).setNonnegative();
+    setName("FormFactorLongBoxGauss");
+    registerParameter("Length", &m_length).setUnit("nm").setNonnegative();
+    registerParameter("Width", &m_width).setUnit("nm").setNonnegative();
+    registerParameter("Height", &m_height).setUnit("nm").setNonnegative();
     onChange();
 }
 
diff --git a/Core/HardParticle/FormFactorLongBoxLorentz.cpp b/Core/HardParticle/FormFactorLongBoxLorentz.cpp
index e037ff530d1a67e56b1928c96f72cdfa0b2398d3..d241e7a2ef42ffc8b651c19d9bdf7326e7254fb4 100644
--- a/Core/HardParticle/FormFactorLongBoxLorentz.cpp
+++ b/Core/HardParticle/FormFactorLongBoxLorentz.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorLongBoxLorentz.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/RealParameter.h"
 #include "Core/Shapes/Box.h"
 #include "Core/Tools/MathFunctions.h"
@@ -21,10 +20,10 @@
 FormFactorLongBoxLorentz::FormFactorLongBoxLorentz(double length, double width, double height)
     : m_length(length), m_width(width), m_height(height)
 {
-    setName(BornAgain::FFLongBoxLorentzType);
-    registerParameter(BornAgain::Length, &m_length).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Width, &m_width).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Height, &m_height).setUnit(BornAgain::UnitsNm).setNonnegative();
+    setName("FormFactorLongBoxLorentz");
+    registerParameter("Length", &m_length).setUnit("nm").setNonnegative();
+    registerParameter("Width", &m_width).setUnit("nm").setNonnegative();
+    registerParameter("Height", &m_height).setUnit("nm").setNonnegative();
     onChange();
 }
 
diff --git a/Core/HardParticle/FormFactorPrism3.cpp b/Core/HardParticle/FormFactorPrism3.cpp
index 305cc7f5b1ec33af8de16fa33e83624ab54dc742..e8eab8f8a81a0735932baa320f57fd00a882a76e 100644
--- a/Core/HardParticle/FormFactorPrism3.cpp
+++ b/Core/HardParticle/FormFactorPrism3.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorPrism3.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/RealParameter.h"
 #include <iostream>
 
@@ -23,11 +22,11 @@
 FormFactorPrism3::FormFactorPrism3(double base_edge, double height)
     : FormFactorPolygonalPrism(height), m_base_edge(base_edge)
 {
-    setName(BornAgain::FFPrism3Type);
-    registerParameter(BornAgain::BaseEdge, &m_base_edge)
-        .setUnit(BornAgain::UnitsNm)
+    setName("Prism3");
+    registerParameter("BaseEdge", &m_base_edge)
+        .setUnit("nm")
         .setNonnegative();
-    registerParameter(BornAgain::Height, &m_height).setUnit(BornAgain::UnitsNm).setNonnegative();
+    registerParameter("Height", &m_height).setUnit("nm").setNonnegative();
     onChange();
 }
 
diff --git a/Core/HardParticle/FormFactorPrism6.cpp b/Core/HardParticle/FormFactorPrism6.cpp
index b0f8608e1d93c9a190af0aa715991262a08fd5fb..489841f2444151647c69ba1cf55b630be14f584a 100644
--- a/Core/HardParticle/FormFactorPrism6.cpp
+++ b/Core/HardParticle/FormFactorPrism6.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorPrism6.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/RealParameter.h"
 
 //! Constructor of a prism with a regular hexagonal base.
@@ -22,11 +21,11 @@
 FormFactorPrism6::FormFactorPrism6(double base_edge, double height)
     : FormFactorPolygonalPrism(height), m_base_edge(base_edge)
 {
-    setName(BornAgain::FFPrism6Type);
-    registerParameter(BornAgain::BaseEdge, &m_base_edge)
-        .setUnit(BornAgain::UnitsNm)
+    setName("Prism6");
+    registerParameter("BaseEdge", &m_base_edge)
+        .setUnit("nm")
         .setNonnegative();
-    registerParameter(BornAgain::Height, &m_height).setUnit(BornAgain::UnitsNm).setNonnegative();
+    registerParameter("Height", &m_height).setUnit("nm").setNonnegative();
     onChange();
 }
 
diff --git a/Core/HardParticle/FormFactorPyramid.cpp b/Core/HardParticle/FormFactorPyramid.cpp
index 544eea279e3dc5ba224098cb36a2660e55f55b8b..0129ee90fe99cfc7eca5d170245ead03d2a26fb2 100644
--- a/Core/HardParticle/FormFactorPyramid.cpp
+++ b/Core/HardParticle/FormFactorPyramid.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorPyramid.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -36,12 +35,12 @@ const PolyhedralTopology FormFactorPyramid::topology = {{
 FormFactorPyramid::FormFactorPyramid(double base_edge, double height, double alpha)
     : FormFactorPolyhedron(), m_base_edge(base_edge), m_height(height), m_alpha(alpha)
 {
-    setName(BornAgain::FFPyramidType);
-    registerParameter(BornAgain::BaseEdge, &m_base_edge)
-        .setUnit(BornAgain::UnitsNm)
+    setName("Pyramid");
+    registerParameter("BaseEdge", &m_base_edge)
+        .setUnit("nm")
         .setNonnegative();
-    registerParameter(BornAgain::Height, &m_height).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Alpha, &m_alpha).setUnit(BornAgain::UnitsRad).setLimited(0., M_PI);
+    registerParameter("Height", &m_height).setUnit("nm").setNonnegative();
+    registerParameter("Alpha", &m_alpha).setUnit("rad").setLimited(0., M_PI);
     onChange();
 }
 
diff --git a/Core/HardParticle/FormFactorRipple1.cpp b/Core/HardParticle/FormFactorRipple1.cpp
index 5a269d58f029b770758d4794369b87570c41a455..13dacca2a16629e97374ca5ea32c239efae2c031 100644
--- a/Core/HardParticle/FormFactorRipple1.cpp
+++ b/Core/HardParticle/FormFactorRipple1.cpp
@@ -22,7 +22,7 @@
 FormFactorRipple1Box::FormFactorRipple1Box(double length, double width, double height)
     : ProfileRipple1{length, width, height}
 {
-    setName(BornAgain::FFRipple1BoxType);
+    setName("Ripple1Box");
 }
 
 FormFactorRipple1Box* FormFactorRipple1Box::clone() const
@@ -47,7 +47,7 @@ complex_t FormFactorRipple1Box::factor_x(complex_t qx) const
 FormFactorRipple1Gauss::FormFactorRipple1Gauss(double length, double width, double height)
     : ProfileRipple1{length, width, height}
 {
-    setName(BornAgain::FFRipple1GaussType);
+    setName("Ripple1Gauss");
 }
 
 FormFactorRipple1Gauss* FormFactorRipple1Gauss::clone() const
@@ -72,7 +72,7 @@ complex_t FormFactorRipple1Gauss::factor_x(complex_t qx) const
 FormFactorRipple1Lorentz::FormFactorRipple1Lorentz(double length, double width, double height)
     : ProfileRipple1{length, width, height}
 {
-    setName(BornAgain::FFRipple1LorentzType);
+    setName("Ripple1Lorentz");
 }
 
 FormFactorRipple1Lorentz* FormFactorRipple1Lorentz::clone() const
diff --git a/Core/HardParticle/FormFactorRipple2.cpp b/Core/HardParticle/FormFactorRipple2.cpp
index 39ce79d7230b2a1f34ba1ea0bc653d16f84c48e0..b533d474b18825a968020e11ea48803dd97feb4c 100644
--- a/Core/HardParticle/FormFactorRipple2.cpp
+++ b/Core/HardParticle/FormFactorRipple2.cpp
@@ -23,7 +23,7 @@ FormFactorRipple2Box::FormFactorRipple2Box(double length, double width, double h
                                            double asymmetry)
     : ProfileRipple2{length, width, height, asymmetry}
 {
-    setName(BornAgain::FFRipple2BoxType);
+    setName("Ripple2Box");
 }
 
 FormFactorRipple2Box* FormFactorRipple2Box::clone() const
@@ -49,7 +49,7 @@ FormFactorRipple2Gauss::FormFactorRipple2Gauss(double length, double width, doub
                                                double asymmetry)
     : ProfileRipple2{length, width, height, asymmetry}
 {
-    setName(BornAgain::FFRipple2GaussType);
+    setName("Ripple2Gauss");
 }
 
 FormFactorRipple2Gauss* FormFactorRipple2Gauss::clone() const
@@ -75,7 +75,7 @@ FormFactorRipple2Lorentz::FormFactorRipple2Lorentz(double length, double width,
                                                    double asymmetry)
     : ProfileRipple2{length, width, height, asymmetry}
 {
-    setName(BornAgain::FFRipple2LorentzType);
+    setName("Ripple2Lorentz");
 }
 
 FormFactorRipple2Lorentz* FormFactorRipple2Lorentz::clone() const
diff --git a/Core/HardParticle/FormFactorTetrahedron.cpp b/Core/HardParticle/FormFactorTetrahedron.cpp
index 36bf2080ebf1f0866ee9fda3a86ca2ac6fe34d04..bd53e21d2fa4393bcc5bfd64a45ba3657c3a07d6 100644
--- a/Core/HardParticle/FormFactorTetrahedron.cpp
+++ b/Core/HardParticle/FormFactorTetrahedron.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorTetrahedron.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -33,13 +32,13 @@ const PolyhedralTopology FormFactorTetrahedron::topology = {{{{2, 1, 0}, false},
 FormFactorTetrahedron::FormFactorTetrahedron(double base_edge, double height, double alpha)
     : FormFactorPolyhedron(), m_base_edge(base_edge), m_height(height), m_alpha(alpha)
 {
-    setName(BornAgain::FFTetrahedronType);
-    registerParameter(BornAgain::BaseEdge, &m_base_edge)
-        .setUnit(BornAgain::UnitsNm)
+    setName("Tetrahedron");
+    registerParameter("BaseEdge", &m_base_edge)
+        .setUnit("nm")
         .setNonnegative();
-    registerParameter(BornAgain::Height, &m_height).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Alpha, &m_alpha)
-        .setUnit(BornAgain::UnitsRad)
+    registerParameter("Height", &m_height).setUnit("nm").setNonnegative();
+    registerParameter("Alpha", &m_alpha)
+        .setUnit("rad")
         .setLimited(0., M_PI_2);
     onChange();
 }
diff --git a/Core/HardParticle/FormFactorTriangle.cpp b/Core/HardParticle/FormFactorTriangle.cpp
index b42d626d6fc7a76e84a4c23def147daea0ac77ba..9d53852648909c7d63ca4f09cecf1e0f508c103b 100644
--- a/Core/HardParticle/FormFactorTriangle.cpp
+++ b/Core/HardParticle/FormFactorTriangle.cpp
@@ -13,15 +13,14 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorTriangle.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/RealParameter.h"
 #include "Fit/Tools/RealLimits.h"
 
 FormFactorTriangle::FormFactorTriangle(const double base_edge) : m_base_edge(base_edge)
 {
     setName("Triangle");
-    registerParameter(BornAgain::BaseEdge, &m_base_edge)
-        .setUnit(BornAgain::UnitsNm)
+    registerParameter("BaseEdge", &m_base_edge)
+        .setUnit("nm")
         .setNonnegative();
     onChange();
 }
diff --git a/Core/HardParticle/FormFactorTruncatedCube.cpp b/Core/HardParticle/FormFactorTruncatedCube.cpp
index faab26750ef4fea5e91dcff08f601bf7459a52d2..647677f0c50ff95a647e71b4720edaa1ae6ee78b 100644
--- a/Core/HardParticle/FormFactorTruncatedCube.cpp
+++ b/Core/HardParticle/FormFactorTruncatedCube.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorTruncatedCube.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Parametrization/RealParameter.h"
 
@@ -40,10 +39,10 @@ const PolyhedralTopology FormFactorTruncatedCube::topology = {
 FormFactorTruncatedCube::FormFactorTruncatedCube(double length, double removed_length)
     : FormFactorPolyhedron(), m_length(length), m_removed_length(removed_length)
 {
-    setName(BornAgain::FFTruncatedCubeType);
-    registerParameter(BornAgain::Length, &m_length).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::RemovedLength, &m_removed_length)
-        .setUnit(BornAgain::UnitsNm)
+    setName("TruncatedCube");
+    registerParameter("Length", &m_length).setUnit("nm").setNonnegative();
+    registerParameter("RemovedLength", &m_removed_length)
+        .setUnit("nm")
         .setNonnegative();
     onChange();
 }
diff --git a/Core/HardParticle/FormFactorTruncatedSphere.cpp b/Core/HardParticle/FormFactorTruncatedSphere.cpp
index 0306243f75fbeabb9431901f5d79868541e189b2..f88073f626706416c638c9a3278529755e4b4cab 100644
--- a/Core/HardParticle/FormFactorTruncatedSphere.cpp
+++ b/Core/HardParticle/FormFactorTruncatedSphere.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorTruncatedSphere.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -29,11 +28,11 @@
 FormFactorTruncatedSphere::FormFactorTruncatedSphere(double radius, double height, double dh)
     : m_radius(radius), m_height(height), m_dh(dh)
 {
-    setName(BornAgain::FFTruncatedSphereType);
+    setName("TruncatedSphere");
     check_initialization();
-    registerParameter(BornAgain::Radius, &m_radius).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Height, &m_height).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::DeltaHeight, &m_dh).setUnit(BornAgain::UnitsNm).setNonnegative();
+    registerParameter("Radius", &m_radius).setUnit("nm").setNonnegative();
+    registerParameter("Height", &m_height).setUnit("nm").setNonnegative();
+    registerParameter("DeltaHeight", &m_dh).setUnit("nm").setNonnegative();
     onChange();
 }
 
diff --git a/Core/HardParticle/FormFactorTruncatedSpheroid.cpp b/Core/HardParticle/FormFactorTruncatedSpheroid.cpp
index abc013e05deac0f2a9a43572a26e24596e78e219..566696746552928dfcb844579ea88c1be2b721cf 100644
--- a/Core/HardParticle/FormFactorTruncatedSpheroid.cpp
+++ b/Core/HardParticle/FormFactorTruncatedSpheroid.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/FormFactorTruncatedSpheroid.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -30,12 +29,12 @@ FormFactorTruncatedSpheroid::FormFactorTruncatedSpheroid(double radius, double h
                                                          double height_flattening, double dh)
     : m_radius(radius), m_height(height), m_height_flattening(height_flattening), m_dh(dh)
 {
-    setName(BornAgain::FFTruncatedSpheroidType);
+    setName("TruncatedSpheroid");
     check_initialization();
-    registerParameter(BornAgain::Radius, &m_radius).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Height, &m_height).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::HeightFlattening, &m_height_flattening).setNonnegative();
-    registerParameter(BornAgain::DeltaHeight, &m_dh).setUnit(BornAgain::UnitsNm).setNonnegative();
+    registerParameter("Radius", &m_radius).setUnit("nm").setNonnegative();
+    registerParameter("Height", &m_height).setUnit("nm").setNonnegative();
+    registerParameter("HeightFlattening", &m_height_flattening).setNonnegative();
+    registerParameter("DeltaHeight", &m_dh).setUnit("nm").setNonnegative();
     onChange();
 }
 
diff --git a/Core/HardParticle/ProfileBar.cpp b/Core/HardParticle/ProfileBar.cpp
index d8c22edadecd72f3b3f5bf7292f20d9482bb311a..fd8ad0516d3dc3e6ef09f15616f9596fa972530b 100644
--- a/Core/HardParticle/ProfileBar.cpp
+++ b/Core/HardParticle/ProfileBar.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/ProfileBar.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -29,9 +28,9 @@ ProfileBar::ProfileBar(double length, double width, double height)
     : m_length(length), m_width(width), m_height(height)
 {
     check_initialization();
-    registerParameter(BornAgain::Length, &m_length).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Width, &m_width).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Height, &m_height).setUnit(BornAgain::UnitsNm).setNonnegative();
+    registerParameter("Length", &m_length).setUnit("nm").setNonnegative();
+    registerParameter("Width", &m_width).setUnit("nm").setNonnegative();
+    registerParameter("Height", &m_height).setUnit("nm").setNonnegative();
     onChange();
 }
 
diff --git a/Core/HardParticle/ProfileRipple1.cpp b/Core/HardParticle/ProfileRipple1.cpp
index 95b27f62f7cda11cf9c36a18f91ebddb03a74b82..24e2df63e3f58afc8d602ad52398c2094f1ef865 100644
--- a/Core/HardParticle/ProfileRipple1.cpp
+++ b/Core/HardParticle/ProfileRipple1.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/ProfileRipple1.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -29,9 +28,9 @@ ProfileRipple1::ProfileRipple1(double length, double width, double height)
     : m_length(length), m_width(width), m_height(height)
 {
     check_initialization();
-    registerParameter(BornAgain::Length, &m_length).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Width, &m_width).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Height, &m_height).setUnit(BornAgain::UnitsNm).setNonnegative();
+    registerParameter("Length", &m_length).setUnit("nm").setNonnegative();
+    registerParameter("Width", &m_width).setUnit("nm").setNonnegative();
+    registerParameter("Height", &m_height).setUnit("nm").setNonnegative();
     onChange();
 }
 
diff --git a/Core/HardParticle/ProfileRipple2.cpp b/Core/HardParticle/ProfileRipple2.cpp
index 30427c761c44d66ca3a7f5004bec987d7bbdbaeb..3e42fbed8049f35d78dbdb9c015927ddae32f036 100644
--- a/Core/HardParticle/ProfileRipple2.cpp
+++ b/Core/HardParticle/ProfileRipple2.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/HardParticle/ProfileRipple2.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -29,10 +28,10 @@ ProfileRipple2::ProfileRipple2(double length, double width, double height, doubl
     : m_length(length), m_width(width), m_height(height), m_asymmetry(asymmetry)
 {
     check_initialization();
-    registerParameter(BornAgain::Length, &m_length).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Width, &m_width).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Height, &m_height).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::AsymmetryLength, &m_asymmetry).setUnit(BornAgain::UnitsNm);
+    registerParameter("Length", &m_length).setUnit("nm").setNonnegative();
+    registerParameter("Width", &m_width).setUnit("nm").setNonnegative();
+    registerParameter("Height", &m_height).setUnit("nm").setNonnegative();
+    registerParameter("AsymmetryLength", &m_asymmetry).setUnit("nm");
     onChange();
 }
 
diff --git a/Core/InputOutput/OutputDataWriteStrategy.cpp b/Core/InputOutput/OutputDataWriteStrategy.cpp
index d52324aa812112de083de2a8e89f955bc4d5af64..3c52b260ff5768e0478778d5253b2c0c8853bde8 100644
--- a/Core/InputOutput/OutputDataWriteStrategy.cpp
+++ b/Core/InputOutput/OutputDataWriteStrategy.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/InputOutput/OutputDataWriteStrategy.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/InputOutput/TiffHandler.h"
 #include "Core/Instrument/ArrayUtils.h"
 #include "Core/Instrument/OutputData.h" // needed by some compilers
@@ -33,8 +32,8 @@ double IgnoreDenormalized(double value)
 
 void Write2DRepresentation(const OutputData<double>& data, std::ostream& output_stream)
 {
-    const size_t nrows = data.getAxis(BornAgain::Y_AXIS_INDEX).size();
-    const size_t ncols = data.getAxis(BornAgain::X_AXIS_INDEX).size();
+    const size_t nrows = data.getAxis(1).size();
+    const size_t ncols = data.getAxis(0).size();
 
     output_stream << "# [nrows=" << nrows << ", ncols=" << ncols << "]" << std::endl;
 
@@ -76,7 +75,7 @@ void Write1DRepresentation(const OutputData<double>& data, std::ostream& output_
     output_stream.imbue(std::locale::classic());
     output_stream << std::scientific << std::setprecision(precision);
 
-    const std::vector<double> axis_values = data.getAxis(BornAgain::X_AXIS_INDEX).getBinCenters();
+    const std::vector<double> axis_values = data.getAxis(0).getBinCenters();
 
     // printing coordinate and associated intensity
     for (size_t i = 0, nrows = axis_values.size(); i < nrows; ++i)
diff --git a/Core/InputOutput/TiffHandler.cpp b/Core/InputOutput/TiffHandler.cpp
index 45a17794754a7b1cbb5136c4fab0a2eac5bd97b5..ed6cba64c9812280f2c182bd708f03ace38b5edd 100644
--- a/Core/InputOutput/TiffHandler.cpp
+++ b/Core/InputOutput/TiffHandler.cpp
@@ -15,7 +15,6 @@
 #ifdef BORNAGAIN_TIFF_SUPPORT
 
 #include "Core/InputOutput/TiffHandler.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Tools/SysUtils.h"
 #include <tiffio.hxx>
 
@@ -53,8 +52,8 @@ void TiffHandler::write(const OutputData<double>& data, std::ostream& output_str
         throw Exceptions::LogicErrorException("TiffHandler::write -> Error. "
                                               "Only 2-dim arrays supported");
     m_tiff = TIFFStreamOpen("MemTIFF", &output_stream);
-    m_width = m_data->getAxis(BornAgain::X_AXIS_INDEX).size();
-    m_height = m_data->getAxis(BornAgain::Y_AXIS_INDEX).size(); // this does not exist for 1d data
+    m_width = m_data->getAxis(0).size();
+    m_height = m_data->getAxis(1).size(); // this does not exist for 1d data
     write_header();
     write_data();
     close();
diff --git a/Core/Instrument/AngularSpecScan.cpp b/Core/Instrument/AngularSpecScan.cpp
index fe1c3cb9a72cf367f474e795cbd523a422ba936b..b351acaabbdd2f363c6ac4083580798af787ed65 100644
--- a/Core/Instrument/AngularSpecScan.cpp
+++ b/Core/Instrument/AngularSpecScan.cpp
@@ -241,7 +241,7 @@ std::string AngularSpecScan::print() const
     result << "\n" << PythonFormatting::indent() << "# Defining specular scan:\n";
     const std::string axis_def = PythonFormatting::indent() + "axis = ";
     result << axis_def
-           << PythonFormatting::printAxis(*coordinateAxis(), BornAgain::UnitsRad, axis_def.size())
+           << PythonFormatting::printAxis(*coordinateAxis(), "rad", axis_def.size())
            << "\n";
 
     result << PythonFormatting::indent() << "scan = ";
diff --git a/Core/Instrument/DetectionProperties.cpp b/Core/Instrument/DetectionProperties.cpp
index c0fced726ea0ff22d1a18361c463b86e342762c9..b5553ff78126dec0490c825db1be4faf0ae251f6 100644
--- a/Core/Instrument/DetectionProperties.cpp
+++ b/Core/Instrument/DetectionProperties.cpp
@@ -20,7 +20,7 @@
 DetectionProperties::DetectionProperties()
     : m_direction{}, m_efficiency{}, m_total_transmission{1.0}
 {
-    setName(BornAgain::DetectorAnalyzer);
+    setName("Analyzer");
     init_parameters();
 }
 
@@ -85,9 +85,9 @@ double DetectionProperties::analyzerTotalTransmission() const
 
 void DetectionProperties::init_parameters()
 {
-    registerVector(BornAgain::Direction, &m_direction, BornAgain::UnitsNone);
-    registerParameter(BornAgain::Efficiency, &m_efficiency);
-    registerParameter(BornAgain::Transmission, &m_total_transmission).setNonnegative();
+    registerVector("Direction", &m_direction, "");
+    registerParameter("Efficiency", &m_efficiency);
+    registerParameter("Transmission", &m_total_transmission).setNonnegative();
 }
 
 bool DetectionProperties::checkAnalyzerProperties(const kvector_t direction, double efficiency,
diff --git a/Core/Instrument/DetectorMask.cpp b/Core/Instrument/DetectorMask.cpp
index 3038dab7008f2ac167ab1de7b903e30ac2d3466c..845cf07f7d3ffc7533c9ad0e10e8fbc1034d13d9 100644
--- a/Core/Instrument/DetectorMask.cpp
+++ b/Core/Instrument/DetectorMask.cpp
@@ -12,7 +12,6 @@
 //
 // ************************************************************************** //
 
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Instrument/Histogram2D.h"
 #include "Core/Instrument/IDetector2D.h"
 #include "Core/Instrument/RegionOfInterest.h"
@@ -117,8 +116,8 @@ void DetectorMask::process_masks()
 
     m_number_of_masked_channels = 0;
     for (size_t index = 0; index < m_mask_data.getAllocatedSize(); ++index) {
-        Bin1D binx = m_mask_data.getAxisBin(index, BornAgain::X_AXIS_INDEX);
-        Bin1D biny = m_mask_data.getAxisBin(index, BornAgain::Y_AXIS_INDEX);
+        Bin1D binx = m_mask_data.getAxisBin(index, 0);
+        Bin1D biny = m_mask_data.getAxisBin(index, 1);
         // setting mask to the data starting from last shape added
         bool is_masked(false);
         for (size_t i_shape = m_shapes.size(); i_shape > 0; --i_shape) {
diff --git a/Core/Instrument/Histogram2D.cpp b/Core/Instrument/Histogram2D.cpp
index e6a9e8a60d0c39498365a8a4586837e3304601a3..f4b60b1bad50e7914145359dec0fd02c8e6b31d6 100644
--- a/Core/Instrument/Histogram2D.cpp
+++ b/Core/Instrument/Histogram2D.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Instrument/Histogram2D.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Binning/VariableBinAxis.h"
 #include "Core/Instrument/ArrayUtils.h"
 #include "Core/Instrument/Histogram1D.h"
@@ -130,13 +129,13 @@ void Histogram2D::addContent(const std::vector<std::vector<double>>& data)
     const size_t nrows = shape.first;
     const size_t ncols = shape.second;
 
-    if (nrows != m_data.getAxis(BornAgain::Y_AXIS_INDEX).size()
-        || ncols != m_data.getAxis(BornAgain::X_AXIS_INDEX).size()) {
+    if (nrows != m_data.getAxis(1).size()
+        || ncols != m_data.getAxis(0).size()) {
         std::ostringstream ostr;
         ostr << "Histogram2D::addContent() -> Shape of input array [" << nrows << ", " << ncols
              << "] doesn't mach histogram axes. "
-             << "X-axis size: " << m_data.getAxis(BornAgain::X_AXIS_INDEX).size()
-             << "Y-axis size: " << m_data.getAxis(BornAgain::Y_AXIS_INDEX).size();
+             << "X-axis size: " << m_data.getAxis(0).size()
+             << "Y-axis size: " << m_data.getAxis(1).size();
         throw Exceptions::LogicErrorException(ostr.str());
     }
 
diff --git a/Core/Instrument/IDetector2D.cpp b/Core/Instrument/IDetector2D.cpp
index 7b1e745c65cea55fd0d5b755439c57fd8c98f755..178e0c699e4ffa550099924c1ddd711e5aa57d21 100644
--- a/Core/Instrument/IDetector2D.cpp
+++ b/Core/Instrument/IDetector2D.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Instrument/IDetector2D.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Beam/Beam.h"
 #include "Core/Instrument/DetectorContext.h"
 #include "Core/Instrument/DetectorFunctions.h"
@@ -38,8 +37,8 @@ void IDetector2D::setDetectorParameters(size_t n_x, double x_min, double x_max,
                                         double y_min, double y_max)
 {
     clear();
-    addAxis(*createAxis(BornAgain::X_AXIS_INDEX, n_x, x_min, x_max));
-    addAxis(*createAxis(BornAgain::Y_AXIS_INDEX, n_y, y_min, y_max));
+    addAxis(*createAxis(0, n_x, x_min, x_max));
+    addAxis(*createAxis(1, n_y, y_min, y_max));
 }
 
 void IDetector2D::setDetectorAxes(const IAxis& axis0, const IAxis& axis1)
diff --git a/Core/Instrument/Instrument.cpp b/Core/Instrument/Instrument.cpp
index ea0a9d4a07d289835d299f1da3435e67b25083ca..16dce285e407e835e60f4514acfc9b9031c12569 100644
--- a/Core/Instrument/Instrument.cpp
+++ b/Core/Instrument/Instrument.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Instrument/Instrument.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Beam/Beam.h"
 #include "Core/Instrument/DetectorFunctions.h"
 #include "Core/Instrument/Histogram2D.h"
@@ -23,7 +22,7 @@
 
 Instrument::Instrument() : mP_detector(new SphericalDetector)
 {
-    setName(BornAgain::InstrumentType);
+    setName("Instrument");
     registerChild(mP_detector.get());
     registerChild(&m_beam);
     init_parameters();
diff --git a/Core/Instrument/IntensityDataFunctions.cpp b/Core/Instrument/IntensityDataFunctions.cpp
index 59b242b2b8b0075f5c68bd3718852833c92bb7a4..03e54e1cc3d67ae0a9ff2b8fc07b6a38b651b62b 100644
--- a/Core/Instrument/IntensityDataFunctions.cpp
+++ b/Core/Instrument/IntensityDataFunctions.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Instrument/IntensityDataFunctions.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Instrument/ArrayUtils.h"
 #include "Core/Instrument/ConvolutionDetectorResolution.h"
 #include "Core/Instrument/DetectorFunctions.h"
@@ -200,15 +199,15 @@ double IntensityDataFunctions::coordinateFromBinf(double value, const IAxis& axi
 
 void IntensityDataFunctions::coordinateToBinf(double& x, double& y, const OutputData<double>& data)
 {
-    x = coordinateToBinf(x, data.getAxis(BornAgain::X_AXIS_INDEX));
-    y = coordinateToBinf(y, data.getAxis(BornAgain::Y_AXIS_INDEX));
+    x = coordinateToBinf(x, data.getAxis(0));
+    y = coordinateToBinf(y, data.getAxis(1));
 }
 
 void IntensityDataFunctions::coordinateFromBinf(double& x, double& y,
                                                 const OutputData<double>& data)
 {
-    x = coordinateFromBinf(x, data.getAxis(BornAgain::X_AXIS_INDEX));
-    y = coordinateFromBinf(y, data.getAxis(BornAgain::Y_AXIS_INDEX));
+    x = coordinateFromBinf(x, data.getAxis(0));
+    y = coordinateFromBinf(y, data.getAxis(1));
 }
 
 std::vector<std::vector<double>>
diff --git a/Core/Instrument/IsGISAXSDetector.cpp b/Core/Instrument/IsGISAXSDetector.cpp
index ddc74de5a1788d189045ef7cb4fc55ef9ddcdc65..c89581520175f2890b5ed142d1e682931bdc14ba 100644
--- a/Core/Instrument/IsGISAXSDetector.cpp
+++ b/Core/Instrument/IsGISAXSDetector.cpp
@@ -13,24 +13,23 @@
 // ************************************************************************** //
 
 #include "Core/Instrument/IsGISAXSDetector.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Binning/CustomBinAxis.h"
 
 IsGISAXSDetector::IsGISAXSDetector()
 {
-    setName(BornAgain::IsGISAXSDetectorType);
+    setName("IsGISAXSDetector");
 }
 
 IsGISAXSDetector::IsGISAXSDetector(size_t n_phi, double phi_min, double phi_max, size_t n_alpha,
                                    double alpha_min, double alpha_max)
 {
-    setName(BornAgain::IsGISAXSDetectorType);
+    setName("IsGISAXSDetector");
     setDetectorParameters(n_phi, phi_min, phi_max, n_alpha, alpha_min, alpha_max);
 }
 
 IsGISAXSDetector::IsGISAXSDetector(const IsGISAXSDetector& other) : SphericalDetector(other)
 {
-    setName(BornAgain::IsGISAXSDetectorType);
+    setName("IsGISAXSDetector");
 }
 
 IsGISAXSDetector* IsGISAXSDetector::clone() const
diff --git a/Core/Instrument/QSpecScan.cpp b/Core/Instrument/QSpecScan.cpp
index f30a40203645a04ae021ce2c760f7fa779db756c..b536028bbd08fdb7b1201c39cee5cbc5451a98fe 100644
--- a/Core/Instrument/QSpecScan.cpp
+++ b/Core/Instrument/QSpecScan.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Instrument/QSpecScan.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Binning/FixedBinAxis.h"
 #include "Core/Binning/PointwiseAxis.h"
 #include "Core/Export/PythonFormatting.h"
@@ -114,7 +113,7 @@ std::string QSpecScan::print() const
     std::stringstream result;
     const std::string axis_def = PythonFormatting::indent() + "axis = ";
     result << axis_def
-           << PythonFormatting::printAxis(*coordinateAxis(), BornAgain::UnitsNone, axis_def.size())
+           << PythonFormatting::printAxis(*coordinateAxis(), "", axis_def.size())
            << "\n";
 
     result << PythonFormatting::indent() << "scan = ba.QSpecScan(axis)";
diff --git a/Core/Instrument/RectangularDetector.cpp b/Core/Instrument/RectangularDetector.cpp
index 21d1054bdbb0a6d451cff9f1ff45a5eeff4fe02b..e5aa8df261d866f36ca6de24dff1a8e8c74e5ac9 100644
--- a/Core/Instrument/RectangularDetector.cpp
+++ b/Core/Instrument/RectangularDetector.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Instrument/RectangularDetector.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Beam/Beam.h"
 #include "Core/Instrument/IDetectorResolution.h"
@@ -26,7 +25,7 @@ RectangularDetector::RectangularDetector(size_t nxbins, double width, size_t nyb
       m_dbeam_u0(0.0), m_dbeam_v0(0.0), m_detector_arrangement(GENERIC)
 {
     setDetectorParameters(nxbins, 0.0, width, nybins, 0.0, height);
-    setName(BornAgain::RectangularDetectorType);
+    setName("RectangularDetector");
 }
 
 RectangularDetector::RectangularDetector(const RectangularDetector& other)
@@ -36,7 +35,7 @@ RectangularDetector::RectangularDetector(const RectangularDetector& other)
       m_detector_arrangement(other.m_detector_arrangement), m_u_unit(other.m_u_unit),
       m_v_unit(other.m_v_unit)
 {
-    setName(BornAgain::RectangularDetectorType);
+    setName("RectangularDetector");
 }
 
 RectangularDetector::~RectangularDetector() {}
@@ -91,24 +90,24 @@ void RectangularDetector::setDirectBeamPosition(double u0, double v0)
 
 double RectangularDetector::getWidth() const
 {
-    const IAxis& axis = getAxis(BornAgain::X_AXIS_INDEX);
+    const IAxis& axis = getAxis(0);
     return axis.getMax() - axis.getMin();
 }
 
 double RectangularDetector::getHeight() const
 {
-    const IAxis& axis = getAxis(BornAgain::Y_AXIS_INDEX);
+    const IAxis& axis = getAxis(1);
     return axis.getMax() - axis.getMin();
 }
 
 size_t RectangularDetector::getNbinsX() const
 {
-    return getAxis(BornAgain::X_AXIS_INDEX).size();
+    return getAxis(0).size();
 }
 
 size_t RectangularDetector::getNbinsY() const
 {
-    return getAxis(BornAgain::Y_AXIS_INDEX).size();
+    return getAxis(1).size();
 }
 
 kvector_t RectangularDetector::getNormalVector() const
@@ -158,8 +157,8 @@ AxesUnits RectangularDetector::defaultAxesUnits() const
 
 RectangularPixel* RectangularDetector::regionOfInterestPixel() const
 {
-    const IAxis& u_axis = getAxis(BornAgain::X_AXIS_INDEX);
-    const IAxis& v_axis = getAxis(BornAgain::Y_AXIS_INDEX);
+    const IAxis& u_axis = getAxis(0);
+    const IAxis& v_axis = getAxis(1);
     double u_min, v_min, width, height;
     auto p_roi = regionOfInterest();
     if (p_roi) {
@@ -182,10 +181,10 @@ RectangularPixel* RectangularDetector::regionOfInterestPixel() const
 
 IPixel* RectangularDetector::createPixel(size_t index) const
 {
-    const IAxis& u_axis = getAxis(BornAgain::X_AXIS_INDEX);
-    const IAxis& v_axis = getAxis(BornAgain::Y_AXIS_INDEX);
-    const size_t u_index = axisBinIndex(index, BornAgain::X_AXIS_INDEX);
-    const size_t v_index = axisBinIndex(index, BornAgain::Y_AXIS_INDEX);
+    const IAxis& u_axis = getAxis(0);
+    const IAxis& v_axis = getAxis(1);
+    const size_t u_index = axisBinIndex(index, 0);
+    const size_t v_index = axisBinIndex(index, 1);
 
     const Bin1D u_bin = u_axis.getBin(u_index);
     const Bin1D v_bin = v_axis.getBin(v_index);
@@ -200,9 +199,9 @@ std::string RectangularDetector::axisName(size_t index) const
 {
     switch (index) {
     case 0:
-        return BornAgain::U_AXIS_NAME;
+        return "u";
     case 1:
-        return BornAgain::V_AXIS_NAME;
+        return "v";
     default:
         throw Exceptions::LogicErrorException(
             "RectangularDetector::getAxisName(size_t index) -> Error! index > 1");
@@ -223,8 +222,8 @@ size_t RectangularDetector::getIndexOfSpecular(const Beam& beam) const
     kvector_t k_orth = (k_spec / kd - normal_unit) * m_distance;
     double u = k_orth.dot(m_u_unit) + m_u0;
     double v = k_orth.dot(m_v_unit) + m_v0;
-    const IAxis& u_axis = getAxis(BornAgain::X_AXIS_INDEX);
-    const IAxis& v_axis = getAxis(BornAgain::Y_AXIS_INDEX);
+    const IAxis& u_axis = getAxis(0);
+    const IAxis& v_axis = getAxis(1);
     if (u_axis.contains(u) && v_axis.contains(v))
         return getGlobalIndex(u_axis.findClosestIndex(u), v_axis.findClosestIndex(v));
     return totalSize();
diff --git a/Core/Instrument/RegionOfInterest.cpp b/Core/Instrument/RegionOfInterest.cpp
index ec0e8452c7fc8c1fa519d9db255ce7cb8fdc6d20..b31b3d136eb4cc3884e0e47c91c6e43319e0f276 100644
--- a/Core/Instrument/RegionOfInterest.cpp
+++ b/Core/Instrument/RegionOfInterest.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Instrument/RegionOfInterest.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Instrument/IDetector2D.h"
 #include "Core/Mask/Rectangle.h"
@@ -22,7 +21,7 @@ RegionOfInterest::RegionOfInterest(const IDetector2D& detector, double xlow, dou
                                    double xup, double yup)
     : RegionOfInterest(xlow, ylow, xup, yup)
 {
-    initFrom(detector.getAxis(BornAgain::X_AXIS_INDEX), detector.getAxis(BornAgain::Y_AXIS_INDEX));
+    initFrom(detector.getAxis(0), detector.getAxis(1));
 }
 
 RegionOfInterest::RegionOfInterest(const OutputData<double>& data, double xlow, double ylow,
@@ -33,7 +32,7 @@ RegionOfInterest::RegionOfInterest(const OutputData<double>& data, double xlow,
         throw Exceptions::RuntimeErrorException("RegionOfInterest::RegionOfInterest() -> Error. "
                                                 "Data is not two-dimensional.");
 
-    initFrom(data.getAxis(BornAgain::X_AXIS_INDEX), data.getAxis(BornAgain::Y_AXIS_INDEX));
+    initFrom(data.getAxis(0), data.getAxis(1));
 }
 
 RegionOfInterest::RegionOfInterest(double xlow, double ylow, double xup, double yup)
@@ -118,8 +117,8 @@ bool RegionOfInterest::isInROI(size_t detectorIndex) const
 
 std::unique_ptr<IAxis> RegionOfInterest::clipAxisToRoi(size_t axis_index, const IAxis& axis) const
 {
-    size_t nbin1 = (axis_index == BornAgain::X_AXIS_INDEX ? m_ax1 : m_ay1);
-    size_t nbin2 = (axis_index == BornAgain::X_AXIS_INDEX ? m_ax2 : m_ay2);
+    size_t nbin1 = (axis_index == 0 ? m_ax1 : m_ay1);
+    size_t nbin2 = (axis_index == 0 ? m_ax2 : m_ay2);
     return std::unique_ptr<IAxis>(new FixedBinAxis(
         axis.getName(), nbin2 - nbin1 + 1, axis.getBin(nbin1).m_lower, axis.getBin(nbin2).m_upper));
 }
diff --git a/Core/Instrument/ResolutionFunction2DGaussian.cpp b/Core/Instrument/ResolutionFunction2DGaussian.cpp
index 1af710c00f4082cc39b168f9eb8dd48a90dc9c17..6c156aa67de14a5d37c7a65c2ae23b325d029d9d 100644
--- a/Core/Instrument/ResolutionFunction2DGaussian.cpp
+++ b/Core/Instrument/ResolutionFunction2DGaussian.cpp
@@ -13,16 +13,15 @@
 // ************************************************************************** //
 
 #include "Core/Instrument/ResolutionFunction2DGaussian.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/RealParameter.h"
 #include "Core/Tools/MathFunctions.h"
 
 ResolutionFunction2DGaussian::ResolutionFunction2DGaussian(double sigma_x, double sigma_y)
     : m_sigma_x(sigma_x), m_sigma_y(sigma_y)
 {
-    setName(BornAgain::ResolutionFunction2D);
-    registerParameter(BornAgain::SigmaX, &m_sigma_x).setNonnegative();
-    registerParameter(BornAgain::SigmaY, &m_sigma_y).setNonnegative();
+    setName("ResolutionFunction2D");
+    registerParameter("SigmaX", &m_sigma_x).setNonnegative();
+    registerParameter("SigmaY", &m_sigma_y).setNonnegative();
 }
 
 double ResolutionFunction2DGaussian::evaluateCDF(double x, double y) const
diff --git a/Core/Instrument/SimpleUnitConverters.cpp b/Core/Instrument/SimpleUnitConverters.cpp
index 39424fe00a42af1f1746aaa457df26bcd6d0034c..bce58d9fabec8ea9d8096647d0514e020fe26b90 100644
--- a/Core/Instrument/SimpleUnitConverters.cpp
+++ b/Core/Instrument/SimpleUnitConverters.cpp
@@ -16,7 +16,6 @@
 #include <cmath>
 #include <stdexcept>
 
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Beam/Beam.h"
 #include "Core/Instrument/AxisNames.h"
@@ -161,10 +160,10 @@ double SphericalConverter::calculateValue(size_t i_axis, AxesUnits units_type, d
         return Units::rad2deg(value);
     case AxesUnits::QSPACE: {
         auto k_i = vecOfLambdaAlphaPhi(m_wavelength, m_alpha_i, m_phi_i);
-        if (i_axis == BornAgain::X_AXIS_INDEX) {
+        if (i_axis == 0) {
             auto k_f = vecOfLambdaAlphaPhi(m_wavelength, 0.0, value);
             return (k_i - k_f).y();
-        } else if (i_axis == BornAgain::Y_AXIS_INDEX) {
+        } else if (i_axis == 1) {
             auto k_f = vecOfLambdaAlphaPhi(m_wavelength, value, 0.0);
             return (k_f - k_i).z();
         }
@@ -174,10 +173,10 @@ double SphericalConverter::calculateValue(size_t i_axis, AxesUnits units_type, d
     }
     case AxesUnits::QXQY: {
         auto k_i = vecOfLambdaAlphaPhi(m_wavelength, m_alpha_i, m_phi_i);
-        if (i_axis == BornAgain::X_AXIS_INDEX) {
+        if (i_axis == 0) {
             auto k_f = vecOfLambdaAlphaPhi(m_wavelength, 0.0, value);
             return (k_i - k_f).y();
-        } else if (i_axis == BornAgain::Y_AXIS_INDEX) {
+        } else if (i_axis == 1) {
             auto k_f = vecOfLambdaAlphaPhi(m_wavelength, value, 0.0);
             return (k_f - k_i).x();
         }
@@ -254,9 +253,9 @@ double RectangularConverter::calculateValue(size_t i_axis, AxesUnits units_type,
         return Units::rad2deg(axisAngle(i_axis, k_f));
     case AxesUnits::QSPACE: {
         auto k_i = vecOfLambdaAlphaPhi(m_wavelength, m_alpha_i, m_phi_i);
-        if (i_axis == BornAgain::X_AXIS_INDEX) {
+        if (i_axis == 0) {
             return (k_i - k_f).y();
-        } else if (i_axis == BornAgain::Y_AXIS_INDEX) {
+        } else if (i_axis == 1) {
             return (k_f - k_i).z();
         }
         throw std::runtime_error("Error in RectangularConverter::calculateValue: "
@@ -265,9 +264,9 @@ double RectangularConverter::calculateValue(size_t i_axis, AxesUnits units_type,
     }
     case AxesUnits::QXQY: {
         auto k_i = vecOfLambdaAlphaPhi(m_wavelength, m_alpha_i, m_phi_i);
-        if (i_axis == BornAgain::X_AXIS_INDEX) {
+        if (i_axis == 0) {
             return (k_i - k_f).y();
-        } else if (i_axis == BornAgain::Y_AXIS_INDEX) {
+        } else if (i_axis == 1) {
             return (k_f - k_i).x();
         }
         throw std::runtime_error("Error in RectangularConverter::calculateValue: "
@@ -298,9 +297,9 @@ kvector_t RectangularConverter::normalizeToWavelength(kvector_t vector) const
 
 double RectangularConverter::axisAngle(size_t i_axis, kvector_t k_f) const
 {
-    if (i_axis == BornAgain::X_AXIS_INDEX) {
+    if (i_axis == 0) {
         return k_f.phi();
-    } else if (i_axis == BornAgain::Y_AXIS_INDEX) {
+    } else if (i_axis == 1) {
         return M_PI_2 - k_f.theta();
     }
     throw std::runtime_error("Error in RectangularConverter::axisAngle: "
diff --git a/Core/Instrument/SimulationArea.cpp b/Core/Instrument/SimulationArea.cpp
index b412ea7b063f1d7232206f767eda9cd4942af5d8..818c1d233ba01df8354b4627ef0caef3cc1049ae 100644
--- a/Core/Instrument/SimulationArea.cpp
+++ b/Core/Instrument/SimulationArea.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Instrument/SimulationArea.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Instrument/DetectorMask.h"
 #include "Core/Instrument/IDetector.h"
diff --git a/Core/Instrument/SpecularDetector1D.cpp b/Core/Instrument/SpecularDetector1D.cpp
index 0655530df6fcd2a406bea6b9b4e2b6feaafdcd38..d8669f44ad33e41442f6828f9b188e17d6634848 100644
--- a/Core/Instrument/SpecularDetector1D.cpp
+++ b/Core/Instrument/SpecularDetector1D.cpp
@@ -40,7 +40,7 @@ AxesUnits SpecularDetector1D::defaultAxesUnits() const
 std::string SpecularDetector1D::axisName(size_t index) const
 {
     if (index == 0) {
-        return BornAgain::U_AXIS_NAME;
+        return "u";
     } else
         throw std::runtime_error(
             "SpecularDetector1D::getAxisName(size_t index) -> Error! index > 0");
@@ -48,5 +48,5 @@ std::string SpecularDetector1D::axisName(size_t index) const
 
 void SpecularDetector1D::initialize()
 {
-    setName(BornAgain::SpecularDetectorType);
+    setName("SpecularDetector1D");
 }
diff --git a/Core/Instrument/SphericalDetector.cpp b/Core/Instrument/SphericalDetector.cpp
index bc35f28a614e21ef1023b53a4b3de76dcaa97808..c9e6def94c9e62243a80bd6a23c20bc5ef791ee4 100644
--- a/Core/Instrument/SphericalDetector.cpp
+++ b/Core/Instrument/SphericalDetector.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Instrument/SphericalDetector.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Beam/Beam.h"
 #include "Core/Binning/IPixel.h"
@@ -23,19 +22,19 @@
 
 SphericalDetector::SphericalDetector()
 {
-    setName(BornAgain::SphericalDetectorType);
+    setName("SphericalDetector");
 }
 
 SphericalDetector::SphericalDetector(size_t n_phi, double phi_min, double phi_max, size_t n_alpha,
                                      double alpha_min, double alpha_max)
 {
-    setName(BornAgain::SphericalDetectorType);
+    setName("SphericalDetector");
     setDetectorParameters(n_phi, phi_min, phi_max, n_alpha, alpha_min, alpha_max);
 }
 
 SphericalDetector::SphericalDetector(const SphericalDetector& other) : IDetector2D(other)
 {
-    setName(BornAgain::SphericalDetectorType);
+    setName("SphericalDetector");
 }
 
 SphericalDetector* SphericalDetector::clone() const
@@ -50,10 +49,10 @@ AxesUnits SphericalDetector::defaultAxesUnits() const
 
 IPixel* SphericalDetector::createPixel(size_t index) const
 {
-    const IAxis& phi_axis = getAxis(BornAgain::X_AXIS_INDEX);
-    const IAxis& alpha_axis = getAxis(BornAgain::Y_AXIS_INDEX);
-    const size_t phi_index = axisBinIndex(index, BornAgain::X_AXIS_INDEX);
-    const size_t alpha_index = axisBinIndex(index, BornAgain::Y_AXIS_INDEX);
+    const IAxis& phi_axis = getAxis(0);
+    const IAxis& alpha_axis = getAxis(1);
+    const size_t phi_index = axisBinIndex(index, 0);
+    const size_t alpha_index = axisBinIndex(index, 1);
 
     const Bin1D alpha_bin = alpha_axis.getBin(alpha_index);
     const Bin1D phi_bin = phi_axis.getBin(phi_index);
@@ -64,9 +63,9 @@ std::string SphericalDetector::axisName(size_t index) const
 {
     switch (index) {
     case 0:
-        return BornAgain::PHI_AXIS_NAME;
+        return "phi_f";
     case 1:
-        return BornAgain::ALPHA_AXIS_NAME;
+        return "alpha_f";
     default:
         throw Exceptions::LogicErrorException(
             "SphericalDetector::getAxisName(size_t index) -> Error! index > 1");
@@ -79,8 +78,8 @@ size_t SphericalDetector::getIndexOfSpecular(const Beam& beam) const
         return totalSize();
     double alpha = beam.getAlpha();
     double phi = beam.getPhi();
-    const IAxis& phi_axis = getAxis(BornAgain::X_AXIS_INDEX);
-    const IAxis& alpha_axis = getAxis(BornAgain::Y_AXIS_INDEX);
+    const IAxis& phi_axis = getAxis(0);
+    const IAxis& alpha_axis = getAxis(1);
     if (phi_axis.contains(phi) && alpha_axis.contains(alpha))
         return getGlobalIndex(phi_axis.findClosestIndex(phi), alpha_axis.findClosestIndex(alpha));
     return totalSize();
diff --git a/Core/Lattice/Lattice.cpp b/Core/Lattice/Lattice.cpp
index 5b9a0284efea6f70b0aa843042ed0cf7cd44e819..d75ec628561c1ac72b05cd740baea2144ded3806 100644
--- a/Core/Lattice/Lattice.cpp
+++ b/Core/Lattice/Lattice.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Lattice/Lattice.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Lattice/ISelectionRule.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -24,7 +23,7 @@ Lattice::Lattice()
     : mp_selection_rule(nullptr), m_a({1.0, 0.0, 0.0}), m_b({0.0, 1.0, 0.0}), m_c({0.0, 0.0, 1.0}),
       m_cache_ok(false)
 {
-    setName(BornAgain::LatticeType);
+    setName("Lattice");
     initialize();
     registerBasisVectors();
 }
@@ -32,7 +31,7 @@ Lattice::Lattice()
 Lattice::Lattice(const kvector_t a1, const kvector_t a2, const kvector_t a3)
     : mp_selection_rule(nullptr), m_a(a1), m_b(a2), m_c(a3), m_cache_ok(false)
 {
-    setName(BornAgain::LatticeType);
+    setName("Lattice");
     initialize();
     registerBasisVectors();
 }
@@ -41,7 +40,7 @@ Lattice::Lattice(const Lattice& lattice)
     : mp_selection_rule(nullptr), m_a(lattice.m_a), m_b(lattice.m_b), m_c(lattice.m_c),
       m_cache_ok(false)
 {
-    setName(BornAgain::LatticeType);
+    setName("Lattice");
     initialize();
     if (lattice.mp_selection_rule)
         setSelectionRule(*lattice.mp_selection_rule);
@@ -190,10 +189,10 @@ void Lattice::onChange()
 
 void Lattice::registerBasisVectors()
 {
-    if (!parameter(XComponentName(BornAgain::BasisVector_A))) {
-        registerVector(BornAgain::BasisVector_A, &m_a, BornAgain::UnitsNm);
-        registerVector(BornAgain::BasisVector_B, &m_b, BornAgain::UnitsNm);
-        registerVector(BornAgain::BasisVector_C, &m_c, BornAgain::UnitsNm);
+    if (!parameter(XComponentName("BasisA"))) {
+        registerVector("BasisA", &m_a, "nm");
+        registerVector("BasisB", &m_b, "nm");
+        registerVector("BasisC", &m_c, "nm");
     }
 }
 
diff --git a/Core/Lattice/Lattice2D.cpp b/Core/Lattice/Lattice2D.cpp
index 4c2ac256e707c24ff058cedb9ba9914ff898b9c4..9d6a4a62447b393b1c94e5a69ce563df507e86d4 100644
--- a/Core/Lattice/Lattice2D.cpp
+++ b/Core/Lattice/Lattice2D.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Lattice/Lattice2D.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/ParameterPool.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -48,13 +47,13 @@ Lattice2D::Lattice2D(const Lattice2D& other) : ICloneable()
 void Lattice2D::setRotationEnabled(bool enabled)
 {
     if (enabled) {
-        if (parameter(BornAgain::Xi))
+        if (parameter("Xi"))
             return;
 
-        registerParameter(BornAgain::Xi, &m_xi).setUnit(BornAgain::UnitsRad);
+        registerParameter("Xi", &m_xi).setUnit("rad");
 
     } else {
-        removeParameter(BornAgain::Xi);
+        removeParameter("Xi");
     }
 }
 
@@ -67,7 +66,7 @@ BasicLattice::BasicLattice(double length1, double length2, double angle, double
         throw std::runtime_error("BasicLattice::BasicLattice() -> Error. Lattice length can't be "
                                  "negative or zero.");
 
-    setName(BornAgain::BasicLatticeType);
+    setName("BasicLattice");
     init_parameters();
 }
 
@@ -90,14 +89,14 @@ BasicLattice::BasicLattice(const BasicLattice& other)
 
 void BasicLattice::init_parameters()
 {
-    registerParameter(BornAgain::LatticeLength1, &m_length1)
-        .setUnit(BornAgain::UnitsNm)
+    registerParameter("LatticeLength1", &m_length1)
+        .setUnit("nm")
         .setPositive();
-    registerParameter(BornAgain::LatticeLength2, &m_length2)
-        .setUnit(BornAgain::UnitsNm)
+    registerParameter("LatticeLength2", &m_length2)
+        .setUnit("nm")
         .setPositive();
-    registerParameter(BornAgain::LatticeAngle, &m_angle).setUnit(BornAgain::UnitsRad);
-    registerParameter(BornAgain::Xi, &m_xi).setUnit(BornAgain::UnitsRad);
+    registerParameter("Alpha", &m_angle).setUnit("rad");
+    registerParameter("Xi", &m_xi).setUnit("rad");
 }
 
 // --------------------------------------------------------------------------------------------- //
@@ -109,7 +108,7 @@ SquareLattice::SquareLattice(double length, double rotation_angle)
         throw std::runtime_error("SquareLattice::SquareLattice() -> Error. Lattice length can't be "
                                  "negative or zero.");
 
-    setName(BornAgain::SquareLatticeType);
+    setName("SquareLattice");
     init_parameters();
 }
 
@@ -136,10 +135,10 @@ SquareLattice::SquareLattice(const SquareLattice& other)
 
 void SquareLattice::init_parameters()
 {
-    registerParameter(BornAgain::LatticeLength, &m_length)
-        .setUnit(BornAgain::UnitsNm)
+    registerParameter("LatticeLength", &m_length)
+        .setUnit("nm")
         .setPositive();
-    registerParameter(BornAgain::Xi, &m_xi).setUnit(BornAgain::UnitsRad);
+    registerParameter("Xi", &m_xi).setUnit("rad");
 }
 
 // --------------------------------------------------------------------------------------------- //
@@ -151,7 +150,7 @@ HexagonalLattice::HexagonalLattice(double length, double rotation_angle)
         throw std::runtime_error("HexagonalLattice::HexagonalLattice() -> Error. "
                                  "Lattice length can't be negative or zero.");
 
-    setName(BornAgain::HexagonalLatticeType);
+    setName("HexagonalLattice");
     init_parameters();
 }
 
@@ -179,8 +178,8 @@ HexagonalLattice::HexagonalLattice(const HexagonalLattice& other)
 
 void HexagonalLattice::init_parameters()
 {
-    registerParameter(BornAgain::LatticeLength, &m_length)
-        .setUnit(BornAgain::UnitsNm)
+    registerParameter("LatticeLength", &m_length)
+        .setUnit("nm")
         .setPositive();
-    registerParameter(BornAgain::Xi, &m_xi).setUnit(BornAgain::UnitsRad);
+    registerParameter("Xi", &m_xi).setUnit("rad");
 }
diff --git a/Core/Multilayer/FormFactorBAPol.cpp b/Core/Multilayer/FormFactorBAPol.cpp
index 7605c0b46131372db80bb304d7fb3e23a36fbbad..de14d9e1b7308ffc2332045058886a425b6686b7 100644
--- a/Core/Multilayer/FormFactorBAPol.cpp
+++ b/Core/Multilayer/FormFactorBAPol.cpp
@@ -13,14 +13,13 @@
 // ************************************************************************** //
 
 #include "Core/Multilayer/FormFactorBAPol.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Vector/WavevectorInfo.h"
 #include <stdexcept>
 
 FormFactorBAPol::FormFactorBAPol(const IFormFactor& form_factor)
     : mP_form_factor(form_factor.clone())
 {
-    setName(BornAgain::FormFactorPolarizedBAType);
+    setName("FormFactorBAPol");
 }
 
 FormFactorBAPol::~FormFactorBAPol() = default;
diff --git a/Core/Multilayer/FormFactorDWBA.cpp b/Core/Multilayer/FormFactorDWBA.cpp
index 2d3784a856b5f627736e52f69ec8ba18dc47cf33..df60f4934ace8583eb0da2ed7c7e7deaa7594321 100644
--- a/Core/Multilayer/FormFactorDWBA.cpp
+++ b/Core/Multilayer/FormFactorDWBA.cpp
@@ -13,13 +13,12 @@
 // ************************************************************************** //
 
 #include "Core/Multilayer/FormFactorDWBA.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Multilayer/ILayerRTCoefficients.h"
 #include "Core/Vector/WavevectorInfo.h"
 
 FormFactorDWBA::FormFactorDWBA(const IFormFactor& form_factor) : mP_form_factor(form_factor.clone())
 {
-    setName(BornAgain::FormFactorDWBAType);
+    setName("FormFactorDWBA");
 }
 
 FormFactorDWBA::~FormFactorDWBA() {}
diff --git a/Core/Multilayer/FormFactorDWBAPol.cpp b/Core/Multilayer/FormFactorDWBAPol.cpp
index 66c413b6cdafdabca4435dd350a56e160f3f3d6a..ae8a2d305b49edd5e578a4889c6f80ea5b80b814 100644
--- a/Core/Multilayer/FormFactorDWBAPol.cpp
+++ b/Core/Multilayer/FormFactorDWBAPol.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Multilayer/FormFactorDWBAPol.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Multilayer/ILayerRTCoefficients.h"
 #include "Core/Vector/WavevectorInfo.h"
 
@@ -29,7 +28,7 @@ std::complex<double> VecMatVecProduct(const Eigen::Vector2cd& vec1, const Eigen:
 FormFactorDWBAPol::FormFactorDWBAPol(const IFormFactor& form_factor)
     : mP_form_factor(form_factor.clone())
 {
-    setName(BornAgain::FormFactorPolarizedDWBAType);
+    setName("FormFactorDWBAPol");
 }
 
 FormFactorDWBAPol::~FormFactorDWBAPol() {}
diff --git a/Core/Multilayer/IMultiLayerBuilder.cpp b/Core/Multilayer/IMultiLayerBuilder.cpp
index 1d5434c74a0b4afc1a961de3c5b5d8609767c53e..d21cbd336086b1e84e4e720e074d18430407ae6f 100644
--- a/Core/Multilayer/IMultiLayerBuilder.cpp
+++ b/Core/Multilayer/IMultiLayerBuilder.cpp
@@ -13,9 +13,8 @@
 // ************************************************************************** //
 
 #include "Core/Multilayer/IMultiLayerBuilder.h"
-#include "Core/Basics/BornAgainNamespace.h"
 
 IMultiLayerBuilder::IMultiLayerBuilder()
 {
-    setName(BornAgain::SampleBuilderType);
+    setName("SampleBuilder");
 }
diff --git a/Core/Multilayer/Layer.cpp b/Core/Multilayer/Layer.cpp
index 05ed1e0e1227e5ee423e5c29e4c433f9202662a3..1e0e8ac23c1c8145f2370e150bb3bada865aa4d1 100644
--- a/Core/Multilayer/Layer.cpp
+++ b/Core/Multilayer/Layer.cpp
@@ -14,7 +14,6 @@
 
 #include "Core/Multilayer/Layer.h"
 #include "Core/Aggregate/ILayout.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Parametrization/ParameterPool.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -25,7 +24,7 @@
 Layer::Layer(Material material, double thickness)
     : m_material(std::move(material)), m_thickness(thickness)
 {
-    setName(BornAgain::LayerType);
+    setName("Layer");
     registerThickness();
 }
 
@@ -81,11 +80,11 @@ std::vector<const INode*> Layer::getChildren() const
 void Layer::registerThickness(bool make_registered)
 {
     if (make_registered) {
-        if (!parameter(BornAgain::Thickness))
-            registerParameter(BornAgain::Thickness, &m_thickness)
-                .setUnit(BornAgain::UnitsNm)
+        if (!parameter("Thickness"))
+            registerParameter("Thickness", &m_thickness)
+                .setUnit("nm")
                 .setNonnegative();
     } else {
-        removeParameter(BornAgain::Thickness);
+        removeParameter("Thickness");
     }
 }
diff --git a/Core/Multilayer/LayerInterface.cpp b/Core/Multilayer/LayerInterface.cpp
index de77397f5ac23585630791dafe9c820108123d5a..7b426a0c0ee7af93afd205a238b3808de48710b4 100644
--- a/Core/Multilayer/LayerInterface.cpp
+++ b/Core/Multilayer/LayerInterface.cpp
@@ -13,13 +13,12 @@
 // ************************************************************************** //
 
 #include "Core/Multilayer/LayerInterface.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Multilayer/LayerRoughness.h"
 
 LayerInterface::LayerInterface() : m_topLayer(nullptr), m_bottomLayer(nullptr)
 {
-    setName(BornAgain::LayerInterfaceType);
+    setName("LayerInterface");
 }
 
 LayerInterface::~LayerInterface() {}
diff --git a/Core/Multilayer/LayerRoughness.cpp b/Core/Multilayer/LayerRoughness.cpp
index d46f61b5f8c54be66ba30aae5ded2a55163ea763..425af8c6ecae920361a7fd5677e3a4accbbfc43e 100644
--- a/Core/Multilayer/LayerRoughness.cpp
+++ b/Core/Multilayer/LayerRoughness.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Multilayer/LayerRoughness.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
 
@@ -35,11 +34,11 @@ LayerRoughness::LayerRoughness(double sigma, double hurstParameter, double later
 
 void LayerRoughness::initialize()
 {
-    setName(BornAgain::LayerBasicRoughnessType);
-    registerParameter(BornAgain::Sigma, &m_sigma);
-    registerParameter(BornAgain::Hurst, &m_hurstParameter);
-    registerParameter(BornAgain::CorrelationLength, &m_lateralCorrLength)
-        .setUnit(BornAgain::UnitsNm)
+    setName("LayerBasicRoughness");
+    registerParameter("Sigma", &m_sigma);
+    registerParameter("Hurst", &m_hurstParameter);
+    registerParameter("CorrelationLength", &m_lateralCorrLength)
+        .setUnit("nm")
         .setNonnegative();
 }
 
diff --git a/Core/Multilayer/MultiLayer.cpp b/Core/Multilayer/MultiLayer.cpp
index dd2b2a57f6ed5f986ebaf94d3851f68f3b28220e..af7cbe2755bee74b48cb109f56d34a88265e8fc8 100644
--- a/Core/Multilayer/MultiLayer.cpp
+++ b/Core/Multilayer/MultiLayer.cpp
@@ -14,7 +14,6 @@
 
 #include "Core/Multilayer/MultiLayer.h"
 #include "Core/Aggregate/ILayout.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Computation/MultiLayerUtils.h"
 #include "Core/Material/MaterialUtils.h"
@@ -27,7 +26,7 @@
 
 MultiLayer::MultiLayer() : m_crossCorrLength(0), m_roughness_model(RoughnessModel::DEFAULT)
 {
-    setName(BornAgain::MultiLayerType);
+    setName("MultiLayer");
     init_parameters();
 }
 
@@ -130,10 +129,10 @@ std::vector<const INode*> MultiLayer::getChildren() const
 void MultiLayer::init_parameters()
 {
     parameterPool()->clear(); // non-trivially needed
-    registerParameter(BornAgain::CrossCorrelationLength, &m_crossCorrLength)
-        .setUnit(BornAgain::UnitsNm)
+    registerParameter("CrossCorrelationLength", &m_crossCorrLength)
+        .setUnit("nm")
         .setNonnegative();
-    registerVector(BornAgain::ExternalField, &m_ext_field, BornAgain::UnitsNone);
+    registerVector("ExternalField", &m_ext_field, "");
 }
 
 void MultiLayer::addAndRegisterLayer(Layer* child)
diff --git a/Core/Parametrization/Distributions.cpp b/Core/Parametrization/Distributions.cpp
index 3fdae79e39e09d9474c0a3fab859e25e0942775e..5cf61955d394df0e0d9a190caa8d250bc88753e0 100644
--- a/Core/Parametrization/Distributions.cpp
+++ b/Core/Parametrization/Distributions.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Parametrization/Distributions.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/ParameterPool.h"
@@ -128,7 +127,7 @@ IDistribution1D::generateSamplesFromValues(const std::vector<double>& sample_val
 
 DistributionGate::DistributionGate(double min, double max) : m_min(min), m_max(max)
 {
-    setName(BornAgain::DistributionGateType);
+    setName("DistributionGate");
     checkInitialization();
     init_parameters();
 }
@@ -154,8 +153,8 @@ std::vector<double> DistributionGate::equidistantPoints(size_t nbr_samples, doub
 
 void DistributionGate::init_parameters()
 {
-    registerParameter(BornAgain::Minimum, &m_min);
-    registerParameter(BornAgain::Maximum, &m_max);
+    registerParameter("Min", &m_min);
+    registerParameter("Max", &m_max);
 }
 
 bool DistributionGate::isDelta() const
@@ -166,7 +165,7 @@ bool DistributionGate::isDelta() const
 bool DistributionGate::checkInitialization() const
 {
     if (m_max < m_min) {
-        SignalBadInitialization(BornAgain::DistributionGateType);
+        SignalBadInitialization("DistributionGate");
     }
     return true;
 }
@@ -177,7 +176,7 @@ bool DistributionGate::checkInitialization() const
 
 DistributionLorentz::DistributionLorentz(double mean, double hwhm) : m_mean(mean), m_hwhm(hwhm)
 {
-    setName(BornAgain::DistributionLorentzType);
+    setName("DistributionLorentz");
     checkInitialization();
     init_parameters();
 }
@@ -202,8 +201,8 @@ std::vector<double> DistributionLorentz::equidistantPoints(size_t nbr_samples, d
 
 void DistributionLorentz::init_parameters()
 {
-    registerParameter(BornAgain::Mean, &m_mean);
-    registerParameter(BornAgain::HWHM, &m_hwhm);
+    registerParameter("Mean", &m_mean);
+    registerParameter("HWHM", &m_hwhm);
 }
 
 bool DistributionLorentz::isDelta() const
@@ -214,7 +213,7 @@ bool DistributionLorentz::isDelta() const
 bool DistributionLorentz::checkInitialization() const
 {
     if (m_hwhm < 0.0) {
-        SignalBadInitialization(BornAgain::DistributionLorentzType);
+        SignalBadInitialization("DistributionLorentz");
     }
     return true;
 }
@@ -226,7 +225,7 @@ bool DistributionLorentz::checkInitialization() const
 DistributionGaussian::DistributionGaussian(double mean, double std_dev)
     : m_mean(mean), m_std_dev(std_dev)
 {
-    setName(BornAgain::DistributionGaussianType);
+    setName("DistributionGaussian");
     checkInitialization();
     init_parameters();
 }
@@ -252,8 +251,8 @@ std::vector<double> DistributionGaussian::equidistantPoints(size_t nbr_samples,
 
 void DistributionGaussian::init_parameters()
 {
-    registerParameter(BornAgain::Mean, &m_mean);
-    registerParameter(BornAgain::StdDeviation, &m_std_dev);
+    registerParameter("Mean", &m_mean);
+    registerParameter("StdDev", &m_std_dev);
 }
 
 bool DistributionGaussian::isDelta() const
@@ -264,7 +263,7 @@ bool DistributionGaussian::isDelta() const
 bool DistributionGaussian::checkInitialization() const
 {
     if (m_std_dev < 0.0) {
-        SignalBadInitialization(BornAgain::DistributionGaussianType);
+        SignalBadInitialization("DistributionGaussian");
     }
     return true;
 }
@@ -276,7 +275,7 @@ bool DistributionGaussian::checkInitialization() const
 DistributionLogNormal::DistributionLogNormal(double median, double scale_param)
     : m_median(median), m_scale_param(scale_param)
 {
-    setName(BornAgain::DistributionLogNormalType);
+    setName("DistributionLogNormal");
     checkInitialization();
     init_parameters();
 }
@@ -314,8 +313,8 @@ std::vector<double> DistributionLogNormal::equidistantPoints(size_t nbr_samples,
 
 void DistributionLogNormal::init_parameters()
 {
-    registerParameter(BornAgain::Median, &m_median);
-    registerParameter(BornAgain::ScaleParameter, &m_scale_param);
+    registerParameter("Median", &m_median);
+    registerParameter("ScaleParameter", &m_scale_param);
 }
 
 bool DistributionLogNormal::isDelta() const
@@ -325,14 +324,14 @@ bool DistributionLogNormal::isDelta() const
 
 void DistributionLogNormal::setUnits(const std::string& units)
 {
-    parameter(BornAgain::Median)->setUnit(units);
+    parameter("Median")->setUnit(units);
     // scale parameter remains unitless
 }
 
 bool DistributionLogNormal::checkInitialization() const
 {
     if (m_scale_param < 0.0 || m_median <= 0.0) {
-        SignalBadInitialization(BornAgain::DistributionLogNormalType);
+        SignalBadInitialization("DistributionLogNormal");
     }
     return true;
 }
@@ -343,7 +342,7 @@ bool DistributionLogNormal::checkInitialization() const
 
 DistributionCosine::DistributionCosine(double mean, double sigma) : m_mean(mean), m_sigma(sigma)
 {
-    setName(BornAgain::DistributionCosineType);
+    setName("DistributionCosine");
     checkInitialization();
     init_parameters();
 }
@@ -370,8 +369,8 @@ std::vector<double> DistributionCosine::equidistantPoints(size_t nbr_samples, do
 
 void DistributionCosine::init_parameters()
 {
-    registerParameter(BornAgain::Mean, &m_mean);
-    registerParameter(BornAgain::Sigma, &m_sigma);
+    registerParameter("Mean", &m_mean);
+    registerParameter("Sigma", &m_sigma);
 }
 
 bool DistributionCosine::isDelta() const
@@ -382,7 +381,7 @@ bool DistributionCosine::isDelta() const
 bool DistributionCosine::checkInitialization() const
 {
     if (m_sigma < 0.0) {
-        SignalBadInitialization(BornAgain::DistributionCosineType);
+        SignalBadInitialization("DistributionCosine");
     }
     return true;
 }
@@ -395,7 +394,7 @@ DistributionTrapezoid::DistributionTrapezoid(double center, double left_width, d
                                              double right_width)
     : m_center(center), m_left(left_width), m_middle(middle_width), m_right(right_width)
 {
-    setName(BornAgain::DistributionTrapezoidType);
+    setName("DistributionTrapezoid");
     checkInitialization();
     init_parameters();
 }
@@ -433,16 +432,16 @@ bool DistributionTrapezoid::isDelta() const
 
 void DistributionTrapezoid::init_parameters()
 {
-    registerParameter(BornAgain::Center, &m_center);
-    registerParameter(BornAgain::LeftWidth, &m_left);
-    registerParameter(BornAgain::MiddleWidth, &m_middle);
-    registerParameter(BornAgain::RightWidth, &m_right);
+    registerParameter("Center", &m_center);
+    registerParameter("LeftWidth", &m_left);
+    registerParameter("MiddleWidth", &m_middle);
+    registerParameter("RightWidth", &m_right);
 }
 
 bool DistributionTrapezoid::checkInitialization() const
 {
     if (m_left < 0.0 || m_middle < 0.0 || m_right < 0.0) {
-        SignalBadInitialization(BornAgain::DistributionTrapezoidType);
+        SignalBadInitialization("DistributionTrapezoid");
     }
     return true;
 }
diff --git a/Core/Parametrization/IParameterized.h b/Core/Parametrization/IParameterized.h
index 0579dfdda33936dd422a5f2583b36e0fa5611681..8d377c791217167179f4352039aa72b5c6d0bf5f 100644
--- a/Core/Parametrization/IParameterized.h
+++ b/Core/Parametrization/IParameterized.h
@@ -15,7 +15,6 @@
 #ifndef BORNAGAIN_CORE_PARAMETRIZATION_IPARAMETERIZED_H
 #define BORNAGAIN_CORE_PARAMETRIZATION_IPARAMETERIZED_H
 
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/INamed.h"
 #include "Core/Vector/Vectors3D.h"
 
@@ -47,7 +46,7 @@ public:
     RealParameter& registerParameter(const std::string& name, double* parpointer);
 
     void registerVector(const std::string& base_name, kvector_t* p_vec,
-                        const std::string& units = BornAgain::UnitsNm);
+                        const std::string& units = "nm");
 
     void setParameterValue(const std::string& name, double value);
 
diff --git a/Core/Parametrization/ParameterUtils.cpp b/Core/Parametrization/ParameterUtils.cpp
index 386291c629825f0a4d25e0260b4f74516690766a..0fb9fe71b5b7af8e1e829824a84c8d60afca9546 100644
--- a/Core/Parametrization/ParameterUtils.cpp
+++ b/Core/Parametrization/ParameterUtils.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Parametrization/ParameterUtils.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/ParameterDistribution.h"
 #include "Core/Parametrization/ParameterPool.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -25,8 +24,8 @@ namespace
 //! Returns list of all angle related parameters used in Core library.
 std::vector<std::string> angleRelatedParameters()
 {
-    std::vector<std::string> result{BornAgain::Inclination, BornAgain::Azimuth, BornAgain::Alpha,
-                                    BornAgain::Beta,        BornAgain::Gamma,   BornAgain::Angle};
+    std::vector<std::string> result{"InclinationAngle", "AzimuthalAngle", "Alpha",
+                                    "Beta",        "Gamma",   "Angle"};
     return result;
 }
 } // namespace
diff --git a/Core/Parametrization/RealParameter.cpp b/Core/Parametrization/RealParameter.cpp
index 72d8f1a109418deef81d7a51782697c32d108b26..ce074d89b8334ed8092ed307a14aa99a9f6d49db 100644
--- a/Core/Parametrization/RealParameter.cpp
+++ b/Core/Parametrization/RealParameter.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Parametrization/RealParameter.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include <sstream>
 
 RealParameter::RealParameter(const std::string& name, double* par, const std::string& parent_name,
@@ -97,8 +96,8 @@ RealParameter& RealParameter::setNonnegative()
 
 RealParameter& RealParameter::setUnit(const std::string& name)
 {
-    if (!(name == BornAgain::UnitsNone || name == BornAgain::UnitsNm || name == BornAgain::UnitsRad
-          || name == BornAgain::UnitsNm2))
+    if (!(name == "" || name == "nm" || name == "rad"
+          || name == "nm^2"))
         throw std::runtime_error("RealParameter::setUnit() -> Error. Unexpected unit name " + name);
 
     m_unit.setUnit(name);
diff --git a/Core/Parametrization/Unit.cpp b/Core/Parametrization/Unit.cpp
index c352fccaec8fc575110be9af523cb9738646097d..5ec6519168ea17f8390bbcf2c8b9545168706833 100644
--- a/Core/Parametrization/Unit.cpp
+++ b/Core/Parametrization/Unit.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Parametrization/Unit.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include <stdexcept>
 
 void Unit::setUnit(const std::string& name)
diff --git a/Core/Particle/Crystal.cpp b/Core/Particle/Crystal.cpp
index b5e7b5b2c2dce312b28c40b6e5958cde7167ac3a..17e06f3bc1597a0b3bd1d601ab7119b049ad1811 100644
--- a/Core/Particle/Crystal.cpp
+++ b/Core/Particle/Crystal.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Particle/Crystal.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Particle/FormFactorCrystal.h"
 #include "Core/Particle/Particle.h"
 #include "Core/Particle/ParticleComposition.h"
@@ -21,7 +20,7 @@
 Crystal::Crystal(const IParticle& lattice_basis, const Lattice& lattice)
     : m_lattice(lattice), m_position_variance(0.0)
 {
-    setName(BornAgain::CrystalType);
+    setName("Crystal");
     mp_lattice_basis.reset(lattice_basis.clone());
     mp_lattice_basis->registerAbundance(false);
     registerChild(mp_lattice_basis.get());
@@ -86,7 +85,7 @@ std::vector<const INode*> Crystal::getChildren() const
 Crystal::Crystal(IParticle* p_lattice_basis, const Lattice& lattice)
     : m_lattice(lattice), m_position_variance(0.0)
 {
-    setName(BornAgain::CrystalType);
+    setName("Crystal");
     mp_lattice_basis.reset(p_lattice_basis);
     registerChild(mp_lattice_basis.get());
     registerChild(&m_lattice);
diff --git a/Core/Particle/FormFactorCoreShell.cpp b/Core/Particle/FormFactorCoreShell.cpp
index 37c524fd90932e72f596545173bfade7afb3022b..6d14bd774fb4cb4f534dced9f79f07ab458484d3 100644
--- a/Core/Particle/FormFactorCoreShell.cpp
+++ b/Core/Particle/FormFactorCoreShell.cpp
@@ -13,12 +13,11 @@
 // ************************************************************************** //
 
 #include "Core/Particle/FormFactorCoreShell.h"
-#include "Core/Basics/BornAgainNamespace.h"
 
 FormFactorCoreShell::FormFactorCoreShell(IFormFactor* core, IFormFactor* shell)
     : mP_core(core), mP_shell(shell)
 {
-    setName(BornAgain::FormFactorCoreShellType);
+    setName("FormFactorCoreShell");
 }
 
 FormFactorCoreShell::~FormFactorCoreShell() {}
diff --git a/Core/Particle/FormFactorCrystal.cpp b/Core/Particle/FormFactorCrystal.cpp
index 0beaceafc4fe71f8aa9d8a770c01d727472143d1..b9a01cf1a141e79106b451957ef8f282a1077dc9 100644
--- a/Core/Particle/FormFactorCrystal.cpp
+++ b/Core/Particle/FormFactorCrystal.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Particle/FormFactorCrystal.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Vector/WavevectorInfo.h"
@@ -23,7 +22,7 @@ FormFactorCrystal::FormFactorCrystal(const Lattice& lattice, const IFormFactor&
     : m_lattice(lattice), mp_basis_form_factor(basis_form_factor.clone()),
       mp_meso_form_factor(meso_form_factor.clone()), m_position_variance(position_variance)
 {
-    setName(BornAgain::FormFactorCrystalType);
+    setName("FormFactorCrystal");
     calculateLargestReciprocalDistance();
 }
 
diff --git a/Core/Particle/FormFactorWeighted.cpp b/Core/Particle/FormFactorWeighted.cpp
index 9bbb5c91777fe1f5a7b949b5b542b1073e40cbd8..71c192bffc1195e118cfdc73a7eb1961b8e34463 100644
--- a/Core/Particle/FormFactorWeighted.cpp
+++ b/Core/Particle/FormFactorWeighted.cpp
@@ -14,11 +14,10 @@
 
 #include "Core/Particle/FormFactorWeighted.h"
 #include "Core/Basics/Algorithms.h"
-#include "Core/Basics/BornAgainNamespace.h"
 
 FormFactorWeighted::FormFactorWeighted()
 {
-    setName(BornAgain::FormFactorWeightedType);
+    setName("FormFactorWeighted");
 }
 
 FormFactorWeighted::~FormFactorWeighted()
diff --git a/Core/Particle/IParticle.cpp b/Core/Particle/IParticle.cpp
index a525aa6e4c88761cd63b9bb9f87782c06a9c91fd..f479307913aedca600c245c858a14145d710888b 100644
--- a/Core/Particle/IParticle.cpp
+++ b/Core/Particle/IParticle.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Particle/IParticle.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/DecoratedFormFactor/FormFactorDecoratorPositionFactor.h"
 #include "Core/Multilayer/MultiLayer.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -64,21 +63,21 @@ std::vector<const INode*> IParticle::getChildren() const
 void IParticle::registerAbundance(bool make_registered)
 {
     if (make_registered) {
-        if (!parameter(BornAgain::Abundance))
-            registerParameter(BornAgain::Abundance, &m_abundance);
+        if (!parameter("Abundance"))
+            registerParameter("Abundance", &m_abundance);
     } else {
-        removeParameter(BornAgain::Abundance);
+        removeParameter("Abundance");
     }
 }
 
 void IParticle::registerPosition(bool make_registered)
 {
     if (make_registered) {
-        if (!parameter(XComponentName(BornAgain::Position))) {
-            registerVector(BornAgain::Position, &m_position, BornAgain::UnitsNm);
+        if (!parameter(XComponentName("Position"))) {
+            registerVector("Position", &m_position, "nm");
         }
     } else {
-        removeVector(BornAgain::Position);
+        removeVector("Position");
     }
 }
 
diff --git a/Core/Particle/MesoCrystal.cpp b/Core/Particle/MesoCrystal.cpp
index f8575b6e0779532371c694415949d9a375de1112..e02e4cd87b73f4dd4d18e3e65f73e5e1d112ca65 100644
--- a/Core/Particle/MesoCrystal.cpp
+++ b/Core/Particle/MesoCrystal.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Particle/MesoCrystal.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/DecoratedFormFactor/FormFactorDecoratorPositionFactor.h"
 #include "Core/DecoratedFormFactor/FormFactorDecoratorRotation.h"
 #include "Core/Particle/IClusteredParticles.h"
@@ -78,7 +77,7 @@ MesoCrystal::MesoCrystal(IClusteredParticles* p_particle_structure, IFormFactor*
 
 void MesoCrystal::initialize()
 {
-    setName(BornAgain::MesoCrystalType);
+    setName("MesoCrystal");
     registerParticleProperties();
     registerChild(mp_particle_structure.get());
     registerChild(mp_meso_form_factor.get());
diff --git a/Core/Particle/Particle.cpp b/Core/Particle/Particle.cpp
index a437f586f79bdcaa0e49eaa936789f778cf4b675..e77599597121d35455097e8ce6f9da0065c8ff99 100644
--- a/Core/Particle/Particle.cpp
+++ b/Core/Particle/Particle.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Particle/Particle.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/DecoratedFormFactor/FormFactorDecoratorPositionFactor.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
 
@@ -96,6 +95,6 @@ std::vector<const INode*> Particle::getChildren() const
 
 void Particle::initialize()
 {
-    setName(BornAgain::ParticleType);
+    setName("Particle");
     registerParticleProperties();
 }
diff --git a/Core/Particle/ParticleComposition.cpp b/Core/Particle/ParticleComposition.cpp
index 40e319307a115700d5a940c5ecbba8f4c10029c1..79185c68d51561e6e1d72d4d67019007399dddf7 100644
--- a/Core/Particle/ParticleComposition.cpp
+++ b/Core/Particle/ParticleComposition.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Particle/ParticleComposition.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Particle/FormFactorWeighted.h"
 #include "Core/Particle/ParticleDistribution.h"
@@ -132,6 +131,6 @@ void ParticleComposition::addParticlePointer(IParticle* p_particle)
 
 void ParticleComposition::initialize()
 {
-    setName(BornAgain::ParticleCompositionType);
+    setName("ParticleComposition");
     registerParticleProperties();
 }
diff --git a/Core/Particle/ParticleCoreShell.cpp b/Core/Particle/ParticleCoreShell.cpp
index 94b6a01b9f241106860a695fc9b6071b621577c4..50e910fa326be88928cb2a2bbe9bd497f5676ece 100644
--- a/Core/Particle/ParticleCoreShell.cpp
+++ b/Core/Particle/ParticleCoreShell.cpp
@@ -13,14 +13,13 @@
 // ************************************************************************** //
 
 #include "Core/Particle/ParticleCoreShell.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Particle/FormFactorCoreShell.h"
 #include "Core/Particle/Particle.h"
 
 ParticleCoreShell::ParticleCoreShell(const Particle& shell, const Particle& core,
                                      kvector_t relative_core_position)
 {
-    setName(BornAgain::ParticleCoreShellType);
+    setName("ParticleCoreShell");
     registerParticleProperties();
     addAndRegisterCore(core, relative_core_position);
     addAndRegisterShell(shell);
@@ -107,5 +106,5 @@ void ParticleCoreShell::addAndRegisterShell(const Particle& shell)
 
 ParticleCoreShell::ParticleCoreShell() : mp_shell{nullptr}, mp_core{nullptr}
 {
-    setName(BornAgain::ParticleCoreShellType);
+    setName("ParticleCoreShell");
 }
diff --git a/Core/Particle/ParticleDistribution.cpp b/Core/Particle/ParticleDistribution.cpp
index cc85f96f3886f5037b3f9df3082e9e42b6a3a02a..c989cf8346ad730c0b4f51f3ec540eed7b7a79df 100644
--- a/Core/Particle/ParticleDistribution.cpp
+++ b/Core/Particle/ParticleDistribution.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Particle/ParticleDistribution.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Parametrization/Distributions.h"
 #include "Core/Parametrization/ParameterPool.h"
@@ -26,13 +25,13 @@ ParticleDistribution::ParticleDistribution(const IParticle& prototype,
                                            const ParameterDistribution& par_distr)
     : m_par_distribution(par_distr)
 {
-    setName(BornAgain::ParticleDistributionType);
+    setName("ParticleDistribution");
     mP_particle.reset(prototype.clone());
     registerChild(mP_particle.get());
     mP_particle->registerAbundance(false);
     if (auto dist = m_par_distribution.getDistribution())
         registerChild(dist);
-    registerParameter(BornAgain::Abundance, &m_abundance);
+    registerParameter("Abundance", &m_abundance);
 }
 
 ParticleDistribution* ParticleDistribution::clone() const
diff --git a/Core/Scattering/Rotations.cpp b/Core/Scattering/Rotations.cpp
index 18dc1bf991fe9565e0ac55a5abf734a38780361c..ed1da6d5e42bf3d47e7fb79533796f394f015e57 100644
--- a/Core/Scattering/Rotations.cpp
+++ b/Core/Scattering/Rotations.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Scattering/Rotations.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/RealParameter.h"
 
 IRotation* IRotation::createRotation(const Transform3D& transform)
@@ -80,8 +79,8 @@ Transform3D IdentityRotation::getTransform3D() const
 //! @param angle: rotation angle around x-axis in radians
 RotationX::RotationX(double angle) : m_angle(angle)
 {
-    setName(BornAgain::XRotationType);
-    registerParameter(BornAgain::Angle, &m_angle).setUnit(BornAgain::UnitsRad);
+    setName("XRotation");
+    registerParameter("Angle", &m_angle).setUnit("rad");
 }
 
 Transform3D RotationX::getTransform3D() const
@@ -95,8 +94,8 @@ Transform3D RotationX::getTransform3D() const
 //! @param angle: rotation angle around y-axis in radians
 RotationY::RotationY(double angle) : m_angle(angle)
 {
-    setName(BornAgain::YRotationType);
-    registerParameter(BornAgain::Angle, &m_angle).setUnit(BornAgain::UnitsRad);
+    setName("YRotation");
+    registerParameter("Angle", &m_angle).setUnit("rad");
 }
 
 Transform3D RotationY::getTransform3D() const
@@ -110,8 +109,8 @@ Transform3D RotationY::getTransform3D() const
 //! @param angle: rotation angle around z-axis in radians
 RotationZ::RotationZ(double angle) : m_angle(angle)
 {
-    setName(BornAgain::ZRotationType);
-    registerParameter(BornAgain::Angle, &m_angle).setUnit(BornAgain::UnitsRad);
+    setName("ZRotation");
+    registerParameter("Angle", &m_angle).setUnit("rad");
 }
 
 Transform3D RotationZ::getTransform3D() const
@@ -129,10 +128,10 @@ Transform3D RotationZ::getTransform3D() const
 RotationEuler::RotationEuler(double alpha, double beta, double gamma)
     : m_alpha(alpha), m_beta(beta), m_gamma(gamma)
 {
-    setName(BornAgain::EulerRotationType);
-    registerParameter(BornAgain::Alpha, &m_alpha).setUnit(BornAgain::UnitsRad);
-    registerParameter(BornAgain::Beta, &m_beta).setUnit(BornAgain::UnitsRad);
-    registerParameter(BornAgain::Gamma, &m_gamma).setUnit(BornAgain::UnitsRad);
+    setName("EulerRotation");
+    registerParameter("Alpha", &m_alpha).setUnit("rad");
+    registerParameter("Beta", &m_beta).setUnit("rad");
+    registerParameter("Gamma", &m_gamma).setUnit("rad");
 }
 
 IRotation* RotationEuler::createInverse() const
diff --git a/Core/Simulation/DepthProbeSimulation.cpp b/Core/Simulation/DepthProbeSimulation.cpp
index ac18898264b5751fe5fbf10b5c70591e99deeb1b..00a581c1b179bedd4a105fb4b0e13484e3e6bba1 100644
--- a/Core/Simulation/DepthProbeSimulation.cpp
+++ b/Core/Simulation/DepthProbeSimulation.cpp
@@ -225,18 +225,18 @@ void DepthProbeSimulation::validateParametrization(const ParameterDistribution&
     const std::vector<RealParameter*> names =
         parameter_pool->getMatchedParameters(par_distr.getMainParameterName());
     for (const auto par : names)
-        if (par->getName().find(BornAgain::Inclination) != std::string::npos && !zero_mean)
+        if (par->getName().find("InclinationAngle") != std::string::npos && !zero_mean)
             throw std::runtime_error("Error in DepthProbeSimulation: parameter distribution of "
                                      "beam inclination angle should have zero mean.");
 }
 
 void DepthProbeSimulation::initialize()
 {
-    setName(BornAgain::DepthProbeSimulationType);
+    setName("DepthProbeSimulation");
 
     // allow for negative inclinations in the beam of specular simulation
     // it is required for proper averaging in the case of divergent beam
-    auto inclination = m_instrument.getBeam().parameter(BornAgain::Inclination);
+    auto inclination = m_instrument.getBeam().parameter("InclinationAngle");
     inclination->setLimits(RealLimits::limited(-M_PI_2, M_PI_2));
 }
 
diff --git a/Core/Simulation/GISASSimulation.cpp b/Core/Simulation/GISASSimulation.cpp
index f9972371bdc383957c6f546c77115e2f4e9bffe9..cd5bbb7d53e40e756fce068036cb4b9b94778526 100644
--- a/Core/Simulation/GISASSimulation.cpp
+++ b/Core/Simulation/GISASSimulation.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Simulation/GISASSimulation.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Computation/DWBAComputation.h"
 #include "Core/Computation/IBackground.h"
 #include "Core/Instrument/Histogram2D.h"
@@ -91,5 +90,5 @@ void GISASSimulation::initSimulationElementVector()
 
 void GISASSimulation::initialize()
 {
-    setName(BornAgain::GISASSimulationType);
+    setName("GISASSimulation");
 }
diff --git a/Core/Simulation/OffSpecSimulation.cpp b/Core/Simulation/OffSpecSimulation.cpp
index 176fb4286b516164d002ad2eecbffeed25921dcb..00694c8d31b8a6669f7932b25ba4e0bdef28f8a0 100644
--- a/Core/Simulation/OffSpecSimulation.cpp
+++ b/Core/Simulation/OffSpecSimulation.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/Simulation/OffSpecSimulation.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Computation/DWBAComputation.h"
 #include "Core/Instrument/Histogram2D.h"
 #include "Core/Instrument/SimpleUnitConverters.h"
@@ -135,7 +134,7 @@ void OffSpecSimulation::validateParametrization(const ParameterDistribution& par
     const std::vector<RealParameter*> names =
         parameter_pool->getMatchedParameters(par_distr.getMainParameterName());
     for (const auto par : names)
-        if (par->getName().find(BornAgain::Inclination) != std::string::npos && !zero_mean)
+        if (par->getName().find("InclinationAngle") != std::string::npos && !zero_mean)
             throw std::runtime_error("Error in OffSpecSimulation: parameter distribution of "
                                      "beam inclination angle should have zero mean.");
 }
@@ -191,5 +190,5 @@ void OffSpecSimulation::checkInitialization() const
 
 void OffSpecSimulation::initialize()
 {
-    setName(BornAgain::OffSpecSimulationType);
+    setName("OffSpecSimulation");
 }
diff --git a/Core/Simulation/SpecularSimulation.cpp b/Core/Simulation/SpecularSimulation.cpp
index 447a5ada9f7f4340f379e83934ba82e9c1f9c445..3ff3b6f927ef39a851e7efa6f740e13365d8045b 100644
--- a/Core/Simulation/SpecularSimulation.cpp
+++ b/Core/Simulation/SpecularSimulation.cpp
@@ -192,18 +192,18 @@ void SpecularSimulation::validateParametrization(const ParameterDistribution& pa
     const std::vector<RealParameter*> names =
         parameter_pool->getMatchedParameters(par_distr.getMainParameterName());
     for (const auto par : names)
-        if (par->getName().find(BornAgain::Inclination) != std::string::npos && !zero_mean)
+        if (par->getName().find("InclinationAngle") != std::string::npos && !zero_mean)
             throw std::runtime_error("Error in SpecularSimulation: parameter distribution of "
                                      "beam inclination angle should have zero mean.");
 }
 
 void SpecularSimulation::initialize()
 {
-    setName(BornAgain::SpecularSimulationType);
+    setName("SpecularSimulation");
 
     // allow for negative inclinations in the beam of specular simulation
     // it is required for proper averaging in the case of divergent beam
-    auto inclination = m_instrument.getBeam().parameter(BornAgain::Inclination);
+    auto inclination = m_instrument.getBeam().parameter("InclinationAngle");
     inclination->setLimits(RealLimits::limited(-M_PI_2, M_PI_2));
 }
 
diff --git a/Core/SoftParticle/FormFactorDebyeBueche.cpp b/Core/SoftParticle/FormFactorDebyeBueche.cpp
index da3f1d13d961e4e98c583161c710285d2ba04f03..d72c1cce8cde845a9d4a8d2651a325cd547baf48 100644
--- a/Core/SoftParticle/FormFactorDebyeBueche.cpp
+++ b/Core/SoftParticle/FormFactorDebyeBueche.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/SoftParticle/FormFactorDebyeBueche.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
 #include <limits>
@@ -22,7 +21,7 @@ FormFactorDebyeBueche::FormFactorDebyeBueche(double I0, double xi)
 {
     m_I0 = I0;
     m_xi = xi;
-    setName(BornAgain::FFDebyeBuecheType);
+    setName("FormFactorDebyeBueche");
 }
 
 complex_t FormFactorDebyeBueche::evaluate_for_q(cvector_t q) const
diff --git a/Core/SoftParticle/FormFactorGauss.cpp b/Core/SoftParticle/FormFactorGauss.cpp
index 45a7ea2786082fa76c1a73b26d01fa8a7d0ec679..dca2dd74ba7ed3d64835cdc56e10052e7029d8a1 100644
--- a/Core/SoftParticle/FormFactorGauss.cpp
+++ b/Core/SoftParticle/FormFactorGauss.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/SoftParticle/FormFactorGauss.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
 #include "Core/Shapes/Box.h"
@@ -25,9 +24,9 @@ FormFactorGauss::FormFactorGauss(double width, double height)
 {
     m_width = width;
     m_height = height;
-    setName(BornAgain::FFGaussType);
-    registerParameter(BornAgain::Width, &m_width).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Height, &m_height).setUnit(BornAgain::UnitsNm).setNonnegative();
+    setName("FormFactorGauss");
+    registerParameter("Width", &m_width).setUnit("nm").setNonnegative();
+    registerParameter("Height", &m_height).setUnit("nm").setNonnegative();
     m_max_ql = std::sqrt(-4 * M_PI * std::log(std::numeric_limits<double>::min()) / 3);
     onChange();
 }
diff --git a/Core/SoftParticle/FormFactorLorentz.cpp b/Core/SoftParticle/FormFactorLorentz.cpp
index acabd0c38563833e6a8a0c09e40f0e4b65d7e73b..503babb84dcacc7f91ff90b558c9b460782fdb54 100644
--- a/Core/SoftParticle/FormFactorLorentz.cpp
+++ b/Core/SoftParticle/FormFactorLorentz.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/SoftParticle/FormFactorLorentz.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
 #include "Core/Shapes/Box.h"
@@ -58,8 +57,8 @@ void FormFactorLorentz::onChange()
 
 void FormFactorLorentz::initialize()
 {
-    setName(BornAgain::FFLorentzType);
-    registerParameter(BornAgain::Width, &m_width).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::Height, &m_height).setUnit(BornAgain::UnitsNm).setNonnegative();
+    setName("FormFactorLorentz");
+    registerParameter("Width", &m_width).setUnit("nm").setNonnegative();
+    registerParameter("Height", &m_height).setUnit("nm").setNonnegative();
     onChange();
 }
diff --git a/Core/SoftParticle/FormFactorOrnsteinZernike.cpp b/Core/SoftParticle/FormFactorOrnsteinZernike.cpp
index 5bfa1e17d79acb97a07982cbb6a9e88ff96913dd..4cd83cdddf3d871a6dbf89e4ed69d267824c92ba 100644
--- a/Core/SoftParticle/FormFactorOrnsteinZernike.cpp
+++ b/Core/SoftParticle/FormFactorOrnsteinZernike.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/SoftParticle/FormFactorOrnsteinZernike.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
 #include <limits>
@@ -23,7 +22,7 @@ FormFactorOrnsteinZernike::FormFactorOrnsteinZernike(double I0, double xi_xy, do
     m_I0 = I0;
     m_xi_xy = xi_xy;
     m_xi_z = xi_z;
-    setName(BornAgain::FFOrnsteinZernikeType);
+    setName("FormFactorOrnsteinZernike");
 }
 
 complex_t FormFactorOrnsteinZernike::evaluate_for_q(cvector_t q) const
diff --git a/Core/SoftParticle/FormFactorSphereGaussianRadius.cpp b/Core/SoftParticle/FormFactorSphereGaussianRadius.cpp
index 07382bee4e3330671bf11fd72b2374618717cc57..5b7ecf7a63021765a2645bd3e9d495f6791e35c5 100644
--- a/Core/SoftParticle/FormFactorSphereGaussianRadius.cpp
+++ b/Core/SoftParticle/FormFactorSphereGaussianRadius.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/SoftParticle/FormFactorSphereGaussianRadius.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/RealParameter.h"
 #include "Core/Shapes/TruncatedEllipsoid.h"
 #include "Fit/Tools/RealLimits.h"
@@ -21,12 +20,12 @@
 FormFactorSphereGaussianRadius::FormFactorSphereGaussianRadius(double mean, double sigma)
     : m_mean(mean), m_sigma(sigma), m_mean_r3(0.0)
 {
-    setName(BornAgain::FormFactorSphereGaussianRadiusType);
+    setName("FormFactorSphereGaussianRadius");
     m_mean_r3 = calculateMeanR3();
     P_ff_sphere.reset(new FormFactorFullSphere(m_mean_r3));
-    registerParameter(BornAgain::MeanRadius, &m_mean).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::SigmaRadius, &m_sigma)
-        .setUnit(BornAgain::UnitsNm)
+    registerParameter("MeanRadius", &m_mean).setUnit("nm").setNonnegative();
+    registerParameter("SigmaRadius", &m_sigma)
+        .setUnit("nm")
         .setNonnegative();
     onChange();
 }
diff --git a/Core/SoftParticle/FormFactorSphereLogNormalRadius.cpp b/Core/SoftParticle/FormFactorSphereLogNormalRadius.cpp
index aef53b1e4ef242baed6991499a5e0e77067a1bda..ddbbdf969d8bd4a1427da84efe2985f0b2c62688 100644
--- a/Core/SoftParticle/FormFactorSphereLogNormalRadius.cpp
+++ b/Core/SoftParticle/FormFactorSphereLogNormalRadius.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/SoftParticle/FormFactorSphereLogNormalRadius.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/Distributions.h"
 #include "Core/Parametrization/ParameterSample.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -23,10 +22,10 @@ FormFactorSphereLogNormalRadius::FormFactorSphereLogNormalRadius(double mean, do
                                                                  size_t n_samples)
     : m_mean(mean), m_scale_param(scale_param), m_n_samples(n_samples)
 {
-    setName(BornAgain::FormFactorSphereLogNormalRadiusType);
+    setName("FormFactorSphereLogNormalRadius");
     mP_distribution.reset(new DistributionLogNormal(mean, scale_param));
-    registerParameter(BornAgain::MeanRadius, &m_mean).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::ScaleParameter, &m_scale_param);
+    registerParameter("MeanRadius", &m_mean).setUnit("nm").setNonnegative();
+    registerParameter("ScaleParameter", &m_scale_param);
     if (!mP_distribution)
         return;
     // Init vectors:
diff --git a/Core/SoftParticle/FormFactorSphereUniformRadius.cpp b/Core/SoftParticle/FormFactorSphereUniformRadius.cpp
index 7694fed30bd1d911c3e4e9b9f4d6b3c872be17f8..40ff65e3be559d0b0e682a887c6fc942d0f6869c 100644
--- a/Core/SoftParticle/FormFactorSphereUniformRadius.cpp
+++ b/Core/SoftParticle/FormFactorSphereUniformRadius.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/SoftParticle/FormFactorSphereUniformRadius.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
@@ -27,10 +26,10 @@ FormFactorSphereUniformRadius::FormFactorSphereUniformRadius(double mean, double
         throw Exceptions::ClassInitializationException(
             "FormFactorSphereUniformRadius::FormFactorSphereUniformRadius:"
             " mean radius must be bigger than the half width");
-    setName(BornAgain::FormFactorSphereUniformRadiusType);
-    registerParameter(BornAgain::MeanRadius, &m_mean).setUnit(BornAgain::UnitsNm).setNonnegative();
-    registerParameter(BornAgain::FullWidth, &m_full_width)
-        .setUnit(BornAgain::UnitsNm)
+    setName("FormFactorSphereUniformRadius");
+    registerParameter("MeanRadius", &m_mean).setUnit("nm").setNonnegative();
+    registerParameter("FullWidth", &m_full_width)
+        .setUnit("nm")
         .setNonnegative();
     onChange();
 }
diff --git a/Core/StandardSamples/BoxesSquareLatticeBuilder.cpp b/Core/StandardSamples/BoxesSquareLatticeBuilder.cpp
index 4c5605c4eb66ca11bdb1007d3c03a88c4b6283be..2ee05fe094e0da2bb66ae236fcc3fb4ffb45d424 100644
--- a/Core/StandardSamples/BoxesSquareLatticeBuilder.cpp
+++ b/Core/StandardSamples/BoxesSquareLatticeBuilder.cpp
@@ -15,7 +15,6 @@
 #include "Core/StandardSamples/BoxesSquareLatticeBuilder.h"
 #include "Core/Aggregate/InterferenceFunction2DLattice.h"
 #include "Core/Aggregate/ParticleLayout.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/HardParticle/FormFactorBox.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
 #include "Core/Multilayer/Layer.h"
diff --git a/Core/StandardSamples/CylindersAndPrismsBuilder.cpp b/Core/StandardSamples/CylindersAndPrismsBuilder.cpp
index 021c7e6546ccc433f8fe70bc1efdb3778c3d6319..b093240dd1f3b0e264239259236298e0a36f8cd6 100644
--- a/Core/StandardSamples/CylindersAndPrismsBuilder.cpp
+++ b/Core/StandardSamples/CylindersAndPrismsBuilder.cpp
@@ -14,7 +14,6 @@
 
 #include "Core/StandardSamples/CylindersAndPrismsBuilder.h"
 #include "Core/Aggregate/ParticleLayout.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/HardParticle/FormFactorCylinder.h"
 #include "Core/HardParticle/FormFactorPrism3.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
diff --git a/Core/StandardSamples/CylindersBuilder.cpp b/Core/StandardSamples/CylindersBuilder.cpp
index 700a313eec48ac46a69fc066af2a253081d00f07..b0c055404eeb908277e4390773e0756941e7b38f 100644
--- a/Core/StandardSamples/CylindersBuilder.cpp
+++ b/Core/StandardSamples/CylindersBuilder.cpp
@@ -14,7 +14,6 @@
 
 #include "Core/StandardSamples/CylindersBuilder.h"
 #include "Core/Aggregate/ParticleLayout.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/HardParticle/FormFactorCylinder.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
 #include "Core/Multilayer/Layer.h"
diff --git a/Core/StandardSamples/LatticeBuilder.cpp b/Core/StandardSamples/LatticeBuilder.cpp
index cddc6871b478227ccd6a157288f4c21b3e556177..99f7fb2dbd7e1d22175bbcc1a923f049f9578628 100644
--- a/Core/StandardSamples/LatticeBuilder.cpp
+++ b/Core/StandardSamples/LatticeBuilder.cpp
@@ -16,7 +16,6 @@
 #include "Core/Aggregate/FTDecayFunctions.h"
 #include "Core/Aggregate/InterferenceFunction1DLattice.h"
 #include "Core/Aggregate/ParticleLayout.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/HardParticle/FormFactorCylinder.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
 #include "Core/Multilayer/Layer.h"
diff --git a/Core/StandardSamples/MagneticLayersBuilder.cpp b/Core/StandardSamples/MagneticLayersBuilder.cpp
index 2b6969ad07bfd821bab1249d3081a7b874a9ec8c..9163286fd8f9333dadf90fa34411e9c34d4d7cd9 100644
--- a/Core/StandardSamples/MagneticLayersBuilder.cpp
+++ b/Core/StandardSamples/MagneticLayersBuilder.cpp
@@ -14,7 +14,6 @@
 
 #include "Core/StandardSamples/MagneticLayersBuilder.h"
 #include "Core/Aggregate/ParticleLayout.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/HardParticle/FormFactorFullSphere.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
 #include "Core/Multilayer/Layer.h"
diff --git a/Core/StandardSamples/MagneticParticlesBuilder.cpp b/Core/StandardSamples/MagneticParticlesBuilder.cpp
index ae8ab6b9f207fa67bea5f3dd00dfcb393494333f..3ebcd0502b0f584767b6f94355e0bd06cec3280c 100644
--- a/Core/StandardSamples/MagneticParticlesBuilder.cpp
+++ b/Core/StandardSamples/MagneticParticlesBuilder.cpp
@@ -14,7 +14,6 @@
 
 #include "Core/StandardSamples/MagneticParticlesBuilder.h"
 #include "Core/Aggregate/ParticleLayout.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/HardParticle/FormFactorCylinder.h"
 #include "Core/HardParticle/FormFactorFullSphere.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
diff --git a/Core/StandardSamples/MesoCrystalBuilder.cpp b/Core/StandardSamples/MesoCrystalBuilder.cpp
index e9149b7034882e9f30587cecc3f2e66291d73648..c3763211bd2be1dceec68795e6a4b37579992fbc 100644
--- a/Core/StandardSamples/MesoCrystalBuilder.cpp
+++ b/Core/StandardSamples/MesoCrystalBuilder.cpp
@@ -14,7 +14,6 @@
 
 #include "Core/StandardSamples/MesoCrystalBuilder.h"
 #include "Core/Aggregate/ParticleLayout.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/HardParticle/FormFactorCylinder.h"
 #include "Core/Lattice/ISelectionRule.h"
diff --git a/Core/StandardSamples/MultiLayerWithNCRoughnessBuilder.cpp b/Core/StandardSamples/MultiLayerWithNCRoughnessBuilder.cpp
index 7dbb7efe1130e813767d3585ef96f096d1ebd55e..4355f915b6b687049fe25b8c87ef6e31f2d18428 100644
--- a/Core/StandardSamples/MultiLayerWithNCRoughnessBuilder.cpp
+++ b/Core/StandardSamples/MultiLayerWithNCRoughnessBuilder.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/StandardSamples/MultiLayerWithNCRoughnessBuilder.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
 #include "Core/Multilayer/Layer.h"
 #include "Core/Multilayer/LayerRoughness.h"
diff --git a/Core/StandardSamples/MultiLayerWithRoughnessBuilder.cpp b/Core/StandardSamples/MultiLayerWithRoughnessBuilder.cpp
index d4a81a630dc318d21d8d0ded9adf4bbe1b189352..6884dc89e39dba9e60f5468ef4f6b5955f019771 100644
--- a/Core/StandardSamples/MultiLayerWithRoughnessBuilder.cpp
+++ b/Core/StandardSamples/MultiLayerWithRoughnessBuilder.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/StandardSamples/MultiLayerWithRoughnessBuilder.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
 #include "Core/Multilayer/Layer.h"
 #include "Core/Multilayer/LayerRoughness.h"
diff --git a/Core/StandardSamples/MultipleLayoutBuilder.cpp b/Core/StandardSamples/MultipleLayoutBuilder.cpp
index a0776c0305ca036e9f8ed4eff2dc6a99e667bfa4..ec35984d92514ffc043844c1a14d78a03196ee47 100644
--- a/Core/StandardSamples/MultipleLayoutBuilder.cpp
+++ b/Core/StandardSamples/MultipleLayoutBuilder.cpp
@@ -14,7 +14,6 @@
 
 #include "Core/StandardSamples/MultipleLayoutBuilder.h"
 #include "Core/Aggregate/ParticleLayout.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/HardParticle/FormFactorCylinder.h"
 #include "Core/HardParticle/FormFactorPrism3.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
diff --git a/Core/StandardSamples/ParaCrystalBuilder.cpp b/Core/StandardSamples/ParaCrystalBuilder.cpp
index bbf5224e9ac78fc6c010032e6fe00efaf18164a6..e3e7eac5a3e0924a73b667e8fbc9b7d15a4d7167 100644
--- a/Core/StandardSamples/ParaCrystalBuilder.cpp
+++ b/Core/StandardSamples/ParaCrystalBuilder.cpp
@@ -16,7 +16,6 @@
 #include "Core/Aggregate/InterferenceFunction2DParaCrystal.h"
 #include "Core/Aggregate/InterferenceFunctionRadialParaCrystal.h"
 #include "Core/Aggregate/ParticleLayout.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/HardParticle/FormFactorCylinder.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
 #include "Core/Multilayer/Layer.h"
diff --git a/Core/StandardSamples/ParticleDistributionsBuilder.cpp b/Core/StandardSamples/ParticleDistributionsBuilder.cpp
index 11876e57bbb72143e2e32f6f80e42edec82e9e49..85720e87850bf23b2c56c00b4a9443cb79346796 100644
--- a/Core/StandardSamples/ParticleDistributionsBuilder.cpp
+++ b/Core/StandardSamples/ParticleDistributionsBuilder.cpp
@@ -14,7 +14,6 @@
 
 #include "Core/StandardSamples/ParticleDistributionsBuilder.h"
 #include "Core/Aggregate/ParticleLayout.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/HardParticle/FormFactorBox.h"
 #include "Core/HardParticle/FormFactorCone.h"
 #include "Core/HardParticle/FormFactorCylinder.h"
@@ -56,7 +55,7 @@ MultiLayer* CylindersWithSizeDistributionBuilder::buildSample() const
     double n_sigma = 2.0 * 2.0 * std::sqrt(2.0 * std::log(2.0));
     DistributionGaussian gauss(m_radius, sigma);
     ParameterPattern pattern;
-    pattern.add(BornAgain::ParticleType).add(BornAgain::FFCylinderType).add(BornAgain::Radius);
+    pattern.add("Particle").add("Cylinder").add("Radius");
     ParameterDistribution par_distr(pattern.toStdString(), gauss, static_cast<size_t>(n_samples),
                                     n_sigma);
     ParticleDistribution particle_collection(nano_particle, par_distr);
@@ -109,12 +108,12 @@ MultiLayer* TwoTypesCylindersDistributionBuilder::buildSample() const
 
     // building distribution of nano particles
     ParameterPattern pattern1;
-    pattern1.add(BornAgain::ParticleType).add(BornAgain::FFCylinderType).add(BornAgain::Radius);
+    pattern1.add("Particle").add("Cylinder").add("Radius");
     ParameterDistribution par_distr1(pattern1.toStdString(), gauss1, nbins, n_sigma);
     ParticleDistribution particle_collection1(cylinder1, par_distr1);
     particle_layout.addParticle(particle_collection1, 0.95);
     ParameterPattern pattern2;
-    pattern2.add(BornAgain::ParticleType).add(BornAgain::FFCylinderType).add(BornAgain::Radius);
+    pattern2.add("Particle").add("Cylinder").add("Radius");
     ParameterDistribution par_distr2(pattern2.toStdString(), gauss2, static_cast<size_t>(nbins),
                                      n_sigma);
     ParticleDistribution particle_collection2(cylinder2, par_distr2);
diff --git a/Core/StandardSamples/RipplesBuilder.cpp b/Core/StandardSamples/RipplesBuilder.cpp
index e1be177cff585817ebfe5a5028ca383c2d837910..c1a57739d9f6c3c7c4e8a546aaa9c1559072ebfd 100644
--- a/Core/StandardSamples/RipplesBuilder.cpp
+++ b/Core/StandardSamples/RipplesBuilder.cpp
@@ -15,7 +15,6 @@
 #include "Core/StandardSamples/RipplesBuilder.h"
 #include "Core/Aggregate/InterferenceFunctionRadialParaCrystal.h"
 #include "Core/Aggregate/ParticleLayout.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/HardParticle/FormFactorRipple1.h"
 #include "Core/HardParticle/FormFactorRipple2.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
diff --git a/Core/StandardSamples/RotatedPyramidsBuilder.cpp b/Core/StandardSamples/RotatedPyramidsBuilder.cpp
index d0e38a7a90803b414ebc5e578aaca67b3e8cdc94..7d566bb296c7573d4552b28d283a59851db61282 100644
--- a/Core/StandardSamples/RotatedPyramidsBuilder.cpp
+++ b/Core/StandardSamples/RotatedPyramidsBuilder.cpp
@@ -14,7 +14,6 @@
 
 #include "Core/StandardSamples/RotatedPyramidsBuilder.h"
 #include "Core/Aggregate/ParticleLayout.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/HardParticle/FormFactorPyramid.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
 #include "Core/Multilayer/Layer.h"
diff --git a/Core/StandardSamples/SampleComponents.cpp b/Core/StandardSamples/SampleComponents.cpp
index c9d5a7fd6c717937250f80939e1ccba04786c9c8..dda45e50eb5827f439c566042fb154d2fdb98297 100644
--- a/Core/StandardSamples/SampleComponents.cpp
+++ b/Core/StandardSamples/SampleComponents.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/StandardSamples/SampleComponents.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/Units.h"
 #include "Core/includeIncludes/HardParticles.h"
 
@@ -21,64 +20,64 @@
 FTDistribution2DComponents::FTDistribution2DComponents()
 // ************************************************************************** //
 {
-    add(BornAgain::FTDistribution2DCauchyType, new FTDistribution2DCauchy(0.5, 1.0));
-    add(BornAgain::FTDistribution2DGaussType, new FTDistribution2DGauss(0.5, 1.0));
-    add(BornAgain::FTDistribution2DGateType, new FTDistribution2DGate(0.5, 1.0));
-    add(BornAgain::FTDistribution2DConeType, new FTDistribution2DCone(0.5, 1.0));
-    add(BornAgain::FTDistribution2DVoigtType, new FTDistribution2DVoigt(0.5, 1.0, 0.2));
+    add("FTDistribution2DCauchy", new FTDistribution2DCauchy(0.5, 1.0));
+    add("FTDistribution2DGauss", new FTDistribution2DGauss(0.5, 1.0));
+    add("FTDistribution2DGate", new FTDistribution2DGate(0.5, 1.0));
+    add("FTDistribution2DCone", new FTDistribution2DCone(0.5, 1.0));
+    add("FTDistribution2DVoigt", new FTDistribution2DVoigt(0.5, 1.0, 0.2));
 }
 
 // ************************************************************************** //
 FormFactorComponents::FormFactorComponents()
 // ************************************************************************** //
 {
-    add(BornAgain::FFAnisoPyramidType,
+    add("AnisoPyramid",
         new FormFactorAnisoPyramid(10.0, 20.0, 5.0, Units::deg2rad(54.73)));
 
-    add(BornAgain::FFBoxType, new FormFactorBox(10.0, 20.0, 5.0));
+    add("Box", new FormFactorBox(10.0, 20.0, 5.0));
 
     //  TODO: activate this when supported by GUI
     //    add("CantellatedCube", new FormFactorCantellatedCube(15.0, 6.0));
 
-    add(BornAgain::FFConeType, new FormFactorCone(5.0, 6.0, Units::deg2rad(54.73)));
+    add("Cone", new FormFactorCone(5.0, 6.0, Units::deg2rad(54.73)));
 
-    add(BornAgain::FFCone6Type,
+    add("Cone6",
         new FormFactorCone6(2. / sqrt(3.) * 5.0, 5.0, Units::deg2rad(54.73)));
 
-    add(BornAgain::FFCuboctahedronType,
+    add("Cuboctahedron",
         new FormFactorCuboctahedron(10.0, 5.0, 1.0, Units::deg2rad(54.73)));
 
-    add(BornAgain::FFCylinderType, new FormFactorCylinder(5.0, 10.0));
+    add("Cylinder", new FormFactorCylinder(5.0, 10.0));
 
-    add(BornAgain::FFDodecahedronType, new FormFactorDodecahedron(5.0));
+    add("Dodecahedron", new FormFactorDodecahedron(5.0));
 
-    add(BornAgain::FFDotType, new FormFactorDot(5.0));
+    add("Dot", new FormFactorDot(5.0));
 
-    add(BornAgain::FFEllipsoidalCylinderType, new FormFactorEllipsoidalCylinder(5.0, 10.0, 15.0));
+    add("EllipsoidalCylinder", new FormFactorEllipsoidalCylinder(5.0, 10.0, 15.0));
 
-    add(BornAgain::FFFullSphereType, new FormFactorFullSphere(5.0));
+    add("FullSphere", new FormFactorFullSphere(5.0));
 
-    add(BornAgain::FFFullSpheroidType, new FormFactorFullSpheroid(5.0, 10.0));
+    add("FullSpheroid", new FormFactorFullSpheroid(5.0, 10.0));
 
-    add(BornAgain::FFHemiEllipsoidType, new FormFactorHemiEllipsoid(5.0, 10.0, 15.0));
+    add("HemiEllipsoid", new FormFactorHemiEllipsoid(5.0, 10.0, 15.0));
 
-    add(BornAgain::FFIcosahedronType, new FormFactorIcosahedron(10.0));
+    add("Icosahedron", new FormFactorIcosahedron(10.0));
 
-    add(BornAgain::FFPrism3Type, new FormFactorPrism3(10.0, 5.0));
+    add("Prism3", new FormFactorPrism3(10.0, 5.0));
 
-    add(BornAgain::FFPrism6Type, new FormFactorPrism6(2. / sqrt(3.) * 5.0, 5.0));
+    add("Prism6", new FormFactorPrism6(2. / sqrt(3.) * 5.0, 5.0));
 
-    add(BornAgain::FFPyramidType, new FormFactorPyramid(10.0, 5.0, Units::deg2rad(54.73)));
+    add("Pyramid", new FormFactorPyramid(10.0, 5.0, Units::deg2rad(54.73)));
 
-    add(BornAgain::FFRipple1BoxType, new FormFactorRipple1Box(100.0, 20.0, 4.0));
+    add("Ripple1Box", new FormFactorRipple1Box(100.0, 20.0, 4.0));
 
-    add(BornAgain::FFRipple2BoxType, new FormFactorRipple2Box(100.0, 20.0, 4.0, 0.0));
+    add("Ripple2Box", new FormFactorRipple2Box(100.0, 20.0, 4.0, 0.0));
 
-    add(BornAgain::FFTetrahedronType, new FormFactorTetrahedron(10.0, 4.0, Units::deg2rad(54.73)));
+    add("Tetrahedron", new FormFactorTetrahedron(10.0, 4.0, Units::deg2rad(54.73)));
 
-    add(BornAgain::FFTruncatedCubeType, new FormFactorTruncatedCube(15.0, 6.0));
+    add("TruncatedCube", new FormFactorTruncatedCube(15.0, 6.0));
 
-    add(BornAgain::FFTruncatedSphereType, new FormFactorTruncatedSphere(5.0, 7.0));
+    add("TruncatedSphere", new FormFactorTruncatedSphere(5.0, 7.0));
 
-    add(BornAgain::FFTruncatedSpheroidType, new FormFactorTruncatedSpheroid(5.0, 7.0, 1.0));
+    add("TruncatedSpheroid", new FormFactorTruncatedSpheroid(5.0, 7.0, 1.0));
 }
diff --git a/Core/StandardSamples/SizeDistributionModelsBuilder.cpp b/Core/StandardSamples/SizeDistributionModelsBuilder.cpp
index 9acddfbce4eb18671664c5a0c246ef741cae188e..e07a7c0e81807c199e39f1f6037d55b03a11dad5 100644
--- a/Core/StandardSamples/SizeDistributionModelsBuilder.cpp
+++ b/Core/StandardSamples/SizeDistributionModelsBuilder.cpp
@@ -15,7 +15,6 @@
 #include "Core/StandardSamples/SizeDistributionModelsBuilder.h"
 #include "Core/Aggregate/InterferenceFunctionRadialParaCrystal.h"
 #include "Core/Aggregate/ParticleLayout.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/HardParticle/FormFactorCylinder.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
 #include "Core/Multilayer/Layer.h"
@@ -189,14 +188,14 @@ MultiLayer* CylindersInSSCABuilder::buildSample() const
 
     DistributionGaussian gauss(5.0 * Units::nanometer, 1.25 * Units::nanometer);
     ParameterPattern pattern_radius;
-    pattern_radius.add(BornAgain::ParticleType)
-        .add(BornAgain::FFCylinderType)
-        .add(BornAgain::Radius);
+    pattern_radius.add("Particle")
+        .add("Cylinder")
+        .add("Radius");
     ParameterDistribution par_distr(pattern_radius.toStdString(), gauss, 30, 3.0);
     ParameterPattern pattern_height;
-    pattern_height.add(BornAgain::ParticleType)
-        .add(BornAgain::FFCylinderType)
-        .add(BornAgain::Height);
+    pattern_height.add("Particle")
+        .add("Cylinder")
+        .add("Height");
     par_distr.linkParameter(pattern_height.toStdString());
     ParticleDistribution particle_collection(particle_prototype, par_distr);
     particle_layout.addParticle(particle_collection);
diff --git a/Core/StandardSamples/StandardSimulations.cpp b/Core/StandardSamples/StandardSimulations.cpp
index 5d606aab8faa8ada402686ef53430405b65f159d..6257de54ef085c38ba80932a4a7957ebb5aa24dd 100644
--- a/Core/StandardSamples/StandardSimulations.cpp
+++ b/Core/StandardSamples/StandardSimulations.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/StandardSamples/StandardSimulations.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Beam/FootprintFactorGaussian.h"
 #include "Core/Beam/FootprintFactorSquare.h"
 #include "Core/Binning/FixedBinAxis.h"
@@ -112,13 +111,13 @@ GISASSimulation* StandardSimulations::MiniGISASBeamDivergence()
     DistributionGate phi_distr(-0.1 * Units::degree, 0.1 * Units::degree);
 
     ParameterPattern pattern1;
-    pattern1.beginsWith("*").add(BornAgain::BeamType).add(BornAgain::Wavelength);
+    pattern1.beginsWith("*").add("Beam").add("Wavelength");
     result->addParameterDistribution(pattern1.toStdString(), wavelength_distr, 5);
     ParameterPattern pattern2;
-    pattern2.beginsWith("*").add(BornAgain::BeamType).add(BornAgain::Inclination);
+    pattern2.beginsWith("*").add("Beam").add("InclinationAngle");
     result->addParameterDistribution(pattern2.toStdString(), alpha_distr, 4);
     ParameterPattern pattern3;
-    pattern3.beginsWith("*").add(BornAgain::BeamType).add(BornAgain::Azimuth);
+    pattern3.beginsWith("*").add("Beam").add("AzimuthalAngle");
     result->addParameterDistribution(pattern3.toStdString(), phi_distr, 3);
 
     return result;
diff --git a/Core/StandardSamples/TwoLayerRoughnessBuilder.cpp b/Core/StandardSamples/TwoLayerRoughnessBuilder.cpp
index cca370a18bccf9563fba78dace843bc028d99e61..a48b51d8af3387f0ecc2ce04e32a6ccd0041bd05 100644
--- a/Core/StandardSamples/TwoLayerRoughnessBuilder.cpp
+++ b/Core/StandardSamples/TwoLayerRoughnessBuilder.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Core/StandardSamples/TwoLayerRoughnessBuilder.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
 #include "Core/Multilayer/Layer.h"
 #include "Core/Multilayer/LayerRoughness.h"
diff --git a/GUI/coregui/Models/BackgroundItems.cpp b/GUI/coregui/Models/BackgroundItems.cpp
index fb5b30e0a867835c06acdc6403ce1b21f034890e..7ae63b479df469ee9644a2187455cb8ecdcf69de 100644
--- a/GUI/coregui/Models/BackgroundItems.cpp
+++ b/GUI/coregui/Models/BackgroundItems.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/BackgroundItems.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Computation/ConstantBackground.h"
 #include "Core/Computation/PoissonNoiseBackground.h"
 #include "GUI/coregui/Models/item_constants.h"
@@ -38,7 +37,7 @@ namespace
 const QString constant_background_value_tooltip = "Constant background value [counts/pixel]";
 }
 
-const QString ConstantBackgroundItem::P_VALUE = QString::fromStdString(BornAgain::BackgroundValue);
+const QString ConstantBackgroundItem::P_VALUE = QString::fromStdString("BackgroundValue");
 
 ConstantBackgroundItem::ConstantBackgroundItem() : BackgroundItem(Constants::ConstantBackgroundType)
 {
diff --git a/GUI/coregui/Models/BeamItems.cpp b/GUI/coregui/Models/BeamItems.cpp
index bf3166d6707842f9fbaef344efbebc3b0d43276e..b3569cc3ea4422a4ae0cc395ef1c7840b4d6dcc8 100644
--- a/GUI/coregui/Models/BeamItems.cpp
+++ b/GUI/coregui/Models/BeamItems.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/BeamItems.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Beam/Beam.h"
 #include "Core/Binning/IAxis.h"
 #include "Core/Parametrization/Units.h"
@@ -40,10 +39,10 @@ const QString polarization_tooltip = "Polarization of the beam, given as the Blo
 RealLimits getLimits(double max_q);
 } // namespace
 
-const QString BeamItem::P_INTENSITY = QString::fromStdString(BornAgain::Intensity);
-const QString BeamItem::P_WAVELENGTH = QString::fromStdString(BornAgain::Wavelength);
-const QString BeamItem::P_INCLINATION_ANGLE = QString::fromStdString(BornAgain::Inclination);
-const QString BeamItem::P_AZIMUTHAL_ANGLE = QString::fromStdString(BornAgain::Azimuth);
+const QString BeamItem::P_INTENSITY = QString::fromStdString("Intensity");
+const QString BeamItem::P_WAVELENGTH = QString::fromStdString("Wavelength");
+const QString BeamItem::P_INCLINATION_ANGLE = QString::fromStdString("InclinationAngle");
+const QString BeamItem::P_AZIMUTHAL_ANGLE = QString::fromStdString("AzimuthalAngle");
 const QString BeamItem::P_POLARIZATION = QString("Polarization");
 
 BeamItem::BeamItem(const QString& beam_model) : SessionItem(beam_model)
@@ -56,7 +55,7 @@ BeamItem::BeamItem(const QString& beam_model) : SessionItem(beam_model)
     addGroupProperty(P_AZIMUTHAL_ANGLE, Constants::BeamAzimuthalAngleType);
     addGroupProperty(P_POLARIZATION, Constants::VectorType)->setToolTip(polarization_tooltip);
 
-    addTranslator(VectorParameterTranslator(P_POLARIZATION, BornAgain::BlochVector));
+    addTranslator(VectorParameterTranslator(P_POLARIZATION, "BlochVector"));
 }
 
 BeamItem::~BeamItem() = default;
diff --git a/GUI/coregui/Models/Data1DViewItem.cpp b/GUI/coregui/Models/Data1DViewItem.cpp
index bb7e75d4d178cbab0568a0d72cabcb5159e4aad5..c00349f1c1e7b6bb75fa04cb43a1d3af02bb2e36 100644
--- a/GUI/coregui/Models/Data1DViewItem.cpp
+++ b/GUI/coregui/Models/Data1DViewItem.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/Data1DViewItem.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "GUI/coregui/Models/AxesItems.h"
 #include "GUI/coregui/Models/ComboProperty.h"
 #include "GUI/coregui/Models/DataItem.h"
@@ -134,8 +133,8 @@ void Data1DViewItem::setAxesRangeToData()
     if (!data)
         return;
 
-    setLowerX(data->getAxis(BornAgain::X_AXIS_INDEX).getMin());
-    setUpperX(data->getAxis(BornAgain::X_AXIS_INDEX).getMax());
+    setLowerX(data->getAxis(0).getMin());
+    setUpperX(data->getAxis(0).getMax());
 
     auto data_range = dataRange(data.get());
     setLowerY(data_range.first);
diff --git a/GUI/coregui/Models/DataItem.cpp b/GUI/coregui/Models/DataItem.cpp
index 7639fda0340ee1fe6742b32264e395a6bb8fe4c0..21beda32ec2b1af1fe58c3dacf25198dbb95f88e 100644
--- a/GUI/coregui/Models/DataItem.cpp
+++ b/GUI/coregui/Models/DataItem.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/DataItem.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/InputOutput/IntensityDataIOFactory.h"
 #include "GUI/coregui/Models/ComboProperty.h"
 #include "GUI/coregui/utils/GUIHelpers.h"
diff --git a/GUI/coregui/Models/DepthProbeInstrumentItem.cpp b/GUI/coregui/Models/DepthProbeInstrumentItem.cpp
index 2ce9bb315b68ea8135924b1e6c5e331bdbaaec19..22d35b86325f21da15771d0c80c12f7efee1c772 100644
--- a/GUI/coregui/Models/DepthProbeInstrumentItem.cpp
+++ b/GUI/coregui/Models/DepthProbeInstrumentItem.cpp
@@ -83,11 +83,11 @@ std::unique_ptr<DepthProbeSimulation> DepthProbeInstrumentItem::createSimulation
     simulation->setZSpan(depthAxis->size(), depthAxis->getMin(), depthAxis->getMax());
 
     TransformToDomain::setBeamDistribution(
-        BornAgain::Wavelength, beamItem()->item<BeamWavelengthItem>(SpecularBeamItem::P_WAVELENGTH),
+        "Wavelength", beamItem()->item<BeamWavelengthItem>(SpecularBeamItem::P_WAVELENGTH),
         *simulation.get());
 
     TransformToDomain::setBeamDistribution(
-        BornAgain::Inclination,
+        "InclinationAngle",
         beamItem()->item<SpecularBeamInclinationItem>(SpecularBeamItem::P_INCLINATION_ANGLE),
         *simulation.get());
 
diff --git a/GUI/coregui/Models/DetectorItems.cpp b/GUI/coregui/Models/DetectorItems.cpp
index 6fbba1a95688b7f1440bd6c44ccad024dd60efdc..8740b0664dc705c9188d870a44434f9c7e7f5b89 100644
--- a/GUI/coregui/Models/DetectorItems.cpp
+++ b/GUI/coregui/Models/DetectorItems.cpp
@@ -34,9 +34,9 @@ const QString analyzer_transmission_tooltip = "Total transmission of the polariz
 const QString DetectorItem::T_MASKS = "Masks";
 const QString DetectorItem::P_RESOLUTION_FUNCTION = "Resolution function";
 const QString DetectorItem::P_ANALYZER_DIRECTION = "Analyzer direction";
-const QString DetectorItem::P_ANALYZER_EFFICIENCY = QString::fromStdString(BornAgain::Efficiency);
+const QString DetectorItem::P_ANALYZER_EFFICIENCY = QString::fromStdString("Efficiency");
 const QString DetectorItem::P_ANALYZER_TOTAL_TRANSMISSION =
-    QString::fromStdString(BornAgain::Transmission);
+    QString::fromStdString("Transmission");
 
 DetectorItem::DetectorItem(const QString& modelType) : SessionItem(modelType)
 {
@@ -50,9 +50,9 @@ DetectorItem::DetectorItem(const QString& modelType) : SessionItem(modelType)
         .setToolTip(analyzer_efficiency_tooltip);
     addProperty(P_ANALYZER_TOTAL_TRANSMISSION, 1.0)->setToolTip(analyzer_transmission_tooltip);
 
-    QString additional_name = QString::fromStdString(BornAgain::DetectorAnalyzer);
+    QString additional_name = QString::fromStdString("Analyzer");
     addTranslator(
-        VectorParameterTranslator(P_ANALYZER_DIRECTION, BornAgain::Direction, {additional_name}));
+        VectorParameterTranslator(P_ANALYZER_DIRECTION, "Direction", {additional_name}));
     addTranslator(AddElementTranslator(P_ANALYZER_EFFICIENCY, additional_name));
     addTranslator(AddElementTranslator(P_ANALYZER_TOTAL_TRANSMISSION, additional_name));
 
diff --git a/GUI/coregui/Models/DistributionItems.cpp b/GUI/coregui/Models/DistributionItems.cpp
index 60c5bc1bff3ceaffd98a873defa2fd640e522fa9..899a3a427e1f127e5b7398a938aa3e3b7ff7bbc9 100644
--- a/GUI/coregui/Models/DistributionItems.cpp
+++ b/GUI/coregui/Models/DistributionItems.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/DistributionItems.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/Distributions.h"
 #include "Core/Parametrization/RangedDistributions.h"
 #include "GUI/coregui/Models/RealLimitsItems.h"
@@ -91,7 +90,7 @@ void DistributionItem::register_limits()
 
 // --------------------------------------------------------------------------------------------- //
 
-const QString SymmetricDistributionItem::P_MEAN = QString::fromStdString(BornAgain::Mean);
+const QString SymmetricDistributionItem::P_MEAN = QString::fromStdString("Mean");
 
 SymmetricDistributionItem::SymmetricDistributionItem(const QString& name) : DistributionItem(name)
 {
@@ -134,8 +133,8 @@ void DistributionNoneItem::init_distribution(double value)
 
 // --------------------------------------------------------------------------------------------- //
 
-const QString DistributionGateItem::P_MIN = QString::fromStdString(BornAgain::Minimum);
-const QString DistributionGateItem::P_MAX = QString::fromStdString(BornAgain::Maximum);
+const QString DistributionGateItem::P_MIN = QString::fromStdString("Min");
+const QString DistributionGateItem::P_MAX = QString::fromStdString("Max");
 
 DistributionGateItem::DistributionGateItem() : DistributionItem(Constants::DistributionGateType)
 {
@@ -164,7 +163,7 @@ void DistributionGateItem::init_distribution(double value)
 
 // --------------------------------------------------------------------------------------------- //
 
-const QString DistributionLorentzItem::P_HWHM = QString::fromStdString(BornAgain::HWHM);
+const QString DistributionLorentzItem::P_HWHM = QString::fromStdString("HWHM");
 
 DistributionLorentzItem::DistributionLorentzItem()
     : SymmetricDistributionItem(Constants::DistributionLorentzType)
@@ -207,7 +206,7 @@ void DistributionLorentzItem::init_distribution(double value)
 
 // --------------------------------------------------------------------------------------------- //
 
-const QString DistributionGaussianItem::P_STD_DEV = QString::fromStdString(BornAgain::StdDeviation);
+const QString DistributionGaussianItem::P_STD_DEV = QString::fromStdString("StdDev");
 
 DistributionGaussianItem::DistributionGaussianItem()
     : SymmetricDistributionItem(Constants::DistributionGaussianType)
@@ -250,9 +249,9 @@ void DistributionGaussianItem::init_distribution(double value)
 
 // --------------------------------------------------------------------------------------------- //
 
-const QString DistributionLogNormalItem::P_MEDIAN = QString::fromStdString(BornAgain::Median);
+const QString DistributionLogNormalItem::P_MEDIAN = QString::fromStdString("Median");
 const QString DistributionLogNormalItem::P_SCALE_PAR =
-    QString::fromStdString(BornAgain::ScaleParameter);
+    QString::fromStdString("ScaleParameter");
 
 DistributionLogNormalItem::DistributionLogNormalItem()
     : DistributionItem(Constants::DistributionLogNormalType)
@@ -289,7 +288,7 @@ void DistributionLogNormalItem::showMean(bool flag)
 
 // --------------------------------------------------------------------------------------------- //
 
-const QString DistributionCosineItem::P_SIGMA = QString::fromStdString(BornAgain::Sigma);
+const QString DistributionCosineItem::P_SIGMA = QString::fromStdString("Sigma");
 
 DistributionCosineItem::DistributionCosineItem()
     : SymmetricDistributionItem(Constants::DistributionCosineType)
@@ -332,12 +331,12 @@ void DistributionCosineItem::init_distribution(double value)
 
 // --------------------------------------------------------------------------------------------- //
 
-const QString DistributionTrapezoidItem::P_CENTER = QString::fromStdString(BornAgain::Center);
-const QString DistributionTrapezoidItem::P_LEFTWIDTH = QString::fromStdString(BornAgain::LeftWidth);
+const QString DistributionTrapezoidItem::P_CENTER = QString::fromStdString("Center");
+const QString DistributionTrapezoidItem::P_LEFTWIDTH = QString::fromStdString("LeftWidth");
 const QString DistributionTrapezoidItem::P_MIDDLEWIDTH =
-    QString::fromStdString(BornAgain::MiddleWidth);
+    QString::fromStdString("MiddleWidth");
 const QString DistributionTrapezoidItem::P_RIGHTWIDTH =
-    QString::fromStdString(BornAgain::RightWidth);
+    QString::fromStdString("RightWidth");
 
 DistributionTrapezoidItem::DistributionTrapezoidItem()
     : DistributionItem(Constants::DistributionTrapezoidType)
diff --git a/GUI/coregui/Models/FTDecayFunctionItems.cpp b/GUI/coregui/Models/FTDecayFunctionItems.cpp
index 395b07eed5f65d8e1d6a25586addb7cd2307a817..48a323e78558eaae610795ecf69e983b65427b37 100644
--- a/GUI/coregui/Models/FTDecayFunctionItems.cpp
+++ b/GUI/coregui/Models/FTDecayFunctionItems.cpp
@@ -13,13 +13,12 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/FTDecayFunctionItems.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/Units.h"
 
 // --------------------------------------------------------------------------------------------- //
 
 const QString FTDecayFunction1DItem::P_DECAY_LENGTH =
-    QString::fromStdString(BornAgain::DecayLength);
+    QString::fromStdString("DecayLength");
 
 FTDecayFunction1DItem::FTDecayFunction1DItem(const QString& name) : SessionItem(name) {}
 
@@ -73,7 +72,7 @@ std::unique_ptr<IFTDecayFunction1D> FTDecayFunction1DTriangleItem::createFTDecay
 
 // --------------------------------------------------------------------------------------------- //
 
-const QString FTDecayFunction1DVoigtItem::P_ETA = QString::fromStdString(BornAgain::Eta);
+const QString FTDecayFunction1DVoigtItem::P_ETA = QString::fromStdString("Eta");
 
 FTDecayFunction1DVoigtItem::FTDecayFunction1DVoigtItem()
     : FTDecayFunction1DItem(Constants::FTDecayFunction1DVoigtType)
@@ -95,11 +94,11 @@ std::unique_ptr<IFTDecayFunction1D> FTDecayFunction1DVoigtItem::createFTDecayFun
 // --------------------------------------------------------------------------------------------- //
 
 const QString FTDecayFunction2DItem::P_DECAY_LENGTH_X =
-    QString::fromStdString(BornAgain::DecayLengthX);
+    QString::fromStdString("DecayLengthX");
 const QString FTDecayFunction2DItem::P_DECAY_LENGTH_Y =
-    QString::fromStdString(BornAgain::DecayLengthY);
-const QString FTDecayFunction2DItem::P_GAMMA = QString::fromStdString(BornAgain::Gamma);
-const QString FTDecayFunction2DItem::P_DELTA = QString::fromStdString(BornAgain::Delta);
+    QString::fromStdString("DecayLengthY");
+const QString FTDecayFunction2DItem::P_GAMMA = QString::fromStdString("Gamma");
+const QString FTDecayFunction2DItem::P_DELTA = QString::fromStdString("Delta");
 
 FTDecayFunction2DItem::FTDecayFunction2DItem(const QString& name) : SessionItem(name) {}
 
@@ -157,7 +156,7 @@ std::unique_ptr<IFTDecayFunction2D> FTDecayFunction2DGaussItem::createFTDecayFun
 
 // --------------------------------------------------------------------------------------------- //
 
-const QString FTDecayFunction2DVoigtItem::P_ETA = QString::fromStdString(BornAgain::Eta);
+const QString FTDecayFunction2DVoigtItem::P_ETA = QString::fromStdString("Eta");
 
 FTDecayFunction2DVoigtItem::FTDecayFunction2DVoigtItem()
     : FTDecayFunction2DItem(Constants::FTDecayFunction2DVoigtType)
diff --git a/GUI/coregui/Models/FTDistributionItems.cpp b/GUI/coregui/Models/FTDistributionItems.cpp
index 176ce5cde7306c2613feedbfa788b48cb11b7085..24bd25ed225770072b8ef57b8952a1d9c03faf16 100644
--- a/GUI/coregui/Models/FTDistributionItems.cpp
+++ b/GUI/coregui/Models/FTDistributionItems.cpp
@@ -13,10 +13,9 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/FTDistributionItems.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/Units.h"
 
-const QString FTDistribution1DItem::P_OMEGA = QString::fromStdString(BornAgain::Omega);
+const QString FTDistribution1DItem::P_OMEGA = QString::fromStdString("Omega");
 
 FTDistribution1DItem::FTDistribution1DItem(const QString& name) : SessionItem(name) {}
 
@@ -98,7 +97,7 @@ std::unique_ptr<IFTDistribution1D> FTDistribution1DCosineItem::createFTDistribut
 
 // --------------------------------------------------------------------------------------------- //
 
-const QString FTDistribution1DVoigtItem::P_ETA = QString::fromStdString(BornAgain::Eta);
+const QString FTDistribution1DVoigtItem::P_ETA = QString::fromStdString("Eta");
 
 FTDistribution1DVoigtItem::FTDistribution1DVoigtItem()
     : FTDistribution1DItem(Constants::FTDistribution1DVoigtType)
@@ -119,9 +118,9 @@ std::unique_ptr<IFTDistribution1D> FTDistribution1DVoigtItem::createFTDistributi
 
 // --------------------------------------------------------------------------------------------- //
 
-const QString FTDistribution2DItem::P_OMEGA_X = QString::fromStdString(BornAgain::OmegaX);
-const QString FTDistribution2DItem::P_OMEGA_Y = QString::fromStdString(BornAgain::OmegaY);
-const QString FTDistribution2DItem::P_GAMMA = QString::fromStdString(BornAgain::Gamma);
+const QString FTDistribution2DItem::P_OMEGA_X = QString::fromStdString("OmegaX");
+const QString FTDistribution2DItem::P_OMEGA_Y = QString::fromStdString("OmegaY");
+const QString FTDistribution2DItem::P_GAMMA = QString::fromStdString("Gamma");
 
 FTDistribution2DItem::FTDistribution2DItem(const QString& name) : SessionItem(name) {}
 
@@ -215,7 +214,7 @@ std::unique_ptr<IFTDistribution2D> FTDistribution2DConeItem::createFTDistributio
 
 // --------------------------------------------------------------------------------------------- //
 
-const QString FTDistribution2DVoigtItem::P_ETA = QString::fromStdString(BornAgain::Eta);
+const QString FTDistribution2DVoigtItem::P_ETA = QString::fromStdString("Eta");
 
 FTDistribution2DVoigtItem::FTDistribution2DVoigtItem()
     : FTDistribution2DItem(Constants::FTDistribution2DVoigtType)
diff --git a/GUI/coregui/Models/FootprintItems.cpp b/GUI/coregui/Models/FootprintItems.cpp
index 3c08f702e26c2ba6b692fd63622800625a738c63..e04c68db3ec0628a874d82b1f5a10ecbc3979e4f 100644
--- a/GUI/coregui/Models/FootprintItems.cpp
+++ b/GUI/coregui/Models/FootprintItems.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/FootprintItems.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Beam/FootprintFactorGaussian.h"
 #include "Core/Beam/FootprintFactorSquare.h"
 #include "GUI/coregui/Models/item_constants.h"
diff --git a/GUI/coregui/Models/FormFactorItems.cpp b/GUI/coregui/Models/FormFactorItems.cpp
index ca7f3d1d4a5e24b39cbe0eeddf0efd72e0011c19..b5ae0f75504e688a5a0b05b2ee50cedd365e43a5 100644
--- a/GUI/coregui/Models/FormFactorItems.cpp
+++ b/GUI/coregui/Models/FormFactorItems.cpp
@@ -13,16 +13,15 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/FormFactorItems.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/Units.h"
 #include "Core/includeIncludes/FormFactors.h"
 
 /* ------------------------------------------------ */
 
-const QString AnisoPyramidItem::P_LENGTH = QString::fromStdString(BornAgain::Length);
-const QString AnisoPyramidItem::P_WIDTH = QString::fromStdString(BornAgain::Width);
-const QString AnisoPyramidItem::P_HEIGHT = QString::fromStdString(BornAgain::Height);
-const QString AnisoPyramidItem::P_ALPHA = QString::fromStdString(BornAgain::Alpha);
+const QString AnisoPyramidItem::P_LENGTH = QString::fromStdString("Length");
+const QString AnisoPyramidItem::P_WIDTH = QString::fromStdString("Width");
+const QString AnisoPyramidItem::P_HEIGHT = QString::fromStdString("Height");
+const QString AnisoPyramidItem::P_ALPHA = QString::fromStdString("Alpha");
 
 AnisoPyramidItem::AnisoPyramidItem() : FormFactorItem(Constants::AnisoPyramidType)
 {
@@ -45,9 +44,9 @@ std::unique_ptr<IFormFactor> AnisoPyramidItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString BarGaussItem::P_LENGTH = QString::fromStdString(BornAgain::Length);
-const QString BarGaussItem::P_WIDTH = QString::fromStdString(BornAgain::Width);
-const QString BarGaussItem::P_HEIGHT = QString::fromStdString(BornAgain::Height);
+const QString BarGaussItem::P_LENGTH = QString::fromStdString("Length");
+const QString BarGaussItem::P_WIDTH = QString::fromStdString("Width");
+const QString BarGaussItem::P_HEIGHT = QString::fromStdString("Height");
 
 BarGaussItem::BarGaussItem() : FormFactorItem(Constants::BarGaussType)
 {
@@ -66,9 +65,9 @@ std::unique_ptr<IFormFactor> BarGaussItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString BarLorentzItem::P_LENGTH = QString::fromStdString(BornAgain::Length);
-const QString BarLorentzItem::P_WIDTH = QString::fromStdString(BornAgain::Width);
-const QString BarLorentzItem::P_HEIGHT = QString::fromStdString(BornAgain::Height);
+const QString BarLorentzItem::P_LENGTH = QString::fromStdString("Length");
+const QString BarLorentzItem::P_WIDTH = QString::fromStdString("Width");
+const QString BarLorentzItem::P_HEIGHT = QString::fromStdString("Height");
 
 BarLorentzItem::BarLorentzItem() : FormFactorItem(Constants::BarLorentzType)
 {
@@ -87,9 +86,9 @@ std::unique_ptr<IFormFactor> BarLorentzItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString BoxItem::P_LENGTH = QString::fromStdString(BornAgain::Length);
-const QString BoxItem::P_WIDTH = QString::fromStdString(BornAgain::Width);
-const QString BoxItem::P_HEIGHT = QString::fromStdString(BornAgain::Height);
+const QString BoxItem::P_LENGTH = QString::fromStdString("Length");
+const QString BoxItem::P_WIDTH = QString::fromStdString("Width");
+const QString BoxItem::P_HEIGHT = QString::fromStdString("Height");
 
 BoxItem::BoxItem() : FormFactorItem(Constants::BoxType)
 {
@@ -108,9 +107,9 @@ std::unique_ptr<IFormFactor> BoxItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString ConeItem::P_RADIUS = QString::fromStdString(BornAgain::Radius);
-const QString ConeItem::P_HEIGHT = QString::fromStdString(BornAgain::Height);
-const QString ConeItem::P_ALPHA = QString::fromStdString(BornAgain::Alpha);
+const QString ConeItem::P_RADIUS = QString::fromStdString("Radius");
+const QString ConeItem::P_HEIGHT = QString::fromStdString("Height");
+const QString ConeItem::P_ALPHA = QString::fromStdString("Alpha");
 
 ConeItem::ConeItem() : FormFactorItem(Constants::ConeType)
 {
@@ -130,9 +129,9 @@ std::unique_ptr<IFormFactor> ConeItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString Cone6Item::P_BASEEDGE = QString::fromStdString(BornAgain::BaseEdge);
-const QString Cone6Item::P_HEIGHT = QString::fromStdString(BornAgain::Height);
-const QString Cone6Item::P_ALPHA = QString::fromStdString(BornAgain::Alpha);
+const QString Cone6Item::P_BASEEDGE = QString::fromStdString("BaseEdge");
+const QString Cone6Item::P_HEIGHT = QString::fromStdString("Height");
+const QString Cone6Item::P_ALPHA = QString::fromStdString("Alpha");
 
 Cone6Item::Cone6Item() : FormFactorItem(Constants::Cone6Type)
 {
@@ -154,10 +153,10 @@ std::unique_ptr<IFormFactor> Cone6Item::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString CuboctahedronItem::P_LENGTH = QString::fromStdString(BornAgain::Length);
-const QString CuboctahedronItem::P_HEIGHT = QString::fromStdString(BornAgain::Height);
-const QString CuboctahedronItem::P_HEIGHT_RATIO = QString::fromStdString(BornAgain::HeightRatio);
-const QString CuboctahedronItem::P_ALPHA = QString::fromStdString(BornAgain::Alpha);
+const QString CuboctahedronItem::P_LENGTH = QString::fromStdString("Length");
+const QString CuboctahedronItem::P_HEIGHT = QString::fromStdString("Height");
+const QString CuboctahedronItem::P_HEIGHT_RATIO = QString::fromStdString("HeightRatio");
+const QString CuboctahedronItem::P_ALPHA = QString::fromStdString("Alpha");
 
 CuboctahedronItem::CuboctahedronItem() : FormFactorItem(Constants::CuboctahedronType)
 {
@@ -183,8 +182,8 @@ std::unique_ptr<IFormFactor> CuboctahedronItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString CylinderItem::P_RADIUS = QString::fromStdString(BornAgain::Radius);
-const QString CylinderItem::P_HEIGHT = QString::fromStdString(BornAgain::Height);
+const QString CylinderItem::P_RADIUS = QString::fromStdString("Radius");
+const QString CylinderItem::P_HEIGHT = QString::fromStdString("Height");
 
 CylinderItem::CylinderItem() : FormFactorItem(Constants::CylinderType)
 {
@@ -202,7 +201,7 @@ std::unique_ptr<IFormFactor> CylinderItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString DodecahedronItem::P_EDGE = QString::fromStdString(BornAgain::Edge);
+const QString DodecahedronItem::P_EDGE = QString::fromStdString("Edge");
 
 DodecahedronItem::DodecahedronItem() : FormFactorItem(Constants::DodecahedronType)
 {
@@ -217,7 +216,7 @@ std::unique_ptr<IFormFactor> DodecahedronItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString DotItem::P_RADIUS = QString::fromStdString(BornAgain::Radius);
+const QString DotItem::P_RADIUS = QString::fromStdString("Radius");
 
 DotItem::DotItem() : FormFactorItem(Constants::DotType)
 {
@@ -233,9 +232,9 @@ std::unique_ptr<IFormFactor> DotItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString EllipsoidalCylinderItem::P_RADIUS_X = QString::fromStdString(BornAgain::RadiusX);
-const QString EllipsoidalCylinderItem::P_RADIUS_Y = QString::fromStdString(BornAgain::RadiusY);
-const QString EllipsoidalCylinderItem::P_HEIGHT = QString::fromStdString(BornAgain::Height);
+const QString EllipsoidalCylinderItem::P_RADIUS_X = QString::fromStdString("RadiusX");
+const QString EllipsoidalCylinderItem::P_RADIUS_Y = QString::fromStdString("RadiusY");
+const QString EllipsoidalCylinderItem::P_HEIGHT = QString::fromStdString("Height");
 
 EllipsoidalCylinderItem::EllipsoidalCylinderItem()
     : FormFactorItem(Constants::EllipsoidalCylinderType)
@@ -260,7 +259,7 @@ std::unique_ptr<IFormFactor> EllipsoidalCylinderItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString FullSphereItem::P_RADIUS = QString::fromStdString(BornAgain::Radius);
+const QString FullSphereItem::P_RADIUS = QString::fromStdString("Radius");
 
 FullSphereItem::FullSphereItem() : FormFactorItem(Constants::FullSphereType)
 {
@@ -275,8 +274,8 @@ std::unique_ptr<IFormFactor> FullSphereItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString FullSpheroidItem::P_RADIUS = QString::fromStdString(BornAgain::Radius);
-const QString FullSpheroidItem::P_HEIGHT = QString::fromStdString(BornAgain::Height);
+const QString FullSpheroidItem::P_RADIUS = QString::fromStdString("Radius");
+const QString FullSpheroidItem::P_HEIGHT = QString::fromStdString("Height");
 
 FullSpheroidItem::FullSpheroidItem() : FormFactorItem(Constants::FullSpheroidType)
 {
@@ -296,9 +295,9 @@ std::unique_ptr<IFormFactor> FullSpheroidItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString HemiEllipsoidItem::P_RADIUS_X = QString::fromStdString(BornAgain::RadiusX);
-const QString HemiEllipsoidItem::P_RADIUS_Y = QString::fromStdString(BornAgain::RadiusY);
-const QString HemiEllipsoidItem::P_HEIGHT = QString::fromStdString(BornAgain::Height);
+const QString HemiEllipsoidItem::P_RADIUS_X = QString::fromStdString("RadiusX");
+const QString HemiEllipsoidItem::P_RADIUS_Y = QString::fromStdString("RadiusY");
+const QString HemiEllipsoidItem::P_HEIGHT = QString::fromStdString("Height");
 
 HemiEllipsoidItem::HemiEllipsoidItem() : FormFactorItem(Constants::HemiEllipsoidType)
 {
@@ -323,7 +322,7 @@ std::unique_ptr<IFormFactor> HemiEllipsoidItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString IcosahedronItem::P_EDGE = QString::fromStdString(BornAgain::Edge);
+const QString IcosahedronItem::P_EDGE = QString::fromStdString("Edge");
 
 IcosahedronItem::IcosahedronItem() : FormFactorItem(Constants::IcosahedronType)
 {
@@ -338,8 +337,8 @@ std::unique_ptr<IFormFactor> IcosahedronItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString Prism3Item::P_BASEEDGE = QString::fromStdString(BornAgain::BaseEdge);
-const QString Prism3Item::P_HEIGHT = QString::fromStdString(BornAgain::Height);
+const QString Prism3Item::P_BASEEDGE = QString::fromStdString("BaseEdge");
+const QString Prism3Item::P_HEIGHT = QString::fromStdString("Height");
 
 Prism3Item::Prism3Item() : FormFactorItem(Constants::Prism3Type)
 {
@@ -357,8 +356,8 @@ std::unique_ptr<IFormFactor> Prism3Item::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString Prism6Item::P_BASEEDGE = QString::fromStdString(BornAgain::BaseEdge);
-const QString Prism6Item::P_HEIGHT = QString::fromStdString(BornAgain::Height);
+const QString Prism6Item::P_BASEEDGE = QString::fromStdString("BaseEdge");
+const QString Prism6Item::P_HEIGHT = QString::fromStdString("Height");
 
 Prism6Item::Prism6Item() : FormFactorItem(Constants::Prism6Type)
 {
@@ -376,9 +375,9 @@ std::unique_ptr<IFormFactor> Prism6Item::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString PyramidItem::P_BASEEDGE = QString::fromStdString(BornAgain::BaseEdge);
-const QString PyramidItem::P_HEIGHT = QString::fromStdString(BornAgain::Height);
-const QString PyramidItem::P_ALPHA = QString::fromStdString(BornAgain::Alpha);
+const QString PyramidItem::P_BASEEDGE = QString::fromStdString("BaseEdge");
+const QString PyramidItem::P_HEIGHT = QString::fromStdString("Height");
+const QString PyramidItem::P_ALPHA = QString::fromStdString("Alpha");
 
 PyramidItem::PyramidItem() : FormFactorItem(Constants::PyramidType)
 {
@@ -399,9 +398,9 @@ std::unique_ptr<IFormFactor> PyramidItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString Ripple1BoxItem::P_LENGTH = QString::fromStdString(BornAgain::Length);
-const QString Ripple1BoxItem::P_WIDTH = QString::fromStdString(BornAgain::Width);
-const QString Ripple1BoxItem::P_HEIGHT = QString::fromStdString(BornAgain::Height);
+const QString Ripple1BoxItem::P_LENGTH = QString::fromStdString("Length");
+const QString Ripple1BoxItem::P_WIDTH = QString::fromStdString("Width");
+const QString Ripple1BoxItem::P_HEIGHT = QString::fromStdString("Height");
 
 Ripple1BoxItem::Ripple1BoxItem() : FormFactorItem(Constants::Ripple1BoxType)
 {
@@ -422,9 +421,9 @@ std::unique_ptr<IFormFactor> Ripple1BoxItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString Ripple1GaussItem::P_LENGTH = QString::fromStdString(BornAgain::Length);
-const QString Ripple1GaussItem::P_WIDTH = QString::fromStdString(BornAgain::Width);
-const QString Ripple1GaussItem::P_HEIGHT = QString::fromStdString(BornAgain::Height);
+const QString Ripple1GaussItem::P_LENGTH = QString::fromStdString("Length");
+const QString Ripple1GaussItem::P_WIDTH = QString::fromStdString("Width");
+const QString Ripple1GaussItem::P_HEIGHT = QString::fromStdString("Height");
 
 Ripple1GaussItem::Ripple1GaussItem() : FormFactorItem(Constants::Ripple1GaussType)
 {
@@ -445,9 +444,9 @@ std::unique_ptr<IFormFactor> Ripple1GaussItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString Ripple1LorentzItem::P_LENGTH = QString::fromStdString(BornAgain::Length);
-const QString Ripple1LorentzItem::P_WIDTH = QString::fromStdString(BornAgain::Width);
-const QString Ripple1LorentzItem::P_HEIGHT = QString::fromStdString(BornAgain::Height);
+const QString Ripple1LorentzItem::P_LENGTH = QString::fromStdString("Length");
+const QString Ripple1LorentzItem::P_WIDTH = QString::fromStdString("Width");
+const QString Ripple1LorentzItem::P_HEIGHT = QString::fromStdString("Height");
 
 Ripple1LorentzItem::Ripple1LorentzItem() : FormFactorItem(Constants::Ripple1LorentzType)
 {
@@ -468,10 +467,10 @@ std::unique_ptr<IFormFactor> Ripple1LorentzItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString Ripple2BoxItem::P_LENGTH = QString::fromStdString(BornAgain::Length);
-const QString Ripple2BoxItem::P_WIDTH = QString::fromStdString(BornAgain::Width);
-const QString Ripple2BoxItem::P_HEIGHT = QString::fromStdString(BornAgain::Height);
-const QString Ripple2BoxItem::P_ASYMMETRY = QString::fromStdString(BornAgain::AsymmetryLength);
+const QString Ripple2BoxItem::P_LENGTH = QString::fromStdString("Length");
+const QString Ripple2BoxItem::P_WIDTH = QString::fromStdString("Width");
+const QString Ripple2BoxItem::P_HEIGHT = QString::fromStdString("Height");
+const QString Ripple2BoxItem::P_ASYMMETRY = QString::fromStdString("AsymmetryLength");
 
 Ripple2BoxItem::Ripple2BoxItem() : FormFactorItem(Constants::Ripple2BoxType)
 {
@@ -495,10 +494,10 @@ std::unique_ptr<IFormFactor> Ripple2BoxItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString Ripple2GaussItem::P_LENGTH = QString::fromStdString(BornAgain::Length);
-const QString Ripple2GaussItem::P_WIDTH = QString::fromStdString(BornAgain::Width);
-const QString Ripple2GaussItem::P_HEIGHT = QString::fromStdString(BornAgain::Height);
-const QString Ripple2GaussItem::P_ASYMMETRY = QString::fromStdString(BornAgain::AsymmetryLength);
+const QString Ripple2GaussItem::P_LENGTH = QString::fromStdString("Length");
+const QString Ripple2GaussItem::P_WIDTH = QString::fromStdString("Width");
+const QString Ripple2GaussItem::P_HEIGHT = QString::fromStdString("Height");
+const QString Ripple2GaussItem::P_ASYMMETRY = QString::fromStdString("AsymmetryLength");
 
 Ripple2GaussItem::Ripple2GaussItem() : FormFactorItem(Constants::Ripple2GaussType)
 {
@@ -522,10 +521,10 @@ std::unique_ptr<IFormFactor> Ripple2GaussItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString Ripple2LorentzItem::P_LENGTH = QString::fromStdString(BornAgain::Length);
-const QString Ripple2LorentzItem::P_WIDTH = QString::fromStdString(BornAgain::Width);
-const QString Ripple2LorentzItem::P_HEIGHT = QString::fromStdString(BornAgain::Height);
-const QString Ripple2LorentzItem::P_ASYMMETRY = QString::fromStdString(BornAgain::AsymmetryLength);
+const QString Ripple2LorentzItem::P_LENGTH = QString::fromStdString("Length");
+const QString Ripple2LorentzItem::P_WIDTH = QString::fromStdString("Width");
+const QString Ripple2LorentzItem::P_HEIGHT = QString::fromStdString("Height");
+const QString Ripple2LorentzItem::P_ASYMMETRY = QString::fromStdString("AsymmetryLength");
 
 Ripple2LorentzItem::Ripple2LorentzItem() : FormFactorItem(Constants::Ripple2LorentzType)
 {
@@ -549,9 +548,9 @@ std::unique_ptr<IFormFactor> Ripple2LorentzItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString TetrahedronItem::P_BASEEDGE = QString::fromStdString(BornAgain::BaseEdge);
-const QString TetrahedronItem::P_HEIGHT = QString::fromStdString(BornAgain::Height);
-const QString TetrahedronItem::P_ALPHA = QString::fromStdString(BornAgain::Alpha);
+const QString TetrahedronItem::P_BASEEDGE = QString::fromStdString("BaseEdge");
+const QString TetrahedronItem::P_HEIGHT = QString::fromStdString("Height");
+const QString TetrahedronItem::P_ALPHA = QString::fromStdString("Alpha");
 
 TetrahedronItem::TetrahedronItem() : FormFactorItem(Constants::TetrahedronType)
 {
@@ -574,9 +573,9 @@ std::unique_ptr<IFormFactor> TetrahedronItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString TruncatedCubeItem::P_LENGTH = QString::fromStdString(BornAgain::Length);
+const QString TruncatedCubeItem::P_LENGTH = QString::fromStdString("Length");
 const QString TruncatedCubeItem::P_REMOVED_LENGTH =
-    QString::fromStdString(BornAgain::RemovedLength);
+    QString::fromStdString("RemovedLength");
 
 TruncatedCubeItem::TruncatedCubeItem() : FormFactorItem(Constants::TruncatedCubeType)
 {
@@ -595,9 +594,9 @@ std::unique_ptr<IFormFactor> TruncatedCubeItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString TruncatedSphereItem::P_RADIUS = QString::fromStdString(BornAgain::Radius);
-const QString TruncatedSphereItem::P_HEIGHT = QString::fromStdString(BornAgain::Height);
-const QString TruncatedSphereItem::P_REMOVED_TOP = QString::fromStdString(BornAgain::DeltaHeight);
+const QString TruncatedSphereItem::P_RADIUS = QString::fromStdString("Radius");
+const QString TruncatedSphereItem::P_HEIGHT = QString::fromStdString("Height");
+const QString TruncatedSphereItem::P_REMOVED_TOP = QString::fromStdString("DeltaHeight");
 
 TruncatedSphereItem::TruncatedSphereItem() : FormFactorItem(Constants::TruncatedSphereType)
 {
@@ -619,10 +618,10 @@ std::unique_ptr<IFormFactor> TruncatedSphereItem::createFormFactor() const
 
 /* ------------------------------------------------ */
 
-const QString TruncatedSpheroidItem::P_RADIUS = QString::fromStdString(BornAgain::Radius);
-const QString TruncatedSpheroidItem::P_HEIGHT = QString::fromStdString(BornAgain::Height);
-const QString TruncatedSpheroidItem::P_HFC = QString::fromStdString(BornAgain::HeightFlattening);
-const QString TruncatedSpheroidItem::P_REMOVED_TOP = QString::fromStdString(BornAgain::DeltaHeight);
+const QString TruncatedSpheroidItem::P_RADIUS = QString::fromStdString("Radius");
+const QString TruncatedSpheroidItem::P_HEIGHT = QString::fromStdString("Height");
+const QString TruncatedSpheroidItem::P_HFC = QString::fromStdString("HeightFlattening");
+const QString TruncatedSpheroidItem::P_REMOVED_TOP = QString::fromStdString("DeltaHeight");
 
 TruncatedSpheroidItem::TruncatedSpheroidItem() : FormFactorItem(Constants::TruncatedSpheroidType)
 {
diff --git a/GUI/coregui/Models/IntensityDataItem.cpp b/GUI/coregui/Models/IntensityDataItem.cpp
index 704db73cbb30be0539def36c030953f9233ac915..aee41e7535c321744912e45c54e561c13c441281 100644
--- a/GUI/coregui/Models/IntensityDataItem.cpp
+++ b/GUI/coregui/Models/IntensityDataItem.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/IntensityDataItem.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "GUI/coregui/Models/AxesItems.h"
 #include "GUI/coregui/Models/ComboProperty.h"
 #include "GUI/coregui/Models/JobItemUtils.h"
@@ -115,13 +114,13 @@ double IntensityDataItem::getUpperX() const
 double IntensityDataItem::getXmin() const
 {
     const double defaultXmin(0.0);
-    return m_data ? m_data->getAxis(BornAgain::X_AXIS_INDEX).getMin() : defaultXmin;
+    return m_data ? m_data->getAxis(0).getMin() : defaultXmin;
 }
 
 double IntensityDataItem::getXmax() const
 {
     const double defaultXmax(1.0);
-    return m_data ? m_data->getAxis(BornAgain::X_AXIS_INDEX).getMax() : defaultXmax;
+    return m_data ? m_data->getAxis(0).getMax() : defaultXmax;
 }
 
 double IntensityDataItem::getLowerY() const
@@ -137,13 +136,13 @@ double IntensityDataItem::getUpperY() const
 double IntensityDataItem::getYmin() const
 {
     const double defaultYmin(0.0);
-    return m_data ? m_data->getAxis(BornAgain::Y_AXIS_INDEX).getMin() : defaultYmin;
+    return m_data ? m_data->getAxis(1).getMin() : defaultYmin;
 }
 
 double IntensityDataItem::getYmax() const
 {
     const double defaultYmax(1.0);
-    return m_data ? m_data->getAxis(BornAgain::Y_AXIS_INDEX).getMax() : defaultYmax;
+    return m_data ? m_data->getAxis(1).getMax() : defaultYmax;
 }
 
 double IntensityDataItem::getLowerZ() const
@@ -307,9 +306,9 @@ void IntensityDataItem::updateAxesZoomLevel()
         setUpperY(getYmax());
     }
 
-    const int nx = static_cast<int>(m_data->getAxis(BornAgain::X_AXIS_INDEX).size());
+    const int nx = static_cast<int>(m_data->getAxis(0).size());
     xAxisItem()->setItemValue(BasicAxisItem::P_NBINS, nx);
-    const int ny = static_cast<int>(m_data->getAxis(BornAgain::Y_AXIS_INDEX).size());
+    const int ny = static_cast<int>(m_data->getAxis(1).size());
     yAxisItem()->setItemValue(BasicAxisItem::P_NBINS, ny);
 }
 
@@ -318,10 +317,10 @@ void IntensityDataItem::updateAxesZoomLevel()
 void IntensityDataItem::updateAxesLabels()
 {
     if (getXaxisTitle().isEmpty())
-        setXaxisTitle(QString::fromStdString(m_data->getAxis(BornAgain::X_AXIS_INDEX).getName()));
+        setXaxisTitle(QString::fromStdString(m_data->getAxis(0).getName()));
 
     if (getYaxisTitle().isEmpty())
-        setYaxisTitle(QString::fromStdString(m_data->getAxis(BornAgain::Y_AXIS_INDEX).getName()));
+        setYaxisTitle(QString::fromStdString(m_data->getAxis(1).getName()));
 }
 
 //! Sets min,max values for z-axis, if axes is not locked, and ranges are not yet set.
diff --git a/GUI/coregui/Models/InterferenceFunctionItems.cpp b/GUI/coregui/Models/InterferenceFunctionItems.cpp
index 90e0454aec7cbdc0bf8d60e17545cafddd786731..8469cb6e2a2828848ffc56e564aa28d08357aae7 100644
--- a/GUI/coregui/Models/InterferenceFunctionItems.cpp
+++ b/GUI/coregui/Models/InterferenceFunctionItems.cpp
@@ -15,7 +15,6 @@
 #include "GUI/coregui/Models/InterferenceFunctionItems.h"
 #include "Core/Aggregate/FTDecayFunctions.h"
 #include "Core/Aggregate/FTDistributions2D.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/Units.h"
 #include "Core/includeIncludes/InterferenceFunctions.h"
 #include "GUI/coregui/Models/FTDecayFunctionItems.h"
@@ -34,7 +33,7 @@ const QString decay_function_tag = "Decay Function";
 // InterferenceFunction2DLatticeItem::P_DECAY_FUNCTION rely on same constant
 
 const QString InterferenceFunctionItem::P_POSITION_VARIANCE =
-    QString::fromStdString(BornAgain::PositionVariance);
+    QString::fromStdString("PositionVariance");
 
 InterferenceFunctionItem::InterferenceFunctionItem(const QString& modelType)
     : SessionGraphicsItem(modelType)
@@ -53,9 +52,9 @@ void InterferenceFunctionItem::setPositionVariance(IInterferenceFunction* p_iff)
 // --------------------------------------------------------------------------------------------- //
 
 const QString InterferenceFunction1DLatticeItem::P_LENGTH =
-    QString::fromStdString(BornAgain::Length);
+    QString::fromStdString("Length");
 const QString InterferenceFunction1DLatticeItem::P_ROTATION_ANGLE =
-    QString::fromStdString(BornAgain::Xi);
+    QString::fromStdString("Xi");
 const QString InterferenceFunction1DLatticeItem::P_DECAY_FUNCTION = decay_function_tag;
 
 InterferenceFunction1DLatticeItem::InterferenceFunction1DLatticeItem()
@@ -140,11 +139,11 @@ void InterferenceFunction2DLatticeItem::update_rotation_availability()
 // --------------------------------------------------------------------------------------------- //
 
 const QString InterferenceFunction2DParaCrystalItem::P_DAMPING_LENGTH =
-    QString::fromStdString(BornAgain::DampingLength);
+    QString::fromStdString("DampingLength");
 const QString InterferenceFunction2DParaCrystalItem::P_DOMAIN_SIZE1 =
-    QString::fromStdString(BornAgain::DomainSize1);
+    QString::fromStdString("DomainSize1");
 const QString InterferenceFunction2DParaCrystalItem::P_DOMAIN_SIZE2 =
-    QString::fromStdString(BornAgain::DomainSize2);
+    QString::fromStdString("DomainSize2");
 const QString InterferenceFunction2DParaCrystalItem::P_XI_INTEGRATION = "Integration_over_xi";
 const QString InterferenceFunction2DParaCrystalItem::P_PDF1 = "PDF #1";
 const QString InterferenceFunction2DParaCrystalItem::P_PDF2 = "PDF #2";
@@ -310,9 +309,9 @@ void InterferenceFunctionFinite2DLatticeItem::update_rotation_availability()
 // --------------------------------------------------------------------------------------------- //
 
 const QString InterferenceFunctionHardDiskItem::P_RADIUS =
-    QString::fromStdString(BornAgain::Radius);
+    QString::fromStdString("Radius");
 const QString InterferenceFunctionHardDiskItem::P_DENSITY =
-    QString::fromStdString(BornAgain::TotalParticleDensity);
+    QString::fromStdString("TotalParticleDensity");
 
 InterferenceFunctionHardDiskItem::InterferenceFunctionHardDiskItem()
     : InterferenceFunctionItem(Constants::InterferenceFunctionHardDiskType)
@@ -336,13 +335,13 @@ InterferenceFunctionHardDiskItem::createInterferenceFunction() const
 // --------------------------------------------------------------------------------------------- //
 
 const QString InterferenceFunctionRadialParaCrystalItem::P_PEAK_DISTANCE =
-    QString::fromStdString(BornAgain::PeakDistance);
+    QString::fromStdString("PeakDistance");
 const QString InterferenceFunctionRadialParaCrystalItem::P_DAMPING_LENGTH =
-    QString::fromStdString(BornAgain::DampingLength);
+    QString::fromStdString("DampingLength");
 const QString InterferenceFunctionRadialParaCrystalItem::P_DOMAIN_SIZE =
-    QString::fromStdString(BornAgain::DomainSize);
+    QString::fromStdString("DomainSize");
 const QString InterferenceFunctionRadialParaCrystalItem::P_KAPPA =
-    QString::fromStdString(BornAgain::SizeSpaceCoupling);
+    QString::fromStdString("SizeSpaceCoupling");
 const QString InterferenceFunctionRadialParaCrystalItem::P_PDF = "PDF";
 
 InterferenceFunctionRadialParaCrystalItem::InterferenceFunctionRadialParaCrystalItem()
diff --git a/GUI/coregui/Models/Lattice2DItems.cpp b/GUI/coregui/Models/Lattice2DItems.cpp
index 6fdc6c48f76423b9e098ba1b21f588e51061a32a..bae71bf60a037cfffbb3f7fffe973098c683f35e 100644
--- a/GUI/coregui/Models/Lattice2DItems.cpp
+++ b/GUI/coregui/Models/Lattice2DItems.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/Lattice2DItems.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Lattice/Lattice2D.h"
 #include "Core/Parametrization/Units.h"
 
@@ -24,7 +23,7 @@ const QString axis_rotation_tooltip =
     "(beam direction) in degrees";
 }
 
-const QString Lattice2DItem::P_LATTICE_ROTATION_ANGLE = QString::fromStdString(BornAgain::Xi);
+const QString Lattice2DItem::P_LATTICE_ROTATION_ANGLE = QString::fromStdString("Xi");
 
 Lattice2DItem::Lattice2DItem(const QString& modelType) : SessionItem(modelType) {}
 
@@ -34,10 +33,10 @@ double Lattice2DItem::unitCellArea() const
 }
 
 const QString BasicLatticeItem::P_LATTICE_LENGTH1 =
-    QString::fromStdString(BornAgain::LatticeLength1);
+    QString::fromStdString("LatticeLength1");
 const QString BasicLatticeItem::P_LATTICE_LENGTH2 =
-    QString::fromStdString(BornAgain::LatticeLength2);
-const QString BasicLatticeItem::P_LATTICE_ANGLE = QString::fromStdString(BornAgain::LatticeAngle);
+    QString::fromStdString("LatticeLength2");
+const QString BasicLatticeItem::P_LATTICE_ANGLE = QString::fromStdString("Alpha");
 
 BasicLatticeItem::BasicLatticeItem() : Lattice2DItem(Constants::BasicLatticeType)
 {
@@ -62,7 +61,7 @@ std::unique_ptr<Lattice2D> BasicLatticeItem::createLattice() const
 // --------------------------------------------------------------------------------------------- //
 
 const QString SquareLatticeItem::P_LATTICE_LENGTH =
-    QString::fromStdString(BornAgain::LatticeLength);
+    QString::fromStdString("LatticeLength");
 
 SquareLatticeItem::SquareLatticeItem() : Lattice2DItem(Constants::SquareLatticeType)
 {
@@ -81,7 +80,7 @@ std::unique_ptr<Lattice2D> SquareLatticeItem::createLattice() const
 // --------------------------------------------------------------------------------------------- //
 
 const QString HexagonalLatticeItem::P_LATTICE_LENGTH =
-    QString::fromStdString(BornAgain::LatticeLength);
+    QString::fromStdString("LatticeLength");
 
 HexagonalLatticeItem::HexagonalLatticeItem() : Lattice2DItem(Constants::HexagonalLatticeType)
 {
diff --git a/GUI/coregui/Models/LayerItem.cpp b/GUI/coregui/Models/LayerItem.cpp
index fe0d64d5803ff39fd9b59c087688b0652d53a07a..da81ffb9a63f479a26805efd50c9a3cbd1b8666a 100644
--- a/GUI/coregui/Models/LayerItem.cpp
+++ b/GUI/coregui/Models/LayerItem.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/LayerItem.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h"
 
 namespace
@@ -23,7 +22,7 @@ const QString layer_nslices_tooltip = "Number of horizontal slices.\n"
                                       "when corresponding Simulation option set.";
 }
 
-const QString LayerItem::P_THICKNESS = QString::fromStdString(BornAgain::Thickness);
+const QString LayerItem::P_THICKNESS = QString::fromStdString("Thickness");
 const QString LayerItem::P_ROUGHNESS = "Top roughness";
 const QString LayerItem::P_MATERIAL = "Material";
 const QString LayerItem::P_NSLICES = "Number of slices";
diff --git a/GUI/coregui/Models/LayerRoughnessItems.cpp b/GUI/coregui/Models/LayerRoughnessItems.cpp
index 71be7a555db7918b72e7abe18f347893b8a7bddd..d764ec44a019cc1715b896c0db94de97b281143b 100644
--- a/GUI/coregui/Models/LayerRoughnessItems.cpp
+++ b/GUI/coregui/Models/LayerRoughnessItems.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/LayerRoughnessItems.h"
-#include "Core/Basics/BornAgainNamespace.h"
 
 namespace
 {
@@ -24,10 +23,10 @@ const QString hurst_tooltip =
 
 LayerZeroRoughnessItem::LayerZeroRoughnessItem() : SessionItem(Constants::LayerZeroRoughnessType) {}
 
-const QString LayerBasicRoughnessItem::P_SIGMA = QString::fromStdString(BornAgain::Sigma);
-const QString LayerBasicRoughnessItem::P_HURST = QString::fromStdString(BornAgain::Hurst);
+const QString LayerBasicRoughnessItem::P_SIGMA = QString::fromStdString("Sigma");
+const QString LayerBasicRoughnessItem::P_HURST = QString::fromStdString("Hurst");
 const QString LayerBasicRoughnessItem::P_LATERAL_CORR_LENGTH =
-    QString::fromStdString(BornAgain::CorrelationLength);
+    QString::fromStdString("CorrelationLength");
 
 LayerBasicRoughnessItem::LayerBasicRoughnessItem() : SessionItem(Constants::LayerBasicRoughnessType)
 {
diff --git a/GUI/coregui/Models/MesoCrystalItem.cpp b/GUI/coregui/Models/MesoCrystalItem.cpp
index c4687e79e67b83b260119e54359c12d89fb2896f..9a384a96b05c8342517b3189248885fa437b516a 100644
--- a/GUI/coregui/Models/MesoCrystalItem.cpp
+++ b/GUI/coregui/Models/MesoCrystalItem.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/MesoCrystalItem.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Particle/Crystal.h"
 #include "Core/Particle/MesoCrystal.h"
 #include "Core/Particle/Particle.h"
@@ -85,16 +84,16 @@ MesoCrystalItem::MesoCrystalItem() : SessionGraphicsItem(Constants::MesoCrystalT
 
     registerTag(ParticleItem::T_TRANSFORMATION, 0, 1, QStringList() << Constants::RotationType);
 
-    addTranslator(VectorParameterTranslator(ParticleItem::P_POSITION, BornAgain::Position));
+    addTranslator(VectorParameterTranslator(ParticleItem::P_POSITION, "Position"));
     addTranslator(RotationTranslator());
-    QStringList additional_names{QString::fromStdString(BornAgain::LatticeType),
-                                 QString::fromStdString(BornAgain::CrystalType)};
+    QStringList additional_names{QString::fromStdString("Lattice"),
+                                 QString::fromStdString("Crystal")};
     addTranslator(
-        VectorParameterTranslator(P_VECTOR_A, BornAgain::BasisVector_A, additional_names));
+        VectorParameterTranslator(P_VECTOR_A, "BasisA", additional_names));
     addTranslator(
-        VectorParameterTranslator(P_VECTOR_B, BornAgain::BasisVector_B, additional_names));
+        VectorParameterTranslator(P_VECTOR_B, "BasisB", additional_names));
     addTranslator(
-        VectorParameterTranslator(P_VECTOR_C, BornAgain::BasisVector_C, additional_names));
+        VectorParameterTranslator(P_VECTOR_C, "BasisC", additional_names));
 
     mapper()->setOnParentChange([this](SessionItem* parent) {
         if (SessionItemUtils::HasOwnAbundance(parent)) {
@@ -137,7 +136,7 @@ QStringList MesoCrystalItem::translateList(const QStringList& list) const
     QStringList result = list;
     // Add CrystalType to path name of basis particle
     if (IsIParticleName(list.back())) {
-        result << QString::fromStdString(BornAgain::CrystalType);
+        result << QString::fromStdString("Crystal");
     }
     result = SessionItem::translateList(result);
     return result;
diff --git a/GUI/coregui/Models/MultiLayerItem.cpp b/GUI/coregui/Models/MultiLayerItem.cpp
index db73efec8cfee0fa0d8c779f441630047ed36f42..e97f178c88725ca56757d49974c576ab3292ee64 100644
--- a/GUI/coregui/Models/MultiLayerItem.cpp
+++ b/GUI/coregui/Models/MultiLayerItem.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/MultiLayerItem.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "GUI/coregui/Models/LayerItem.h"
 #include "GUI/coregui/Models/ParameterTranslators.h"
 
@@ -23,7 +22,7 @@ const QString external_field_tooltip = "External field (A/m)";
 }
 
 const QString MultiLayerItem::P_CROSS_CORR_LENGTH =
-    QString::fromStdString(BornAgain::CrossCorrelationLength);
+    QString::fromStdString("CrossCorrelationLength");
 const QString MultiLayerItem::P_EXTERNAL_FIELD = "ExternalField";
 const QString MultiLayerItem::T_LAYERS = "Layer tag";
 
@@ -42,7 +41,7 @@ MultiLayerItem::MultiLayerItem() : SessionGraphicsItem(Constants::MultiLayerType
     setDefaultTag(T_LAYERS);
 
     addTranslator(RoughnessTranslator(this));
-    addTranslator(VectorParameterTranslator(P_EXTERNAL_FIELD, BornAgain::ExternalField));
+    addTranslator(VectorParameterTranslator(P_EXTERNAL_FIELD, "ExternalField"));
 
     mapper()->setOnChildrenChange([this](SessionItem*) { updateLayers(); });
 }
diff --git a/GUI/coregui/Models/ParameterTranslators.cpp b/GUI/coregui/Models/ParameterTranslators.cpp
index 4a6c47931b9d93c21bc406f4b9dae0c3c0255bd8..b44d78a22fd00b714acf5620b5d685fb3be9df53 100644
--- a/GUI/coregui/Models/ParameterTranslators.cpp
+++ b/GUI/coregui/Models/ParameterTranslators.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/ParameterTranslators.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "GUI/coregui/Models/MesoCrystalItem.h"
 #include "GUI/coregui/Models/ParticleItem.h"
 #include "GUI/coregui/Models/VectorItem.h"
@@ -22,9 +21,9 @@
 namespace
 {
 const QStringList expectedRoughnessPars = QStringList()
-                                          << QString::fromStdString(BornAgain::Sigma)
-                                          << QString::fromStdString(BornAgain::Hurst)
-                                          << QString::fromStdString(BornAgain::CorrelationLength);
+                                          << QString::fromStdString("Sigma")
+                                          << QString::fromStdString("Hurst")
+                                          << QString::fromStdString("CorrelationLength");
 }
 
 IPathTranslator::~IPathTranslator() {}
@@ -114,7 +113,7 @@ QStringList RoughnessTranslator::translate(const QStringList& list) const
     int layerIndex = getLayerIndex(layerName);
     QString postfix = numberOfLayers() == 2 ? QString() : QString::number(layerIndex - 1);
 
-    result.push_back(QString::fromStdString(BornAgain::LayerInterfaceType) + postfix);
+    result.push_back(QString::fromStdString("LayerInterface") + postfix);
     return result;
 }
 
diff --git a/GUI/coregui/Models/ParticleCompositionItem.cpp b/GUI/coregui/Models/ParticleCompositionItem.cpp
index aeedc350c8cefb9c91ce515deb2cb27cb12cea93..756efc31848b21168f53789323509c2c90d0e271 100644
--- a/GUI/coregui/Models/ParticleCompositionItem.cpp
+++ b/GUI/coregui/Models/ParticleCompositionItem.cpp
@@ -54,7 +54,7 @@ ParticleCompositionItem::ParticleCompositionItem()
     setDefaultTag(T_PARTICLES);
     registerTag(ParticleItem::T_TRANSFORMATION, 0, 1, QStringList() << Constants::RotationType);
 
-    addTranslator(VectorParameterTranslator(ParticleItem::P_POSITION, BornAgain::Position));
+    addTranslator(VectorParameterTranslator(ParticleItem::P_POSITION, "Position"));
     addTranslator(RotationTranslator());
 
     mapper()->setOnParentChange([this](SessionItem* parent) {
diff --git a/GUI/coregui/Models/ParticleCoreShellItem.cpp b/GUI/coregui/Models/ParticleCoreShellItem.cpp
index d6f90b2db1561c6c629a05a3c61018244f3419be..9f120e1b6ce42f48fa457b4d4715bcc1cd3ec6c1 100644
--- a/GUI/coregui/Models/ParticleCoreShellItem.cpp
+++ b/GUI/coregui/Models/ParticleCoreShellItem.cpp
@@ -52,7 +52,7 @@ ParticleCoreShellItem::ParticleCoreShellItem()
     registerTag(T_SHELL, 0, 1, QStringList() << Constants::ParticleType);
     registerTag(ParticleItem::T_TRANSFORMATION, 0, 1, QStringList() << Constants::RotationType);
 
-    addTranslator(VectorParameterTranslator(ParticleItem::P_POSITION, BornAgain::Position));
+    addTranslator(VectorParameterTranslator(ParticleItem::P_POSITION, "Position"));
     addTranslator(RotationTranslator());
 
     mapper()->setOnParentChange([this](SessionItem* parent) {
diff --git a/GUI/coregui/Models/ParticleItem.cpp b/GUI/coregui/Models/ParticleItem.cpp
index 8c776f78ca5529efa2eaea2eccedb32cab0db735..8115e3ccd30775762781f5e453918035776d2a75 100644
--- a/GUI/coregui/Models/ParticleItem.cpp
+++ b/GUI/coregui/Models/ParticleItem.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/ParticleItem.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Particle/Particle.h"
 #include "GUI/coregui/Models/FormFactorItems.h"
 #include "GUI/coregui/Models/ModelPath.h"
@@ -37,7 +36,7 @@ const QString position_tooltip = "Relative position of the particle's reference
 } // namespace
 
 const QString ParticleItem::P_FORM_FACTOR = "Form Factor";
-const QString ParticleItem::P_ABUNDANCE = QString::fromStdString(BornAgain::Abundance);
+const QString ParticleItem::P_ABUNDANCE = QString::fromStdString("Abundance");
 const QString ParticleItem::P_MATERIAL = "Material";
 const QString ParticleItem::P_POSITION = "Position Offset";
 const QString ParticleItem::T_TRANSFORMATION = "Transformation Tag";
@@ -58,7 +57,7 @@ ParticleItem::ParticleItem() : SessionGraphicsItem(Constants::ParticleType)
     registerTag(T_TRANSFORMATION, 0, 1, QStringList() << Constants::RotationType);
     setDefaultTag(T_TRANSFORMATION);
 
-    addTranslator(VectorParameterTranslator(P_POSITION, BornAgain::Position));
+    addTranslator(VectorParameterTranslator(P_POSITION, "Position"));
     addTranslator(RotationTranslator());
 
     mapper()->setOnParentChange(
diff --git a/GUI/coregui/Models/ParticleLayoutItem.cpp b/GUI/coregui/Models/ParticleLayoutItem.cpp
index 045de1d96f24ae913d85acc58401e77c4f5f4ca4..2514469326b4e3090cf51d527aebaf6d6b277726 100644
--- a/GUI/coregui/Models/ParticleLayoutItem.cpp
+++ b/GUI/coregui/Models/ParticleLayoutItem.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/ParticleLayoutItem.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "GUI/coregui/Models/ComboProperty.h"
 #include "GUI/coregui/Models/InterferenceFunctionItems.h"
 #include "GUI/coregui/Models/Lattice2DItems.h"
@@ -48,8 +47,8 @@ const QString weight_tooltip =
 } // namespace
 
 const QString ParticleLayoutItem::P_TOTAL_DENSITY =
-    QString::fromStdString(BornAgain::TotalParticleDensity);
-const QString ParticleLayoutItem::P_WEIGHT = QString::fromStdString(BornAgain::Weight);
+    QString::fromStdString("TotalParticleDensity");
+const QString ParticleLayoutItem::P_WEIGHT = QString::fromStdString("Weight");
 const QString ParticleLayoutItem::T_PARTICLES = "Particle Tag";
 const QString ParticleLayoutItem::T_INTERFERENCE = "Interference Tag";
 
diff --git a/GUI/coregui/Models/ResolutionFunctionItems.cpp b/GUI/coregui/Models/ResolutionFunctionItems.cpp
index db61d0b5ee863b0d469473284cbd3be8653ec371..85a09ec9485b8fdfdd63a34c48450734ede81273 100644
--- a/GUI/coregui/Models/ResolutionFunctionItems.cpp
+++ b/GUI/coregui/Models/ResolutionFunctionItems.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/ResolutionFunctionItems.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Instrument/ResolutionFunction2DGaussian.h"
 
 ResolutionFunctionItem::ResolutionFunctionItem(const QString& name) : SessionItem(name) {}
@@ -34,9 +33,9 @@ ResolutionFunctionNoneItem::createResolutionFunction(double) const
 /* --------------------------------------------------------------------------------------------- */
 
 const QString ResolutionFunction2DGaussianItem::P_SIGMA_X =
-    QString::fromStdString(BornAgain::SigmaX);
+    QString::fromStdString("SigmaX");
 const QString ResolutionFunction2DGaussianItem::P_SIGMA_Y =
-    QString::fromStdString(BornAgain::SigmaY);
+    QString::fromStdString("SigmaY");
 
 ResolutionFunction2DGaussianItem::ResolutionFunction2DGaussianItem()
     : ResolutionFunctionItem(Constants::ResolutionFunction2DGaussianType)
diff --git a/GUI/coregui/Models/SpecularDataItem.cpp b/GUI/coregui/Models/SpecularDataItem.cpp
index 9cb7455df052cb9534e5148ca2a2572ec436bdf8..5dd156cc8e68d1c7eb1a3b37ac548b193fbfbd4c 100644
--- a/GUI/coregui/Models/SpecularDataItem.cpp
+++ b/GUI/coregui/Models/SpecularDataItem.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/SpecularDataItem.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "GUI/coregui/Models/AxesItems.h"
 #include "GUI/coregui/Models/ComboProperty.h"
 #include "GUI/coregui/Models/JobItemUtils.h"
@@ -74,13 +73,13 @@ double SpecularDataItem::getUpperX() const
 double SpecularDataItem::getXmin() const
 {
     const double defaultXmin(0.0);
-    return m_data ? m_data->getAxis(BornAgain::X_AXIS_INDEX).getMin() : defaultXmin;
+    return m_data ? m_data->getAxis(0).getMin() : defaultXmin;
 }
 
 double SpecularDataItem::getXmax() const
 {
     const double defaultXmax(1.0);
-    return m_data ? m_data->getAxis(BornAgain::X_AXIS_INDEX).getMax() : defaultXmax;
+    return m_data ? m_data->getAxis(0).getMax() : defaultXmax;
 }
 
 double SpecularDataItem::getLowerY() const
@@ -200,7 +199,7 @@ void SpecularDataItem::updateAxesZoomLevel()
         setUpperY(getYmax());
     }
 
-    const int nx = static_cast<int>(m_data->getAxis(BornAgain::X_AXIS_INDEX).size());
+    const int nx = static_cast<int>(m_data->getAxis(0).size());
     xAxisItem()->setItemValue(BasicAxisItem::P_NBINS, nx);
 }
 
diff --git a/GUI/coregui/Models/TransformFromDomain.cpp b/GUI/coregui/Models/TransformFromDomain.cpp
index 8ec17c8068dd4b7e3edf3f69aa67b1c4f45eeacd..902641eb12be188161118cbeda60f2a81ed184e6 100644
--- a/GUI/coregui/Models/TransformFromDomain.cpp
+++ b/GUI/coregui/Models/TransformFromDomain.cpp
@@ -228,7 +228,7 @@ void TransformFromDomain::setParticleDistributionItem(SessionItem* item,
     distItem->setDomainCacheNames(main_distr_par_name, linked_pars);
 
     double unit_factor(1.0);
-    if (ParameterUtils::mainParUnits(sample) == BornAgain::UnitsRad)
+    if (ParameterUtils::mainParUnits(sample) == "rad")
         unit_factor = 1. / Units::degree;
 
     QString group_name = ParticleDistributionItem::P_DISTRIBUTION;
@@ -260,11 +260,11 @@ void TransformFromDomain::setGISASBeamItem(BeamItem* beam_item, const GISASSimul
     const DistributionHandler::Distributions_t distributions =
         simulation.getDistributionHandler().getDistributions();
     for (size_t i = 0; i < distributions.size(); ++i) {
-        addDistributionToBeamItem(BornAgain::Wavelength, BeamItem::P_WAVELENGTH, distributions[i],
+        addDistributionToBeamItem("Wavelength", BeamItem::P_WAVELENGTH, distributions[i],
                                   beam_item);
-        addDistributionToBeamItem(BornAgain::Inclination, BeamItem::P_INCLINATION_ANGLE,
+        addDistributionToBeamItem("InclinationAngle", BeamItem::P_INCLINATION_ANGLE,
                                   distributions[i], beam_item);
-        addDistributionToBeamItem(BornAgain::Azimuth, BeamItem::P_AZIMUTHAL_ANGLE, distributions[i],
+        addDistributionToBeamItem("AzimuthalAngle", BeamItem::P_AZIMUTHAL_ANGLE, distributions[i],
                                   beam_item);
     }
 
@@ -789,12 +789,12 @@ void SetDecayFunction2D(SessionItem* item, const IFTDecayFunction2D* pdf, QStrin
 void set2DLatticeParameters(SessionItem* item, const Lattice2D& lattice)
 {
     SessionItem* latticeItem(nullptr);
-    if (lattice.getName() == BornAgain::SquareLatticeType) {
+    if (lattice.getName() == "SquareLattice") {
         latticeItem = item->setGroupProperty(InterferenceFunction2DLatticeItem::P_LATTICE_TYPE,
                                              Constants::SquareLatticeType);
         latticeItem->setItemValue(SquareLatticeItem::P_LATTICE_LENGTH, lattice.length1());
 
-    } else if (lattice.getName() == BornAgain::HexagonalLatticeType) {
+    } else if (lattice.getName() == "HexagonalLattice") {
         latticeItem = item->setGroupProperty(InterferenceFunction2DLatticeItem::P_LATTICE_TYPE,
                                              Constants::HexagonalLatticeType);
         latticeItem->setItemValue(HexagonalLatticeItem::P_LATTICE_LENGTH, lattice.length1());
@@ -877,7 +877,7 @@ void addDistributionToBeamItem(const std::string& parameter_name, const QString&
                                const ParameterDistribution& distribution, const BeamItem* beam_item)
 {
     ParameterPattern pattern;
-    pattern.beginsWith("*").add(BornAgain::BeamType).add(parameter_name);
+    pattern.beginsWith("*").add("Beam").add(parameter_name);
     if (distribution.getMainParameterName() != pattern.toStdString())
         return;
 
diff --git a/GUI/coregui/Models/TransformToDomain.cpp b/GUI/coregui/Models/TransformToDomain.cpp
index 0c1787d4e0828a819c1c28a5fd9e03c71d7edcfe..bc68a967284c0fe4c373740395a922292eebce6d 100644
--- a/GUI/coregui/Models/TransformToDomain.cpp
+++ b/GUI/coregui/Models/TransformToDomain.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/TransformToDomain.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Instrument/AngularSpecScan.h"
 #include "Core/Instrument/ScanResolution.h"
 #include "Core/Parametrization/Distributions.h"
@@ -159,11 +158,11 @@ void TransformToDomain::addDistributionParametersToSimulation(const SessionItem&
     }
 
     setParameterDistributionToSimulation<BeamWavelengthItem>(
-        BornAgain::Wavelength, beam_item.getItem(BeamItem::P_WAVELENGTH), simulation);
+        "Wavelength", beam_item.getItem(BeamItem::P_WAVELENGTH), simulation);
     setParameterDistributionToSimulation<BeamInclinationAngleItem>(
-        BornAgain::Inclination, beam_item.getItem(BeamItem::P_INCLINATION_ANGLE), simulation);
+        "InclinationAngle", beam_item.getItem(BeamItem::P_INCLINATION_ANGLE), simulation);
     setParameterDistributionToSimulation<BeamAzimuthalAngleItem>(
-        BornAgain::Azimuth, beam_item.getItem(BeamItem::P_AZIMUTHAL_ANGLE), simulation);
+        "AzimuthalAngle", beam_item.getItem(BeamItem::P_AZIMUTHAL_ANGLE), simulation);
 }
 
 void TransformToDomain::addBeamDivergencesToScan(const SessionItem& beam_item,
@@ -187,7 +186,7 @@ void TransformToDomain::setBeamDistribution(const std::string& parameter_name,
                                             Simulation& simulation)
 {
     ParameterPattern parameter_pattern;
-    parameter_pattern.beginsWith("*").add(BornAgain::BeamType).add(parameter_name);
+    parameter_pattern.beginsWith("*").add("Beam").add(parameter_name);
 
     auto P_par_distr = item.getParameterDistributionForName(parameter_pattern.toStdString());
     if (P_par_distr)
@@ -250,7 +249,7 @@ void setParameterDistributionToSimulation(const std::string& parameter_name,
     }
 
     ParameterPattern parameter_pattern;
-    parameter_pattern.beginsWith("*").add(BornAgain::BeamType).add(parameter_name);
+    parameter_pattern.beginsWith("*").add("Beam").add(parameter_name);
 
     auto P_par_distr =
         parameter_item->getParameterDistributionForName(parameter_pattern.toStdString());
diff --git a/GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.cpp b/GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.cpp
index bb20d66934a1cf844af07249b6d293b1a9404494..4c69e96955a1b87732db555146d2e8eec186227b 100644
--- a/GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Binning/PointwiseAxis.h"
 #include "Core/InputOutput/IntensityDataIOFactory.h"
 #include "GUI/coregui/Models/AxesItems.h"
diff --git a/GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.cpp b/GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.cpp
index 823a46d8412e5aca2c8e4fdf7cac3649be5512bc..b839e9c31d71d0c49d154976ece74ca35127c93e 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Instrument/IntensityDataFunctions.h"
 #include "GUI/coregui/Models/IntensityDataItem.h"
 #include "GUI/coregui/Models/MaskItems.h"
@@ -102,11 +101,11 @@ void MaskUnitsConverter::convertCoordinate(SessionItem* maskItem, const QString&
                                            const QString& yname)
 {
     if (maskItem->isTag(xname)) {
-        double x = convert(maskItem->getItemValue(xname).toDouble(), BornAgain::X_AXIS_INDEX);
+        double x = convert(maskItem->getItemValue(xname).toDouble(), 0);
         maskItem->setItemValue(xname, x);
     }
     if (maskItem->isTag(yname)) {
-        double y = convert(maskItem->getItemValue(yname).toDouble(), BornAgain::Y_AXIS_INDEX);
+        double y = convert(maskItem->getItemValue(yname).toDouble(), 1);
         maskItem->setItemValue(yname, y);
     }
 }
@@ -116,7 +115,7 @@ void MaskUnitsConverter::convertCoordinate(SessionItem* maskItem, const QString&
 double MaskUnitsConverter::convert(double value, int axis_index)
 {
     Q_ASSERT(mp_data);
-    Q_ASSERT(axis_index == BornAgain::X_AXIS_INDEX || axis_index == BornAgain::Y_AXIS_INDEX);
+    Q_ASSERT(axis_index == 0 || axis_index == 1);
 
     if (m_direction == TO_NBINS) {
         return IntensityDataFunctions::coordinateToBinf(value, mp_data->getAxis(axis_index));
diff --git a/GUI/coregui/mainwindow/PyImportAssistant.cpp b/GUI/coregui/mainwindow/PyImportAssistant.cpp
index adeeea00f890c661591f377a0f85070e33386e7f..3fd969102554a211732d93686709e1ad5d7caac5 100644
--- a/GUI/coregui/mainwindow/PyImportAssistant.cpp
+++ b/GUI/coregui/mainwindow/PyImportAssistant.cpp
@@ -14,7 +14,6 @@
 
 #include "GUI/coregui/mainwindow/PyImportAssistant.h"
 #include "BABuild.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Multilayer/MultiLayer.h"
 #include "Core/Tools/PyImport.h"
 #include "Core/Tools/SysUtils.h"
@@ -215,7 +214,7 @@ void PyImportAssistant::populateModels(const MultiLayer& multilayer, const QStri
 {
     try {
         QString name = sampleName;
-        if (multilayer.getName() != BornAgain::MultiLayerType)
+        if (multilayer.getName() != "MultiLayer")
             name = QString::fromStdString(multilayer.getName());
 
         GUIObjectBuilder::populateSampleModel(m_mainWindow->sampleModel(),
diff --git a/Tests/Functional/Core/CoreSpecial/MultiThreadPerformanceTestComponents.cpp b/Tests/Functional/Core/CoreSpecial/MultiThreadPerformanceTestComponents.cpp
index a954c92b599af51f4a90c0062fa1f89ae6516652..b9491453099f51513ac0ed43bf6772d0738b1dcc 100644
--- a/Tests/Functional/Core/CoreSpecial/MultiThreadPerformanceTestComponents.cpp
+++ b/Tests/Functional/Core/CoreSpecial/MultiThreadPerformanceTestComponents.cpp
@@ -169,7 +169,7 @@ std::unique_ptr<Simulation> TestComponents::CreateWavelengthGISAS()
     // create parameter distribution
     DistributionLogNormal wavelength_distr(1.0 * Units::angstrom, 0.1);
     ParameterPattern pattern1;
-    pattern1.beginsWith("*").add(BornAgain::BeamType).add(BornAgain::Wavelength);
+    pattern1.beginsWith("*").add("Beam").add("Wavelength");
     result->addParameterDistribution(pattern1.toStdString(), wavelength_distr, 1000);
 
     auto sample = std::unique_ptr<MultiLayer>(CylindersInBABuilder().buildSample());
diff --git a/Tests/Functional/GUI/GUISpecial/GUITranslationTest.cpp b/Tests/Functional/GUI/GUISpecial/GUITranslationTest.cpp
index 718d6b19e5cbdc00755f2a85735d34f7f0a1d02a..9a0af4649881ec2a9a6157e1f5acf4593740ed94 100644
--- a/Tests/Functional/GUI/GUISpecial/GUITranslationTest.cpp
+++ b/Tests/Functional/GUI/GUISpecial/GUITranslationTest.cpp
@@ -148,9 +148,9 @@ std::string GUITranslationTest::translationResultsToString() const
 
 bool GUITranslationTest::isValidDomainName(const std::string& domainName) const
 {
-    std::vector<std::string> invalidNames{BornAgain::Direction, BornAgain::Efficiency,
-                                          BornAgain::Transmission, BornAgain::Inclination,
-                                          BornAgain::Azimuth};
+    std::vector<std::string> invalidNames{"Direction", "Efficiency",
+                                          "Transmission", "InclinationAngle",
+                                          "AzimuthalAngle"};
     for (auto name : invalidNames) {
         if (domainName.find(name) != std::string::npos)
             return false;
diff --git a/Tests/Functional/Python/PyEmbedded/TestCases.cpp b/Tests/Functional/Python/PyEmbedded/TestCases.cpp
index 9c54d06ed7f62e4831de4c7d4835c16f34871cf4..b8c17211d84117ecb0df38f7715fa043ee924f69 100644
--- a/Tests/Functional/Python/PyEmbedded/TestCases.cpp
+++ b/Tests/Functional/Python/PyEmbedded/TestCases.cpp
@@ -15,7 +15,6 @@
 #include "Tests/Functional/Python/PyEmbedded/TestCases.h"
 #include "BABuild.h"
 #include "BAVersion.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Export/ExportToPython.h"
 #include "Core/Export/PythonFormatting.h"
 #include "Core/Multilayer/MultiLayer.h"
@@ -291,7 +290,7 @@ bool ObjectExtract::runTest()
 
     Py_Finalize();
 
-    return name == BornAgain::MultiLayerType;
+    return name == "MultiLayer";
 }
 
 //! Running Python snippet which creates a multilayer in embedded way.
diff --git a/Tests/Functional/TestMachinery/StandardTestService.cpp b/Tests/Functional/TestMachinery/StandardTestService.cpp
index e4c7ca68ec4366198241f43dfbbafaaffb11548f..5c96b8a44882af4e41ac3d56ad6015fc7244c2f9 100644
--- a/Tests/Functional/TestMachinery/StandardTestService.cpp
+++ b/Tests/Functional/TestMachinery/StandardTestService.cpp
@@ -13,7 +13,6 @@
 // ************************************************************************** //
 
 #include "Tests/Functional/TestMachinery/StandardTestService.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Multilayer/IMultiLayerBuilder.h"
 #include "Core/Multilayer/MultiLayer.h"
 #include "Core/Simulation/Simulation.h"
@@ -33,7 +32,7 @@ std::string fullTestName(const std::string& test_name, const std::string& builde
 {
     std::string result = test_name;
 
-    if (builder_name != BornAgain::SampleBuilderType)
+    if (builder_name != "SampleBuilder")
         result += "_" + builder_name;
 
     return result;
diff --git a/Tests/UnitTests/Core/Detector/SpecularDetector1DTest.cpp b/Tests/UnitTests/Core/Detector/SpecularDetector1DTest.cpp
index e57f9ede75a0fefaddd82f120b29d14eba9f72fe..2e2966e7e84d92576d74d6309646431d0cfdcaf5 100644
--- a/Tests/UnitTests/Core/Detector/SpecularDetector1DTest.cpp
+++ b/Tests/UnitTests/Core/Detector/SpecularDetector1DTest.cpp
@@ -1,5 +1,4 @@
 #include "Core/Instrument/SpecularDetector1D.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Beam/Beam.h"
 #include "Core/Binning/FixedBinAxis.h"
 #include "Core/Instrument/OutputData.h"
diff --git a/Tests/UnitTests/Core/Detector/SphericalDetectorTest.cpp b/Tests/UnitTests/Core/Detector/SphericalDetectorTest.cpp
index e498b12c09371ea7ff622916e2aa3876e644bd8b..ece03eb5b0e593d33a69454a76c0cfab7288e55b 100644
--- a/Tests/UnitTests/Core/Detector/SphericalDetectorTest.cpp
+++ b/Tests/UnitTests/Core/Detector/SphericalDetectorTest.cpp
@@ -1,5 +1,4 @@
 #include "Core/Instrument/SphericalDetector.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Beam/Beam.h"
 #include "Core/Binning/FixedBinAxis.h"
@@ -74,11 +73,11 @@ TEST_F(SphericalDetectorTest, constructionWithParameters)
     EXPECT_EQ(10u, detector.getAxis(0).size());
     EXPECT_EQ(-1.0, detector.getAxis(0).getMin());
     EXPECT_EQ(1.0, detector.getAxis(0).getMax());
-    EXPECT_EQ(BornAgain::PHI_AXIS_NAME, detector.getAxis(0).getName());
+    EXPECT_EQ("phi_f", detector.getAxis(0).getName());
     EXPECT_EQ(20u, detector.getAxis(1).size());
     EXPECT_EQ(0.0, detector.getAxis(1).getMin());
     EXPECT_EQ(2.0, detector.getAxis(1).getMax());
-    EXPECT_EQ(BornAgain::ALPHA_AXIS_NAME, detector.getAxis(1).getName());
+    EXPECT_EQ("alpha_f", detector.getAxis(1).getName());
 }
 
 // Creation of the detector map with axes in given units
diff --git a/Tests/UnitTests/Core/ExportToPython/PythonFormattingTest.cpp b/Tests/UnitTests/Core/ExportToPython/PythonFormattingTest.cpp
index 7b277325ff92dda1ac79f1c04289d7839eab4f7d..705e9d6fe3ded5ef2f08b1784762ed7701732694 100644
--- a/Tests/UnitTests/Core/ExportToPython/PythonFormattingTest.cpp
+++ b/Tests/UnitTests/Core/ExportToPython/PythonFormattingTest.cpp
@@ -1,5 +1,4 @@
 #include "Core/Export/PythonFormatting.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Binning/FixedBinAxis.h"
 #include "Core/Binning/PointwiseAxis.h"
 #include "Core/Parametrization/Distributions.h"
@@ -14,9 +13,9 @@ class PythonFormattingTest : public ::testing::Test
 
 TEST_F(PythonFormattingTest, ValueTimesUnits)
 {
-    EXPECT_EQ("2.0*nm", PythonFormatting::printValue(2.0, BornAgain::UnitsNm));
-    EXPECT_EQ("2.0*deg", PythonFormatting::printValue(2.0 * Units::deg, BornAgain::UnitsRad));
-    EXPECT_EQ("2.0", PythonFormatting::printValue(2.0, BornAgain::UnitsNone));
+    EXPECT_EQ("2.0*nm", PythonFormatting::printValue(2.0, "nm"));
+    EXPECT_EQ("2.0*deg", PythonFormatting::printValue(2.0 * Units::deg, "rad"));
+    EXPECT_EQ("2.0", PythonFormatting::printValue(2.0, ""));
 }
 
 TEST_F(PythonFormattingTest, RealLimits)
@@ -29,31 +28,31 @@ TEST_F(PythonFormattingTest, RealLimits)
     EXPECT_EQ("RealLimits.lowerLimited(1.0)",
               PythonFormatting::printRealLimits(RealLimits::lowerLimited(1.0)));
     EXPECT_EQ("RealLimits.lowerLimited(1.0*nm)",
-              PythonFormatting::printRealLimits(RealLimits::lowerLimited(1.0), BornAgain::UnitsNm));
+              PythonFormatting::printRealLimits(RealLimits::lowerLimited(1.0), "nm"));
     EXPECT_EQ("RealLimits.lowerLimited(1.0*deg)",
               PythonFormatting::printRealLimits(RealLimits::lowerLimited(1.0 * Units::deg),
-                                                BornAgain::UnitsRad));
+                                                "rad"));
 
     EXPECT_EQ("RealLimits.upperLimited(1.0)",
               PythonFormatting::printRealLimits(RealLimits::upperLimited(1.0)));
     EXPECT_EQ("RealLimits.upperLimited(1.0*nm)",
-              PythonFormatting::printRealLimits(RealLimits::upperLimited(1.0), BornAgain::UnitsNm));
+              PythonFormatting::printRealLimits(RealLimits::upperLimited(1.0), "nm"));
     EXPECT_EQ("RealLimits.upperLimited(1.0*deg)",
               PythonFormatting::printRealLimits(RealLimits::upperLimited(1.0 * Units::deg),
-                                                BornAgain::UnitsRad));
+                                                "rad"));
 
     EXPECT_EQ("RealLimits.limited(1.0, 2.0)",
               PythonFormatting::printRealLimits(RealLimits::limited(1.0, 2.0)));
     EXPECT_EQ("RealLimits.limited(1.0*nm, 2.0*nm)",
-              PythonFormatting::printRealLimits(RealLimits::limited(1.0, 2.0), BornAgain::UnitsNm));
+              PythonFormatting::printRealLimits(RealLimits::limited(1.0, 2.0), "nm"));
     EXPECT_EQ("RealLimits.limited(1.0*deg, 2.0*deg)",
               PythonFormatting::printRealLimits(
-                  RealLimits::limited(1.0 * Units::deg, 2.0 * Units::deg), BornAgain::UnitsRad));
+                  RealLimits::limited(1.0 * Units::deg, 2.0 * Units::deg), "rad"));
 
     // testing printing of real limits in the context of ParameterDistribution and similar
     EXPECT_EQ(", ba.RealLimits.limited(1.0*deg, 2.0*deg)",
               PythonFormatting::printRealLimitsArg(
-                  RealLimits::limited(1.0 * Units::deg, 2.0 * Units::deg), BornAgain::UnitsRad));
+                  RealLimits::limited(1.0 * Units::deg, 2.0 * Units::deg), "rad"));
 
     EXPECT_EQ("", PythonFormatting::printRealLimitsArg(RealLimits::limitless()));
 }
@@ -63,15 +62,15 @@ TEST_F(PythonFormattingTest, printDistribution)
     EXPECT_EQ(PythonFormatting::printDistribution(DistributionGate(1.0, 2.0)),
               "ba.DistributionGate(1.0, 2.0)");
 
-    EXPECT_EQ(PythonFormatting::printDistribution(DistributionGate(1.0, 2.0), BornAgain::UnitsNm),
+    EXPECT_EQ(PythonFormatting::printDistribution(DistributionGate(1.0, 2.0), "nm"),
               "ba.DistributionGate(1.0*nm, 2.0*nm)");
 
     EXPECT_EQ(PythonFormatting::printDistribution(
-                  DistributionGate(1.0 * Units::deg, 2.0 * Units::deg), BornAgain::UnitsRad),
+                  DistributionGate(1.0 * Units::deg, 2.0 * Units::deg), "rad"),
               "ba.DistributionGate(1.0*deg, 2.0*deg)");
 
     EXPECT_EQ(PythonFormatting::printDistribution(DistributionLogNormal(1.0 * Units::deg, 0.01),
-                                                  BornAgain::UnitsRad),
+                                                  "rad"),
               "ba.DistributionLogNormal(1.0*deg, 0.01)");
 }
 
@@ -93,14 +92,14 @@ TEST_F(PythonFormattingTest, printParameterDistribution)
 
     // RealLimits defined, units explicetely set
     ParameterDistribution dist3("ParName", gate, 5, 2.0, RealLimits::limited(1.0, 2.0));
-    EXPECT_EQ(PythonFormatting::printParameterDistribution(dist3, "distr_1", BornAgain::UnitsNm),
+    EXPECT_EQ(PythonFormatting::printParameterDistribution(dist3, "distr_1", "nm"),
               "ba.ParameterDistribution(\"ParName\", distr_1, "
               "5, 2.0, ba.RealLimits.limited(1.0*nm, 2.0*nm))");
 
     // RealLimits defined, checking that method guess radians units correctly
     ParameterDistribution dist4("/Particle/ZRotation/Angle", gate, 5, 2.0,
                                 RealLimits::limited(1.0 * Units::deg, 2.0 * Units::deg));
-    EXPECT_EQ(PythonFormatting::printParameterDistribution(dist4, "distr_1", BornAgain::UnitsRad),
+    EXPECT_EQ(PythonFormatting::printParameterDistribution(dist4, "distr_1", "rad"),
               "ba.ParameterDistribution(\"/Particle/ZRotation/Angle\", "
               "distr_1, 5, 2.0, ba.RealLimits.limited(1.0*deg, 2.0*deg))");
 }
@@ -112,12 +111,12 @@ TEST_F(PythonFormattingTest, printAxis)
               "ba.FixedBinAxis(\"axis0\", 10, -1.0, 2.0)");
 
     FixedBinAxis axis2("axis0", 10, -1.0 * Units::deg, 2.0 * Units::deg);
-    EXPECT_EQ(PythonFormatting::printAxis(axis2, BornAgain::UnitsRad, 0),
+    EXPECT_EQ(PythonFormatting::printAxis(axis2, "rad", 0),
               "ba.FixedBinAxis(\"axis0\", 10, -1.0*deg, 2.0*deg)");
 
     PointwiseAxis axis3("axis3",
                         std::vector<double>{1.0 * Units::deg, 2.0 * Units::deg, 3.0 * Units::deg});
-    EXPECT_EQ(PythonFormatting::printAxis(axis3, BornAgain::UnitsRad, 0),
+    EXPECT_EQ(PythonFormatting::printAxis(axis3, "rad", 0),
               "numpy.asarray([1.0*deg,\n"
               "               2.0*deg,\n"
               "               3.0*deg])");
diff --git a/Tests/UnitTests/Core/Fitting/FittingTestHelper.h b/Tests/UnitTests/Core/Fitting/FittingTestHelper.h
index 32d8285d318cf9f4b6ce2ba88e8ac0d52fe031c7..ebd18d03939027e0a3c8b812ad37207772732e0d 100644
--- a/Tests/UnitTests/Core/Fitting/FittingTestHelper.h
+++ b/Tests/UnitTests/Core/Fitting/FittingTestHelper.h
@@ -43,8 +43,8 @@ public:
     std::unique_ptr<OutputData<double>> createData(double value)
     {
         std::unique_ptr<OutputData<double>> result(new OutputData<double>);
-        result->addAxis(FixedBinAxis(BornAgain::PHI_AXIS_NAME, m_nx, m_xmin, m_xmax));
-        result->addAxis(FixedBinAxis(BornAgain::ALPHA_AXIS_NAME, m_ny, m_ymin, m_ymax));
+        result->addAxis(FixedBinAxis("phi_f", m_nx, m_xmin, m_xmax));
+        result->addAxis(FixedBinAxis("alpha_f", m_ny, m_ymin, m_ymax));
         result->setAllTo(value);
         return result;
     }
diff --git a/Tests/UnitTests/Core/Fresnel/DepthProbeSimulationTest.cpp b/Tests/UnitTests/Core/Fresnel/DepthProbeSimulationTest.cpp
index 1d123a561d88d409efc5ebf229f45b6f380760d3..72df3885fb15eeedfb89d69dd169e9294586ceb3 100644
--- a/Tests/UnitTests/Core/Fresnel/DepthProbeSimulationTest.cpp
+++ b/Tests/UnitTests/Core/Fresnel/DepthProbeSimulationTest.cpp
@@ -50,7 +50,7 @@ std::unique_ptr<DepthProbeSimulation> DepthProbeSimulationTest::defaultSimulatio
 
 void DepthProbeSimulationTest::checkBeamState(const DepthProbeSimulation& sim)
 {
-    const auto* inclination = sim.getInstrument().getBeam().parameter(BornAgain::Inclination);
+    const auto* inclination = sim.getInstrument().getBeam().parameter("InclinationAngle");
     const auto test_limits = RealLimits::limited(-M_PI_2, M_PI_2);
     EXPECT_EQ(test_limits, inclination->limits());
     EXPECT_EQ(0.0, inclination->value());
@@ -194,11 +194,11 @@ TEST_F(DepthProbeSimulationTest, AddingBeamDistributions)
     DistributionGaussian distribution(1.0, 2.0);
 
     ParameterPattern wl_pattern;
-    wl_pattern.beginsWith("*").add(BornAgain::BeamType).add(BornAgain::Wavelength);
+    wl_pattern.beginsWith("*").add("Beam").add("Wavelength");
     ParameterPattern incl_ang_pattern;
-    incl_ang_pattern.beginsWith("*").add(BornAgain::BeamType).add(BornAgain::Inclination);
+    incl_ang_pattern.beginsWith("*").add("Beam").add("InclinationAngle");
     ParameterPattern beam_pattern;
-    beam_pattern.beginsWith("*").add(BornAgain::BeamType).add("*");
+    beam_pattern.beginsWith("*").add("Beam").add("*");
 
     EXPECT_THROW(sim->addParameterDistribution(incl_ang_pattern.toStdString(), distribution, 5),
                  std::runtime_error);
diff --git a/Tests/UnitTests/Core/Fresnel/SpecularSimulationTest.cpp b/Tests/UnitTests/Core/Fresnel/SpecularSimulationTest.cpp
index 0ef1760622a853505fdbed78dbe37b5ddfda7866..347ededa8d5da9f67ba9a66bcc9b73ecc4ec3050 100644
--- a/Tests/UnitTests/Core/Fresnel/SpecularSimulationTest.cpp
+++ b/Tests/UnitTests/Core/Fresnel/SpecularSimulationTest.cpp
@@ -63,7 +63,7 @@ std::unique_ptr<SpecularSimulation> SpecularSimulationTest::defaultSimulation()
 
 void SpecularSimulationTest::checkBeamState(const SpecularSimulation& sim)
 {
-    const auto* inclination = sim.getInstrument().getBeam().parameter(BornAgain::Inclination);
+    const auto* inclination = sim.getInstrument().getBeam().parameter("InclinationAngle");
     const auto test_limits = RealLimits::limited(-M_PI_2, M_PI_2);
     EXPECT_EQ(test_limits, inclination->limits());
     EXPECT_EQ(0.0, inclination->value());
@@ -223,11 +223,11 @@ TEST_F(SpecularSimulationTest, AddingBeamDistributions)
     DistributionGaussian distribution(1.0, 2.0);
 
     ParameterPattern wl_pattern;
-    wl_pattern.beginsWith("*").add(BornAgain::BeamType).add(BornAgain::Wavelength);
+    wl_pattern.beginsWith("*").add("Beam").add("Wavelength");
     ParameterPattern incl_ang_pattern;
-    incl_ang_pattern.beginsWith("*").add(BornAgain::BeamType).add(BornAgain::Inclination);
+    incl_ang_pattern.beginsWith("*").add("Beam").add("InclinationAngle");
     ParameterPattern beam_pattern;
-    beam_pattern.beginsWith("*").add(BornAgain::BeamType).add("*");
+    beam_pattern.beginsWith("*").add("Beam").add("*");
 
     EXPECT_THROW(sim->addParameterDistribution(incl_ang_pattern.toStdString(), distribution, 5),
                  std::runtime_error);
@@ -248,7 +248,7 @@ TEST_F(SpecularSimulationTest, OutOfRangeAngles)
 {
     auto sim = defaultSimulation();
     auto& beam = sim->getInstrument().getBeam();
-    beam.parameter(BornAgain::Inclination)->setValue(-0.2 * Units::deg);
+    beam.parameter("InclinationAngle")->setValue(-0.2 * Units::deg);
 
     sim->runSimulation();
     auto sim_result = sim->result();
diff --git a/Tests/UnitTests/Core/Other/BeamTest.cpp b/Tests/UnitTests/Core/Other/BeamTest.cpp
index 4834f8a3ef59cef2ebe658abf38601666e54fe2b..93a02ec7504674380ae8ffe7d9dad70e6d149534 100644
--- a/Tests/UnitTests/Core/Other/BeamTest.cpp
+++ b/Tests/UnitTests/Core/Other/BeamTest.cpp
@@ -1,5 +1,4 @@
 #include "Core/Beam/Beam.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Beam/FootprintFactorGaussian.h"
 #include "Core/Beam/FootprintFactorSquare.h"
@@ -23,10 +22,10 @@ TEST_F(BeamTest, BeamInitialState)
     EXPECT_EQ(0.0, m_empty_beam.getCentralK()[2]);
     EXPECT_EQ(1.0, m_empty_beam.getIntensity());
     // EXPECT_EQ(size_t(4), m_empty_beam.parameterPool()->size());
-    //    EXPECT_EQ(1.0, m_empty_beam.parameterPool()->parameter(BornAgain::Intensity)->value());
-    //    EXPECT_EQ(1.0, m_empty_beam.parameterPool()->parameter(BornAgain::Wavelength)->value());
-    //    EXPECT_EQ(0.0, m_empty_beam.parameterPool()->parameter(BornAgain::Alpha)->value());
-    //    EXPECT_EQ(0.0, m_empty_beam.parameterPool()->parameter(BornAgain::Phi)->value());
+    //    EXPECT_EQ(1.0, m_empty_beam.parameterPool()->parameter("Intensity")->value());
+    //    EXPECT_EQ(1.0, m_empty_beam.parameterPool()->parameter("Wavelength")->value());
+    //    EXPECT_EQ(0.0, m_empty_beam.parameterPool()->parameter("Alpha")->value());
+    //    EXPECT_EQ(0.0, m_empty_beam.parameterPool()->parameter("Phi")->value());
     //    EXPECT_EQ(complex_t(0.5, 0.0), m_empty_beam.getPolarization()(0, 0));
     //    EXPECT_EQ(complex_t(0.5, 0.0), m_empty_beam.getPolarization()(1, 1));
 }
@@ -49,7 +48,7 @@ TEST_F(BeamTest, BeamAssignment)
     /* TEMPORARILY DISABLED getParameterPool()
     EXPECT_EQ(size_t(4), beam_copy.getParameterPool()->size());
     EXPECT_EQ(double(2.0),
-              beam_copy.getParameterPool()->getParameter(BornAgain::Intensity).getValue());
+              beam_copy.getParameterPool()->getParameter("Intensity").getValue());
     EXPECT_EQ(complex_t(0.6, 0.0), beam_copy.getPolarization()(0, 0));
     EXPECT_EQ(complex_t(0.4, 0.0), beam_copy.getPolarization()(1, 1));
     */
diff --git a/Tests/UnitTests/Core/Other/ChiSquaredModuleTest.cpp b/Tests/UnitTests/Core/Other/ChiSquaredModuleTest.cpp
index ec4d6d885987931b0d283d4d3646381f70623689..1d8ff10e27668ad8a3321cc624808144a5ef5066 100644
--- a/Tests/UnitTests/Core/Other/ChiSquaredModuleTest.cpp
+++ b/Tests/UnitTests/Core/Other/ChiSquaredModuleTest.cpp
@@ -1,5 +1,4 @@
 #include "Core/Instrument/ChiSquaredModule.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Instrument/OutputData.h"
 #include "Core/Instrument/VarianceFunctions.h"
 #include "Tests/UnitTests/utilities/google_test.h"
diff --git a/Tests/UnitTests/Core/Other/FourierTransformTest.cpp b/Tests/UnitTests/Core/Other/FourierTransformTest.cpp
index 76753acbe67e904b91a0e61ca97a8e3ce977d38d..785f3dabed7cbefe2a7ba778a34fe8e582ccd2a2 100644
--- a/Tests/UnitTests/Core/Other/FourierTransformTest.cpp
+++ b/Tests/UnitTests/Core/Other/FourierTransformTest.cpp
@@ -2,7 +2,6 @@
 #define FOURIERTRANSFORMTEST_H
 
 #include "Core/Instrument/FourierTransform.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Instrument/OutputData.h"
 #include "Tests/UnitTests/utilities/google_test.h"
diff --git a/Tests/UnitTests/Core/Other/GISASSimulationTest.cpp b/Tests/UnitTests/Core/Other/GISASSimulationTest.cpp
index 275cad669ce482cf9d342197c9c1a32b94ca5bc6..d6fab8d65a48bec152d9099c2b563b881f33dad0 100644
--- a/Tests/UnitTests/Core/Other/GISASSimulationTest.cpp
+++ b/Tests/UnitTests/Core/Other/GISASSimulationTest.cpp
@@ -1,5 +1,4 @@
 #include "Core/Simulation/GISASSimulation.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Beam/Beam.h"
 #include "Core/Instrument/OutputData.h"
 #include "Core/Multilayer/IMultiLayerBuilder.h"
@@ -17,7 +16,7 @@ protected:
 
 TEST_F(GISASSimulationTest, SimulationInitialState)
 {
-    EXPECT_EQ(BornAgain::GISASSimulationType, m_simulation.getName());
+    EXPECT_EQ("GISASSimulation", m_simulation.getName());
     EXPECT_EQ(nullptr, m_simulation.sample());
     EXPECT_EQ(0u, m_simulation.intensityMapSize());
     EXPECT_THROW(m_simulation.result(), std::runtime_error);
@@ -28,14 +27,14 @@ TEST_F(GISASSimulationTest, SimulationConstruction)
 {
     MultiLayer multi_layer;
     GISASSimulation simulation(multi_layer);
-    EXPECT_EQ(BornAgain::GISASSimulationType, simulation.getName());
+    EXPECT_EQ("GISASSimulation", simulation.getName());
     EXPECT_NE(nullptr, simulation.sample());
     EXPECT_EQ(0u, simulation.intensityMapSize());
     EXPECT_THROW(simulation.result(), std::runtime_error);
     EXPECT_EQ(2u, simulation.getChildren().size());
 
     simulation.setDetectorParameters(10, -2.0, 2.0, 20, 0.0, 2.0);
-    EXPECT_EQ(BornAgain::GISASSimulationType, simulation.getName());
+    EXPECT_EQ("GISASSimulation", simulation.getName());
     EXPECT_NE(nullptr, simulation.sample());
     EXPECT_EQ(200u, simulation.intensityMapSize());
     EXPECT_NO_THROW(simulation.result());
@@ -45,7 +44,7 @@ TEST_F(GISASSimulationTest, SimulationConstruction)
 TEST_F(GISASSimulationTest, SimulationClone)
 {
     auto p_clone = m_simulation.clone();
-    EXPECT_EQ(BornAgain::GISASSimulationType, p_clone->getName());
+    EXPECT_EQ("GISASSimulation", p_clone->getName());
     EXPECT_EQ(nullptr, p_clone->sample());
     EXPECT_EQ(0u, p_clone->intensityMapSize());
     EXPECT_THROW(p_clone->result(), std::runtime_error);
@@ -56,7 +55,7 @@ TEST_F(GISASSimulationTest, SimulationClone)
     GISASSimulation simulation(multi_layer);
     simulation.setDetectorParameters(10, -2.0, 2.0, 20, 0.0, 2.0);
     p_clone = simulation.clone();
-    EXPECT_EQ(BornAgain::GISASSimulationType, p_clone->getName());
+    EXPECT_EQ("GISASSimulation", p_clone->getName());
     EXPECT_NE(nullptr, p_clone->sample());
     EXPECT_EQ(200u, p_clone->intensityMapSize());
     EXPECT_NO_THROW(p_clone->result());
diff --git a/Tests/UnitTests/Core/Other/InstrumentTest.cpp b/Tests/UnitTests/Core/Other/InstrumentTest.cpp
index eb92eb69e8d0e5a9775608344eacccdead1d147f..22c829830f26d981cdec25df3fd67261a1eefc1a 100644
--- a/Tests/UnitTests/Core/Other/InstrumentTest.cpp
+++ b/Tests/UnitTests/Core/Other/InstrumentTest.cpp
@@ -1,5 +1,4 @@
 #include "Core/Instrument/Instrument.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Instrument/OutputData.h"
 #include "Tests/UnitTests/utilities/google_test.h"
@@ -15,7 +14,7 @@ protected:
 
 InstrumentTest::InstrumentTest()
 {
-    m_data.addAxis(BornAgain::PHI_AXIS_NAME, 10, 0., 10.);
+    m_data.addAxis("phi_f", 10, 0., 10.);
     m_data.addAxis("theta_f", 20, 0., 20.);
 }
 
diff --git a/Tests/UnitTests/Core/Parameters/DistributionsTest.cpp b/Tests/UnitTests/Core/Parameters/DistributionsTest.cpp
index 617821a2aae2ef64b820ba3859a0a9f2a8102baf..3442d39950ab2a883aa9c2507a8dadadaabab1b7 100644
--- a/Tests/UnitTests/Core/Parameters/DistributionsTest.cpp
+++ b/Tests/UnitTests/Core/Parameters/DistributionsTest.cpp
@@ -1,5 +1,4 @@
 #include "Core/Parametrization/Distributions.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/Exceptions.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/ParameterSample.h"
@@ -20,7 +19,7 @@ TEST_F(DistributionsTest, DistributionGateDefaultConstructor)
     EXPECT_EQ(1.0, P_distr_gate->getMax());
     EXPECT_EQ(1.0, P_distr_gate->probabilityDensity(1.0));
     EXPECT_EQ(0, P_distr_gate->probabilityDensity(3.0));
-    EXPECT_EQ(BornAgain::DistributionGateType, P_distr_gate->getName());
+    EXPECT_EQ("DistributionGate", P_distr_gate->getName());
 
     std::vector<double> list1 = P_distr_gate->equidistantPoints(1, 0.0);
     EXPECT_EQ(list1.size(), size_t(1));
@@ -50,7 +49,7 @@ TEST_F(DistributionsTest, DistributionGateConstructor)
     EXPECT_EQ(2.0, distr2.getMax());
     EXPECT_EQ(1.0, distr2.probabilityDensity(1));
     EXPECT_EQ(0, distr2.probabilityDensity(3));
-    EXPECT_EQ(BornAgain::DistributionGateType, distr2.getName());
+    EXPECT_EQ("DistributionGate", distr2.getName());
 
     std::vector<double> list2 = distr2.equidistantPoints(1, 0.0);
     EXPECT_EQ(list2.size(), size_t(1));
@@ -74,19 +73,19 @@ TEST_F(DistributionsTest, DistributionGateConstructor)
 TEST_F(DistributionsTest, DistributionGateParameters)
 {
     DistributionGate gate(2.0, 3.0);
-    EXPECT_EQ(gate.getMin(), gate.parameter(BornAgain::Minimum)->value());
-    EXPECT_EQ(gate.getMax(), gate.parameter(BornAgain::Maximum)->value());
+    EXPECT_EQ(gate.getMin(), gate.parameter("Min")->value());
+    EXPECT_EQ(gate.getMax(), gate.parameter("Max")->value());
 
-    EXPECT_EQ(gate.parameter(BornAgain::Minimum)->unit(), BornAgain::UnitsNone);
-    EXPECT_EQ(gate.parameter(BornAgain::Maximum)->unit(), BornAgain::UnitsNone);
+    EXPECT_EQ(gate.parameter("Min")->unit(), "");
+    EXPECT_EQ(gate.parameter("Max")->unit(), "");
 
-    gate.setUnits(BornAgain::UnitsRad);
-    EXPECT_EQ(gate.parameter(BornAgain::Minimum)->unit(), BornAgain::UnitsRad);
-    EXPECT_EQ(gate.parameter(BornAgain::Maximum)->unit(), BornAgain::UnitsRad);
+    gate.setUnits("rad");
+    EXPECT_EQ(gate.parameter("Min")->unit(), "rad");
+    EXPECT_EQ(gate.parameter("Max")->unit(), "rad");
 
-    gate.setUnits(BornAgain::UnitsNone);
-    EXPECT_EQ(gate.parameter(BornAgain::Minimum)->unit(), BornAgain::UnitsNone);
-    EXPECT_EQ(gate.parameter(BornAgain::Maximum)->unit(), BornAgain::UnitsNone);
+    gate.setUnits("");
+    EXPECT_EQ(gate.parameter("Min")->unit(), "");
+    EXPECT_EQ(gate.parameter("Max")->unit(), "");
 }
 
 TEST_F(DistributionsTest, DistributionGateClone)
@@ -107,7 +106,7 @@ TEST_F(DistributionsTest, DistributionLorentzDefaultConstructor)
     std::unique_ptr<DistributionLorentz> P_distr_lorentz{new DistributionLorentz()};
     EXPECT_EQ(0.0, P_distr_lorentz->getMean());
     EXPECT_EQ(1.0, P_distr_lorentz->getHWHM());
-    EXPECT_EQ(BornAgain::DistributionLorentzType, P_distr_lorentz->getName());
+    EXPECT_EQ("DistributionLorentz", P_distr_lorentz->getName());
     EXPECT_EQ(1 / (M_TWOPI), P_distr_lorentz->probabilityDensity(1.0));
 
     std::vector<double> list1 = P_distr_lorentz->equidistantPoints(1, 0.0);
@@ -130,7 +129,7 @@ TEST_F(DistributionsTest, DistributionLorentzConstructor)
     DistributionLorentz distr2(1.0, 1.0);
     EXPECT_EQ(1.0, distr2.getMean());
     EXPECT_EQ(1.0, distr2.getHWHM());
-    EXPECT_EQ(BornAgain::DistributionLorentzType, distr2.getName());
+    EXPECT_EQ("DistributionLorentz", distr2.getName());
     EXPECT_EQ(1.0 / M_PI, distr2.probabilityDensity(1.0));
 
     std::vector<double> list2 = distr2.equidistantPoints(1, 0.0);
@@ -144,15 +143,15 @@ TEST_F(DistributionsTest, DistributionLorentzConstructor)
 TEST_F(DistributionsTest, DistributionLorentzParameters)
 {
     DistributionLorentz lorentz(2.0, 3.0);
-    EXPECT_EQ(lorentz.getMean(), lorentz.parameter(BornAgain::Mean)->value());
-    EXPECT_EQ(lorentz.getHWHM(), lorentz.parameter(BornAgain::HWHM)->value());
+    EXPECT_EQ(lorentz.getMean(), lorentz.parameter("Mean")->value());
+    EXPECT_EQ(lorentz.getHWHM(), lorentz.parameter("HWHM")->value());
 
-    EXPECT_EQ(lorentz.parameter(BornAgain::Mean)->unit(), BornAgain::UnitsNone);
-    EXPECT_EQ(lorentz.parameter(BornAgain::HWHM)->unit(), BornAgain::UnitsNone);
+    EXPECT_EQ(lorentz.parameter("Mean")->unit(), "");
+    EXPECT_EQ(lorentz.parameter("HWHM")->unit(), "");
 
-    lorentz.setUnits(BornAgain::UnitsRad);
-    EXPECT_EQ(lorentz.parameter(BornAgain::Mean)->unit(), BornAgain::UnitsRad);
-    EXPECT_EQ(lorentz.parameter(BornAgain::HWHM)->unit(), BornAgain::UnitsRad);
+    lorentz.setUnits("rad");
+    EXPECT_EQ(lorentz.parameter("Mean")->unit(), "rad");
+    EXPECT_EQ(lorentz.parameter("HWHM")->unit(), "rad");
 }
 
 TEST_F(DistributionsTest, DistributionLorentzClone)
@@ -161,7 +160,7 @@ TEST_F(DistributionsTest, DistributionLorentzClone)
     std::unique_ptr<DistributionLorentz> P_clone{P_distr_lorentz->clone()};
     EXPECT_EQ(1.0, P_clone->getMean());
     EXPECT_EQ(2.0, P_clone->getHWHM());
-    EXPECT_EQ(BornAgain::DistributionLorentzType, P_clone->getName());
+    EXPECT_EQ("DistributionLorentz", P_clone->getName());
 }
 
 TEST_F(DistributionsTest, DistributionLorentzSamples)
@@ -206,7 +205,7 @@ TEST_F(DistributionsTest, DistributionGaussianDefaultConstructor)
     EXPECT_EQ(0.0, P_distr_gauss->getMean());
     EXPECT_EQ(1.0, P_distr_gauss->getStdDev());
     EXPECT_EQ(std::exp(-1.0 / 2.0) / std::sqrt(M_TWOPI), P_distr_gauss->probabilityDensity(1.0));
-    EXPECT_EQ(BornAgain::DistributionGaussianType, P_distr_gauss->getName());
+    EXPECT_EQ("DistributionGaussian", P_distr_gauss->getName());
 
     std::vector<double> list1 = P_distr_gauss->equidistantPoints(1, 0.0);
     EXPECT_EQ(P_distr_gauss->getMean(), list1[0]);
@@ -229,7 +228,7 @@ TEST_F(DistributionsTest, DistributionGaussianConstructor)
     EXPECT_EQ(1.0, distr2.getMean());
     EXPECT_EQ(1.0, distr2.getStdDev());
     EXPECT_EQ(1 / std::sqrt(M_TWOPI), distr2.probabilityDensity(1.0));
-    EXPECT_EQ(BornAgain::DistributionGaussianType, distr2.getName());
+    EXPECT_EQ("DistributionGaussian", distr2.getName());
 
     std::vector<double> list2 = distr2.equidistantPoints(1, 0.0);
     EXPECT_EQ(distr2.getMean(), list2[0]);
@@ -242,15 +241,15 @@ TEST_F(DistributionsTest, DistributionGaussianConstructor)
 TEST_F(DistributionsTest, DistributionGaussianParameters)
 {
     DistributionGaussian gaussian(2.0, 3.0);
-    EXPECT_EQ(gaussian.getMean(), gaussian.parameter(BornAgain::Mean)->value());
-    EXPECT_EQ(gaussian.getStdDev(), gaussian.parameter(BornAgain::StdDeviation)->value());
+    EXPECT_EQ(gaussian.getMean(), gaussian.parameter("Mean")->value());
+    EXPECT_EQ(gaussian.getStdDev(), gaussian.parameter("StdDev")->value());
 
-    EXPECT_EQ(gaussian.parameter(BornAgain::Mean)->unit(), BornAgain::UnitsNone);
-    EXPECT_EQ(gaussian.parameter(BornAgain::StdDeviation)->unit(), BornAgain::UnitsNone);
+    EXPECT_EQ(gaussian.parameter("Mean")->unit(), "");
+    EXPECT_EQ(gaussian.parameter("StdDev")->unit(), "");
 
-    gaussian.setUnits(BornAgain::UnitsRad);
-    EXPECT_EQ(gaussian.parameter(BornAgain::Mean)->unit(), BornAgain::UnitsRad);
-    EXPECT_EQ(gaussian.parameter(BornAgain::StdDeviation)->unit(), BornAgain::UnitsRad);
+    gaussian.setUnits("rad");
+    EXPECT_EQ(gaussian.parameter("Mean")->unit(), "rad");
+    EXPECT_EQ(gaussian.parameter("StdDev")->unit(), "rad");
 }
 
 TEST_F(DistributionsTest, DistributionGaussianClone)
@@ -260,7 +259,7 @@ TEST_F(DistributionsTest, DistributionGaussianClone)
     EXPECT_EQ(1.0, P_clone->getMean());
     EXPECT_EQ(1.0, P_clone->getStdDev());
     EXPECT_EQ(1 / std::sqrt(M_TWOPI), P_clone->probabilityDensity(1.0));
-    EXPECT_EQ(BornAgain::DistributionGaussianType, P_clone->getName());
+    EXPECT_EQ("DistributionGaussian", P_clone->getName());
 
     std::vector<double> list1 = P_clone->equidistantPoints(1, 0.0);
     EXPECT_EQ(P_distr_gauss->getMean(), list1[0]);
@@ -286,7 +285,7 @@ TEST_F(DistributionsTest, DistributionLogNormalConstructorWithOneParameter)
     EXPECT_EQ(1.0, distr2.getScalePar());
     EXPECT_EQ(std::exp(0.5), distr2.getMean());
     EXPECT_EQ(1.0 / std::sqrt(M_TWOPI), distr2.probabilityDensity(1.0));
-    EXPECT_EQ(BornAgain::DistributionLogNormalType, distr2.getName());
+    EXPECT_EQ("DistributionLogNormal", distr2.getName());
 
     std::vector<double> list2 = distr2.equidistantPoints(1, 0.0);
     EXPECT_EQ(distr2.getMedian(), list2[0]);
@@ -303,7 +302,7 @@ TEST_F(DistributionsTest, DistributionLogNormalConstructorWithTwoParameter)
     EXPECT_EQ(1.0, P_distr_lognormal->getScalePar());
     EXPECT_EQ(std::exp(0.5), P_distr_lognormal->getMean());
     EXPECT_EQ(1.0 / std::sqrt(M_TWOPI), P_distr_lognormal->probabilityDensity(1.0));
-    EXPECT_EQ(BornAgain::DistributionLogNormalType, P_distr_lognormal->getName());
+    EXPECT_EQ("DistributionLogNormal", P_distr_lognormal->getName());
 
     std::vector<double> list1 = P_distr_lognormal->equidistantPoints(1, 0.0);
     EXPECT_EQ(P_distr_lognormal->getMedian(), list1[0]);
@@ -316,15 +315,15 @@ TEST_F(DistributionsTest, DistributionLogNormalConstructorWithTwoParameter)
 TEST_F(DistributionsTest, DistributionLogNormalParameters)
 {
     DistributionLogNormal logNormal(2.0, 3.0);
-    EXPECT_EQ(logNormal.getMedian(), logNormal.parameter(BornAgain::Median)->value());
-    EXPECT_EQ(logNormal.getScalePar(), logNormal.parameter(BornAgain::ScaleParameter)->value());
+    EXPECT_EQ(logNormal.getMedian(), logNormal.parameter("Median")->value());
+    EXPECT_EQ(logNormal.getScalePar(), logNormal.parameter("ScaleParameter")->value());
 
-    EXPECT_EQ(logNormal.parameter(BornAgain::Median)->unit(), BornAgain::UnitsNone);
-    EXPECT_EQ(logNormal.parameter(BornAgain::ScaleParameter)->unit(), BornAgain::UnitsNone);
+    EXPECT_EQ(logNormal.parameter("Median")->unit(), "");
+    EXPECT_EQ(logNormal.parameter("ScaleParameter")->unit(), "");
 
-    logNormal.setUnits(BornAgain::UnitsRad);
-    EXPECT_EQ(logNormal.parameter(BornAgain::Median)->unit(), BornAgain::UnitsRad);
-    EXPECT_EQ(logNormal.parameter(BornAgain::ScaleParameter)->unit(), BornAgain::UnitsNone);
+    logNormal.setUnits("rad");
+    EXPECT_EQ(logNormal.parameter("Median")->unit(), "rad");
+    EXPECT_EQ(logNormal.parameter("ScaleParameter")->unit(), "");
 }
 
 TEST_F(DistributionsTest, DistributionLogNormalClone)
@@ -335,7 +334,7 @@ TEST_F(DistributionsTest, DistributionLogNormalClone)
     EXPECT_EQ(1.0, P_distr_lognormal->getScalePar());
     EXPECT_EQ(std::exp(0.5), P_distr_lognormal->getMean());
     EXPECT_EQ(1 / std::sqrt(M_TWOPI), P_distr_lognormal->probabilityDensity(1.0));
-    EXPECT_EQ(BornAgain::DistributionLogNormalType, P_distr_lognormal->getName());
+    EXPECT_EQ("DistributionLogNormal", P_distr_lognormal->getName());
 
     std::vector<double> list1 = P_distr_lognormal->equidistantPoints(1, 0.0);
     EXPECT_EQ(P_distr_lognormal->getMedian(), list1[0]);
@@ -354,7 +353,7 @@ TEST_F(DistributionsTest, DistributionCosineDefaultConstructor)
     EXPECT_EQ(1.0, P_distr_cosine->getSigma());
     EXPECT_DOUBLE_EQ((1.0 + std::cos(1.0)) / (M_TWOPI), P_distr_cosine->probabilityDensity(1.0));
     EXPECT_EQ(0, P_distr_cosine->probabilityDensity(100.0));
-    EXPECT_EQ(BornAgain::DistributionCosineType, P_distr_cosine->getName());
+    EXPECT_EQ("DistributionCosine", P_distr_cosine->getName());
 
     std::vector<double> list1 = P_distr_cosine->equidistantPoints(1, 0.0);
     EXPECT_EQ(P_distr_cosine->getMean(), list1[0]);
@@ -378,7 +377,7 @@ TEST_F(DistributionsTest, DistributionCosineConstructor)
     EXPECT_EQ(1.0, distr2.getSigma());
     EXPECT_EQ(2.0 / (M_TWOPI), distr2.probabilityDensity(1.0));
     EXPECT_EQ(0, distr2.probabilityDensity(100.0));
-    EXPECT_EQ(BornAgain::DistributionCosineType, distr2.getName());
+    EXPECT_EQ("DistributionCosine", distr2.getName());
 
     std::vector<double> list2 = distr2.equidistantPoints(1, 0.0);
     EXPECT_EQ(distr2.getMean(), list2[0]);
@@ -391,15 +390,15 @@ TEST_F(DistributionsTest, DistributionCosineConstructor)
 TEST_F(DistributionsTest, DistributionCosineParameters)
 {
     DistributionCosine cosine(2.0, 3.0);
-    EXPECT_EQ(cosine.getMean(), cosine.parameter(BornAgain::Mean)->value());
-    EXPECT_EQ(cosine.getSigma(), cosine.parameter(BornAgain::Sigma)->value());
+    EXPECT_EQ(cosine.getMean(), cosine.parameter("Mean")->value());
+    EXPECT_EQ(cosine.getSigma(), cosine.parameter("Sigma")->value());
 
-    EXPECT_EQ(cosine.parameter(BornAgain::Mean)->unit(), BornAgain::UnitsNone);
-    EXPECT_EQ(cosine.parameter(BornAgain::Sigma)->unit(), BornAgain::UnitsNone);
+    EXPECT_EQ(cosine.parameter("Mean")->unit(), "");
+    EXPECT_EQ(cosine.parameter("Sigma")->unit(), "");
 
-    cosine.setUnits(BornAgain::UnitsRad);
-    EXPECT_EQ(cosine.parameter(BornAgain::Mean)->unit(), BornAgain::UnitsRad);
-    EXPECT_EQ(cosine.parameter(BornAgain::Sigma)->unit(), BornAgain::UnitsRad);
+    cosine.setUnits("rad");
+    EXPECT_EQ(cosine.parameter("Mean")->unit(), "rad");
+    EXPECT_EQ(cosine.parameter("Sigma")->unit(), "rad");
 }
 
 TEST_F(DistributionsTest, DistributionCosineClone)
@@ -410,7 +409,7 @@ TEST_F(DistributionsTest, DistributionCosineClone)
     EXPECT_EQ(1.0, P_clone->getSigma());
     EXPECT_EQ(2.0 / (M_TWOPI), P_clone->probabilityDensity(1.0));
     EXPECT_EQ(0, P_distr_cosine->probabilityDensity(100.0));
-    EXPECT_EQ(BornAgain::DistributionCosineType, P_clone->getName());
+    EXPECT_EQ("DistributionCosine", P_clone->getName());
 
     std::vector<double> list1 = P_clone->equidistantPoints(1, 0.0);
     EXPECT_EQ(P_clone->getMean(), list1[0]);
diff --git a/Tests/UnitTests/Core/Parameters/FTDistributionsTest.cpp b/Tests/UnitTests/Core/Parameters/FTDistributionsTest.cpp
index 25913f4932bbdbdaf18f53602b8ebbfdfd653994..c6a999843f24a5701b82f58dbc52e0da82888d32 100644
--- a/Tests/UnitTests/Core/Parameters/FTDistributionsTest.cpp
+++ b/Tests/UnitTests/Core/Parameters/FTDistributionsTest.cpp
@@ -1,6 +1,5 @@
 #include "Core/Aggregate/FTDistributions1D.h"
 #include "Core/Aggregate/FTDistributions2D.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/RealParameter.h"
 #include "Tests/UnitTests/utilities/google_test.h"
@@ -16,13 +15,13 @@ TEST_F(FTDistributionsTest, FTDistribution1DCauchyConstructor)
 {
     std::unique_ptr<IFTDistribution1D> P_1d_cauchy{new FTDistribution1DCauchy(1.0)};
     EXPECT_EQ(1.0, P_1d_cauchy->omega());
-    EXPECT_EQ(BornAgain::FTDistribution1DCauchyType, P_1d_cauchy->getName());
+    EXPECT_EQ("FTDistribution1DCauchy", P_1d_cauchy->getName());
     EXPECT_NEAR(0.961538, P_1d_cauchy->evaluate(0.2), 0.000001);
 
     P_1d_cauchy->setOmega(3.0);
     EXPECT_EQ(3.0, P_1d_cauchy->omega());
 
-    P_1d_cauchy->setParameterValue(BornAgain::Omega, -7.0);
+    P_1d_cauchy->setParameterValue("Omega", -7.0);
     EXPECT_EQ(-7.0, P_1d_cauchy->omega());
 }
 
@@ -32,7 +31,7 @@ TEST_F(FTDistributionsTest, FTDistribution1DCauchyClone)
     std::unique_ptr<IFTDistribution1D> P_clone{P_1d_cauchy->clone()};
 
     EXPECT_EQ(5.0, P_clone->omega());
-    EXPECT_EQ(BornAgain::FTDistribution1DCauchyType, P_clone->getName());
+    EXPECT_EQ("FTDistribution1DCauchy", P_clone->getName());
     EXPECT_NEAR(0.5, P_clone->evaluate(0.2), 0.000001);
 }
 
@@ -40,7 +39,7 @@ TEST_F(FTDistributionsTest, FTDistribution1DGaussConstructor)
 {
     std::unique_ptr<IFTDistribution1D> P_1d_gauss{new FTDistribution1DGauss(1.0)};
     EXPECT_EQ(1.0, P_1d_gauss->omega());
-    EXPECT_EQ(BornAgain::FTDistribution1DGaussType, P_1d_gauss->getName());
+    EXPECT_EQ("FTDistribution1DGauss", P_1d_gauss->getName());
     EXPECT_NEAR(0.9801987, P_1d_gauss->evaluate(0.2), 0.000001);
 
     P_1d_gauss->setOmega(3.0);
@@ -53,7 +52,7 @@ TEST_F(FTDistributionsTest, FTDistribution1DGaussClone)
     std::unique_ptr<IFTDistribution1D> P_clone{P_1d_gauss->clone()};
 
     EXPECT_EQ(5.0, P_clone->omega());
-    EXPECT_EQ(BornAgain::FTDistribution1DGaussType, P_clone->getName());
+    EXPECT_EQ("FTDistribution1DGauss", P_clone->getName());
     EXPECT_NEAR(0.6065307, P_clone->evaluate(0.2), 0.000001);
 }
 
@@ -61,7 +60,7 @@ TEST_F(FTDistributionsTest, FTDistribution1DGateConstructor)
 {
     std::unique_ptr<IFTDistribution1D> P_1d_gate{new FTDistribution1DGate(1.0)};
     EXPECT_EQ(1.0, P_1d_gate->omega());
-    EXPECT_EQ(BornAgain::FTDistribution1DGateType, P_1d_gate->getName());
+    EXPECT_EQ("FTDistribution1DGate", P_1d_gate->getName());
     EXPECT_NEAR(0.993347, P_1d_gate->evaluate(0.2), 0.000001);
 
     P_1d_gate->setOmega(3.0);
@@ -74,7 +73,7 @@ TEST_F(FTDistributionsTest, FTDistribution1DGateClone)
     std::unique_ptr<IFTDistribution1D> P_clone{P_1d_gate->clone()};
 
     EXPECT_EQ(5.0, P_clone->omega());
-    EXPECT_EQ(BornAgain::FTDistribution1DGateType, P_clone->getName());
+    EXPECT_EQ("FTDistribution1DGate", P_clone->getName());
     EXPECT_NEAR(0.841471, P_clone->evaluate(0.2), 0.000001);
 }
 
@@ -82,7 +81,7 @@ TEST_F(FTDistributionsTest, FTDistribution1DTriangleConstructor)
 {
     std::unique_ptr<IFTDistribution1D> P_1d_triangle{new FTDistribution1DTriangle(1.0)};
     EXPECT_EQ(1.0, P_1d_triangle->omega());
-    EXPECT_EQ(BornAgain::FTDistribution1DTriangleType, P_1d_triangle->getName());
+    EXPECT_EQ("FTDistribution1DTriangle", P_1d_triangle->getName());
     EXPECT_NEAR(0.996671, P_1d_triangle->evaluate(0.2), 0.000001);
 
     P_1d_triangle->setOmega(3.0);
@@ -95,7 +94,7 @@ TEST_F(FTDistributionsTest, FTDistribution1DTriangleClone)
     std::unique_ptr<IFTDistribution1D> P_clone{P_1d_triangle->clone()};
 
     EXPECT_EQ(5.0, P_clone->omega());
-    EXPECT_EQ(BornAgain::FTDistribution1DTriangleType, P_clone->getName());
+    EXPECT_EQ("FTDistribution1DTriangle", P_clone->getName());
     EXPECT_NEAR(0.919395, P_clone->evaluate(0.2), 0.000001);
 }
 
@@ -103,7 +102,7 @@ TEST_F(FTDistributionsTest, FTDistribution1DCosineConstructor)
 {
     std::unique_ptr<IFTDistribution1D> P_1d_cosine{new FTDistribution1DCosine(1.0)};
     EXPECT_EQ(1.0, P_1d_cosine->omega());
-    EXPECT_EQ(BornAgain::FTDistribution1DCosineType, P_1d_cosine->getName());
+    EXPECT_EQ("FTDistribution1DCosine", P_1d_cosine->getName());
     EXPECT_NEAR(0.997389, P_1d_cosine->evaluate(0.2), 0.000001);
 
     P_1d_cosine->setOmega(3.0);
@@ -116,7 +115,7 @@ TEST_F(FTDistributionsTest, FTDistribution1DCosineClone)
     std::unique_ptr<IFTDistribution1D> P_clone{P_1d_cosine->clone()};
 
     EXPECT_EQ(5.0, P_clone->omega());
-    EXPECT_EQ(BornAgain::FTDistribution1DCosineType, P_clone->getName());
+    EXPECT_EQ("FTDistribution1DCosine", P_clone->getName());
     EXPECT_NEAR(0.936342, P_clone->evaluate(0.2), 0.000001);
 }
 
@@ -124,7 +123,7 @@ TEST_F(FTDistributionsTest, FTDistribution1DVoigtConstructor)
 {
     std::unique_ptr<IFTDistribution1D> P_1d_voigt{new FTDistribution1DVoigt(1.0, 1.7)};
     EXPECT_EQ(1.0, P_1d_voigt->omega());
-    EXPECT_EQ(BornAgain::FTDistribution1DVoigtType, P_1d_voigt->getName());
+    EXPECT_EQ("FTDistribution1DVoigt", P_1d_voigt->getName());
     EXPECT_NEAR(0.993261, P_1d_voigt->evaluate(0.2), 0.000001);
 
     P_1d_voigt->setOmega(3.0);
@@ -137,7 +136,7 @@ TEST_F(FTDistributionsTest, FTDistribution1DVoigtClone)
     std::unique_ptr<IFTDistribution1D> P_clone{P_1d_voigt->clone()};
 
     EXPECT_EQ(5.0, P_clone->omega());
-    EXPECT_EQ(BornAgain::FTDistribution1DVoigtType, P_clone->getName());
+    EXPECT_EQ("FTDistribution1DVoigt", P_clone->getName());
     EXPECT_NEAR(-0.096572, P_clone->evaluate(0.2), 0.000001);
 }
 
@@ -148,19 +147,19 @@ TEST_F(FTDistributionsTest, FTDistribution2DCauchyConstructor)
     std::unique_ptr<IFTDistribution2D> P_2d_cauchy{new FTDistribution2DCauchy(1.0, 2.0)};
     EXPECT_EQ(1.0, P_2d_cauchy->omegaX());
     EXPECT_EQ(2.0, P_2d_cauchy->omegaY());
-    EXPECT_EQ(2.0, P_2d_cauchy->parameter(BornAgain::OmegaY)->value());
-    EXPECT_EQ(0, P_2d_cauchy->parameter(BornAgain::Gamma)->value());
+    EXPECT_EQ(2.0, P_2d_cauchy->parameter("OmegaY")->value());
+    EXPECT_EQ(0, P_2d_cauchy->parameter("Gamma")->value());
     EXPECT_EQ(M_PI / 2.0, P_2d_cauchy->delta());
     EXPECT_EQ(0.0, P_2d_cauchy->gamma());
-    EXPECT_EQ(BornAgain::FTDistribution2DCauchyType, P_2d_cauchy->getName());
+    EXPECT_EQ("FTDistribution2DCauchy", P_2d_cauchy->getName());
     EXPECT_NEAR(0.343206, P_2d_cauchy->evaluate(0.2, 0.5), 0.000001);
 
     P_2d_cauchy->setGamma(3.0);
     EXPECT_EQ(3.0, P_2d_cauchy->gamma());
-    EXPECT_EQ(3.0, P_2d_cauchy->parameter(BornAgain::Gamma)->value());
+    EXPECT_EQ(3.0, P_2d_cauchy->parameter("Gamma")->value());
 
-    P_2d_cauchy->setParameterValue(BornAgain::OmegaX, 7.0);
-    P_2d_cauchy->setParameterValue(BornAgain::OmegaY, 5.3);
+    P_2d_cauchy->setParameterValue("OmegaX", 7.0);
+    P_2d_cauchy->setParameterValue("OmegaY", 5.3);
     EXPECT_EQ(7.0, P_2d_cauchy->omegaX());
     EXPECT_EQ(5.3, P_2d_cauchy->omegaY());
 }
@@ -174,7 +173,7 @@ TEST_F(FTDistributionsTest, FTDistribution2DCauchyClone)
     EXPECT_EQ(2.3, P_clone->omegaY());
     EXPECT_EQ(M_PI / 2.0, P_clone->delta());
     EXPECT_EQ(0.0, P_clone->gamma());
-    EXPECT_EQ(BornAgain::FTDistribution2DCauchyType, P_clone->getName());
+    EXPECT_EQ("FTDistribution2DCauchy", P_clone->getName());
     EXPECT_NEAR(0.165121078, P_clone->evaluate(0.2, 0.5), 0.000001);
 }
 
@@ -185,7 +184,7 @@ TEST_F(FTDistributionsTest, FTDistribution2DGaussConstructor)
     EXPECT_EQ(2.0, P_2d_gauss->omegaY());
     EXPECT_EQ(M_PI / 2.0, P_2d_gauss->delta());
     EXPECT_EQ(0.0, P_2d_gauss->gamma());
-    EXPECT_EQ(BornAgain::FTDistribution2DGaussType, P_2d_gauss->getName());
+    EXPECT_EQ("FTDistribution2DGauss", P_2d_gauss->getName());
     EXPECT_NEAR(0.5945205, P_2d_gauss->evaluate(0.2, 0.5), 0.000001);
 
     P_2d_gauss->setGamma(3.0);
@@ -201,7 +200,7 @@ TEST_F(FTDistributionsTest, FTDistribution2DGaussClone)
     EXPECT_EQ(2.3, P_clone->omegaY());
     EXPECT_EQ(M_PI / 2.0, P_clone->delta());
     EXPECT_EQ(0.0, P_clone->gamma());
-    EXPECT_EQ(BornAgain::FTDistribution2DGaussType, P_clone->getName());
+    EXPECT_EQ("FTDistribution2DGauss", P_clone->getName());
     EXPECT_NEAR(0.3130945, P_clone->evaluate(0.2, 0.5), 0.000001);
 }
 
@@ -212,7 +211,7 @@ TEST_F(FTDistributionsTest, FTDistribution2DGateConstructor)
     EXPECT_EQ(2.0, P_2d_gate->omegaY());
     EXPECT_EQ(M_PI / 2.0, P_2d_gate->delta());
     EXPECT_EQ(0.0, P_2d_gate->gamma());
-    EXPECT_EQ(BornAgain::FTDistribution2DGateType, P_2d_gate->getName());
+    EXPECT_EQ("FTDistribution2DGate", P_2d_gate->getName());
     EXPECT_NEAR(0.875513, P_2d_gate->evaluate(0.2, 0.5), 0.000001);
 
     P_2d_gate->setGamma(3.0);
@@ -228,7 +227,7 @@ TEST_F(FTDistributionsTest, FTDistribution2DGateClone)
     EXPECT_EQ(2.3, P_clone->omegaY());
     EXPECT_EQ(M_PI / 2.0, P_clone->delta());
     EXPECT_EQ(0.0, P_clone->gamma());
-    EXPECT_EQ(BornAgain::FTDistribution2DGateType, P_clone->getName());
+    EXPECT_EQ("FTDistribution2DGate", P_clone->getName());
     EXPECT_NEAR(0.736461, P_clone->evaluate(0.2, 0.5), 0.000001);
 }
 
@@ -239,7 +238,7 @@ TEST_F(FTDistributionsTest, FTDistribution2DConeConstructor)
     EXPECT_EQ(2.0, P_2d_cone->omegaY());
     EXPECT_EQ(M_PI / 2.0, P_2d_cone->delta());
     EXPECT_EQ(0.0, P_2d_cone->gamma());
-    EXPECT_EQ(BornAgain::FTDistribution2DConeType, P_2d_cone->getName());
+    EXPECT_EQ("FTDistribution2DCone", P_2d_cone->getName());
     EXPECT_NEAR(0.924374, P_2d_cone->evaluate(0.2, 0.5), 0.000001);
 
     P_2d_cone->setGamma(3.0);
@@ -255,7 +254,7 @@ TEST_F(FTDistributionsTest, FTDistribution2DConeClone)
     EXPECT_EQ(2.3, P_clone->omegaY());
     EXPECT_EQ(M_PI / 2.0, P_clone->delta());
     EXPECT_EQ(0.0, P_clone->gamma());
-    EXPECT_EQ(BornAgain::FTDistribution2DConeType, P_clone->getName());
+    EXPECT_EQ("FTDistribution2DCone", P_clone->getName());
     EXPECT_NEAR(0.837410, P_clone->evaluate(0.2, 0.5), 0.000001);
 }
 
@@ -266,7 +265,7 @@ TEST_F(FTDistributionsTest, FTDistribution2DVoigtConstructor)
     EXPECT_EQ(2.0, P_2d_voigt->omegaY());
     EXPECT_EQ(M_PI / 2.0, P_2d_voigt->delta());
     EXPECT_EQ(0.0, P_2d_voigt->gamma());
-    EXPECT_EQ(BornAgain::FTDistribution2DVoigtType, P_2d_voigt->getName());
+    EXPECT_EQ("FTDistribution2DVoigt", P_2d_voigt->getName());
     EXPECT_NEAR(1.2228072, P_2d_voigt->evaluate(0.2, 0.5), 0.000001);
 
     P_2d_voigt->setGamma(3.0);
@@ -282,6 +281,6 @@ TEST_F(FTDistributionsTest, FTDistribution2DVoigtClone)
     EXPECT_EQ(2.3, P_clone->omegaY());
     EXPECT_EQ(M_PI / 2.0, P_clone->delta());
     EXPECT_EQ(0.0, P_clone->gamma());
-    EXPECT_EQ(BornAgain::FTDistribution2DVoigtType, P_clone->getName());
+    EXPECT_EQ("FTDistribution2DVoigt", P_clone->getName());
     EXPECT_NEAR(-0.6635305, P_clone->evaluate(0.2, 0.5), 0.000001);
 }
diff --git a/Tests/UnitTests/Core/Sample/CrystalTest.cpp b/Tests/UnitTests/Core/Sample/CrystalTest.cpp
index 28a1b699b68e921aed0dfc5aea1a3027f96fe626..bf741abbc0499373e7e025080a210937c6c6bd71 100644
--- a/Tests/UnitTests/Core/Sample/CrystalTest.cpp
+++ b/Tests/UnitTests/Core/Sample/CrystalTest.cpp
@@ -1,5 +1,4 @@
 #include "Core/Particle/Crystal.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Lattice/Lattice.h"
 #include "Core/Particle/ParticleComposition.h"
 #include "Tests/UnitTests/utilities/google_test.h"
@@ -16,6 +15,6 @@ TEST_F(CrystalTest, getChildren)
 
     std::vector<const INode*> children = crystal.getChildren();
     ASSERT_EQ(children.size(), 2u);
-    EXPECT_EQ(children.at(0)->getName(), BornAgain::ParticleCompositionType);
-    EXPECT_EQ(children.at(1)->getName(), BornAgain::LatticeType);
+    EXPECT_EQ(children.at(0)->getName(), "ParticleComposition");
+    EXPECT_EQ(children.at(1)->getName(), "Lattice");
 }
diff --git a/Tests/UnitTests/Core/Sample/FormFactorBasicTest.cpp b/Tests/UnitTests/Core/Sample/FormFactorBasicTest.cpp
index 0098765b369d9e158ae6c0189de14be8c1bbbf13..ef23f5d62bcfcf4fb2a6b56d476314b012951bf8 100644
--- a/Tests/UnitTests/Core/Sample/FormFactorBasicTest.cpp
+++ b/Tests/UnitTests/Core/Sample/FormFactorBasicTest.cpp
@@ -1,4 +1,3 @@
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Parametrization/Units.h"
 #include "Core/Scattering/IFormFactorBorn.h"
@@ -79,7 +78,7 @@ TEST_F(FormFactorBasicTest, AnisoPyramid)
 
     FormFactorAnisoPyramid particle(length, width, height, alpha);
 
-    EXPECT_EQ(BornAgain::FFAnisoPyramidType, particle.getName());
+    EXPECT_EQ("AnisoPyramid", particle.getName());
     EXPECT_DOUBLE_EQ(volume, particle.volume());
     EXPECT_EQ(length, particle.getLength());
     EXPECT_EQ(width, particle.getWidth());
@@ -101,7 +100,7 @@ TEST_F(FormFactorBasicTest, HemiEllipsoid)
 
     FormFactorHemiEllipsoid particle(radiusx, radiusy, height);
 
-    EXPECT_EQ(BornAgain::FFHemiEllipsoidType, particle.getName());
+    EXPECT_EQ("HemiEllipsoid", particle.getName());
     EXPECT_EQ(radiusx, particle.getRadiusX());
     EXPECT_EQ(radiusy, particle.getRadiusY());
     EXPECT_EQ(height, particle.getHeight());
@@ -119,7 +118,7 @@ TEST_F(FormFactorBasicTest, Box)
 
     FormFactorBox particle(length, width, height);
 
-    EXPECT_EQ(BornAgain::FFBoxType, particle.getName());
+    EXPECT_EQ("Box", particle.getName());
     EXPECT_EQ(width, particle.getWidth());
     EXPECT_EQ(height, particle.getHeight());
     EXPECT_EQ(3., particle.radialExtension());
@@ -149,7 +148,7 @@ TEST_F(FormFactorBasicTest, Cone)
 
     FormFactorCone particle(radius, height, alpha);
 
-    EXPECT_EQ(BornAgain::FFConeType, particle.getName());
+    EXPECT_EQ("Cone", particle.getName());
     EXPECT_EQ(radius, particle.getRadius());
     EXPECT_EQ(height, particle.getHeight());
     EXPECT_EQ(alpha, particle.getAlpha());
@@ -172,7 +171,7 @@ TEST_F(FormFactorBasicTest, Cone6)
 
     FormFactorCone6 particle(base_edge, height, alpha);
 
-    EXPECT_EQ(BornAgain::FFCone6Type, particle.getName());
+    EXPECT_EQ("Cone6", particle.getName());
     EXPECT_EQ(base_edge, particle.getBaseEdge());
     EXPECT_EQ(height, particle.getHeight());
     EXPECT_EQ(alpha, particle.getAlpha());
@@ -197,7 +196,7 @@ TEST_F(FormFactorBasicTest, Cuboctahedron)
 
     FormFactorCuboctahedron particle(length, height, height_ratio, alpha);
 
-    EXPECT_EQ(BornAgain::FFCuboctahedronType, particle.getName());
+    EXPECT_EQ("Cuboctahedron", particle.getName());
     EXPECT_EQ(height, particle.getHeight());
     EXPECT_EQ(length, particle.getLength());
     EXPECT_EQ(height_ratio, particle.getHeightRatio());
@@ -217,7 +216,7 @@ TEST_F(FormFactorBasicTest, Cylinder)
 
     FormFactorCylinder particle(radius, height);
 
-    EXPECT_EQ(BornAgain::FFCylinderType, particle.getName());
+    EXPECT_EQ("Cylinder", particle.getName());
     EXPECT_EQ(height, particle.getHeight());
     EXPECT_EQ(radius, particle.getRadius());
     EXPECT_DOUBLE_EQ(volume, particle.volume());
@@ -248,7 +247,7 @@ TEST_F(FormFactorBasicTest, Dodecahedron)
     double volume = (15 + 7 * sqrt(5)) / 4 * pow(edge, 3);
 
     FormFactorDodecahedron particle(edge);
-    EXPECT_EQ(BornAgain::FFDodecahedronType, particle.getName());
+    EXPECT_EQ("Dodecahedron", particle.getName());
     EXPECT_EQ(edge, particle.getEdge());
     EXPECT_DOUBLE_EQ(volume, particle.volume());
     EXPECT_EQ(0., particle.bottomZ(RotationZ()));
@@ -267,7 +266,7 @@ TEST_F(FormFactorBasicTest, EllipsoidalCylinder)
 
     FormFactorEllipsoidalCylinder particle(radiusx, radiusy, height);
 
-    EXPECT_EQ(BornAgain::FFEllipsoidalCylinderType, particle.getName());
+    EXPECT_EQ("EllipsoidalCylinder", particle.getName());
     EXPECT_EQ(height, particle.getHeight());
     EXPECT_EQ(radiusx, particle.getRadiusX());
     EXPECT_EQ(radiusy, particle.getRadiusY());
@@ -301,7 +300,7 @@ TEST_F(FormFactorBasicTest, FullSphere)
     double volume = 4. / 3. * M_PI * radius * radius * radius;
 
     FormFactorFullSphere particle(radius);
-    EXPECT_EQ(BornAgain::FFFullSphereType, particle.getName());
+    EXPECT_EQ("FullSphere", particle.getName());
     EXPECT_EQ(radius, particle.getRadius());
     EXPECT_DOUBLE_EQ(volume, particle.volume());
     EXPECT_EQ(0., particle.bottomZ(RotationZ()));
@@ -318,7 +317,7 @@ TEST_F(FormFactorBasicTest, FullSpheroid)
 
     FormFactorFullSpheroid particle(radius, height);
 
-    EXPECT_EQ(BornAgain::FFFullSpheroidType, particle.getName());
+    EXPECT_EQ("FullSpheroid", particle.getName());
     EXPECT_EQ(radius, particle.getRadius());
     EXPECT_EQ(height, particle.getHeight());
     EXPECT_DOUBLE_EQ(volume, particle.volume());
@@ -335,7 +334,7 @@ TEST_F(FormFactorBasicTest, Icosahedron)
 
     FormFactorIcosahedron particle(edge);
 
-    EXPECT_EQ(BornAgain::FFIcosahedronType, particle.getName());
+    EXPECT_EQ("Icosahedron", particle.getName());
     EXPECT_EQ(edge, particle.getEdge());
     EXPECT_DOUBLE_EQ(volume, particle.volume());
     EXPECT_EQ(0., particle.bottomZ(RotationZ()));
@@ -353,7 +352,7 @@ TEST_F(FormFactorBasicTest, Prism3)
 
     FormFactorPrism3 particle(base_edge, height);
 
-    EXPECT_EQ(BornAgain::FFPrism3Type, particle.getName());
+    EXPECT_EQ("Prism3", particle.getName());
     EXPECT_EQ(height, particle.getHeight());
     EXPECT_EQ(base_edge, particle.getBaseEdge());
     EXPECT_DOUBLE_EQ(volume, particle.volume());
@@ -371,7 +370,7 @@ TEST_F(FormFactorBasicTest, Prism6)
 
     FormFactorPrism6 particle(base_edge, height);
 
-    EXPECT_EQ(BornAgain::FFPrism6Type, particle.getName());
+    EXPECT_EQ("Prism6", particle.getName());
     EXPECT_EQ(height, particle.getHeight());
     EXPECT_EQ(base_edge, particle.getBaseEdge());
     EXPECT_DOUBLE_EQ(volume, particle.volume());
@@ -393,7 +392,7 @@ TEST_F(FormFactorBasicTest, Pyramid)
 
     FormFactorPyramid particle(base_edge, height, alpha);
 
-    EXPECT_EQ(BornAgain::FFPyramidType, particle.getName());
+    EXPECT_EQ("Pyramid", particle.getName());
     EXPECT_EQ(height, particle.getHeight());
     EXPECT_EQ(base_edge, particle.getBaseEdge());
     EXPECT_EQ(alpha, particle.getAlpha());
@@ -414,7 +413,7 @@ TEST_F(FormFactorBasicTest, TruncatedSphere)
 
     FormFactorTruncatedSphere particle(radius, height);
 
-    EXPECT_EQ(BornAgain::FFTruncatedSphereType, particle.getName());
+    EXPECT_EQ("TruncatedSphere", particle.getName());
     EXPECT_EQ(height, particle.getHeight());
     EXPECT_DOUBLE_EQ(volume, particle.volume());
     EXPECT_EQ(0., particle.bottomZ(RotationZ()));
@@ -433,7 +432,7 @@ TEST_F(FormFactorBasicTest, TruncatedSpheroid)
 
     FormFactorTruncatedSpheroid particle(radius, height, flattening);
 
-    EXPECT_EQ(BornAgain::FFTruncatedSpheroidType, particle.getName());
+    EXPECT_EQ("TruncatedSpheroid", particle.getName());
     EXPECT_EQ(height, particle.getHeight());
     EXPECT_EQ(radius, particle.getRadius());
     EXPECT_DOUBLE_EQ(volume, particle.volume());
@@ -455,7 +454,7 @@ TEST_F(FormFactorBasicTest, Tetrahedron)
 
     FormFactorTetrahedron particle(base_edge, height, alpha);
 
-    EXPECT_EQ(BornAgain::FFTetrahedronType, particle.getName());
+    EXPECT_EQ("Tetrahedron", particle.getName());
     EXPECT_EQ(height, particle.getHeight());
     EXPECT_EQ(base_edge, particle.getBaseEdge());
     EXPECT_EQ(alpha, particle.getAlpha());
@@ -473,7 +472,7 @@ TEST_F(FormFactorBasicTest, Ripple1Box)
 
     FormFactorRipple1Box particle(length, width, height);
 
-    EXPECT_EQ(BornAgain::FFRipple1BoxType, particle.getName());
+    EXPECT_EQ("Ripple1Box", particle.getName());
     EXPECT_EQ(height, particle.getHeight());
     EXPECT_EQ(width, particle.getWidth());
     EXPECT_EQ(length, particle.getLength());
@@ -492,7 +491,7 @@ TEST_F(FormFactorBasicTest, TruncatedCube)
 
     FormFactorTruncatedCube particle(length, t);
 
-    EXPECT_EQ(BornAgain::FFTruncatedCubeType, particle.getName());
+    EXPECT_EQ("TruncatedCube", particle.getName());
     EXPECT_EQ(length, particle.getLength());
     EXPECT_DOUBLE_EQ(t, particle.getRemovedLength());
     EXPECT_DOUBLE_EQ(particle.volume(), volume);
@@ -512,7 +511,7 @@ TEST_F(FormFactorBasicTest, Ripple2Box)
 
     FormFactorRipple2Box particle(length, width, height, d);
 
-    EXPECT_EQ(BornAgain::FFRipple2BoxType, particle.getName());
+    EXPECT_EQ("Ripple2Box", particle.getName());
     EXPECT_EQ(height, particle.getHeight());
     EXPECT_DOUBLE_EQ(volume, particle.volume());
     EXPECT_EQ(0., particle.bottomZ(RotationZ()));
diff --git a/Tests/UnitTests/Core/Sample/Lattice2DTest.cpp b/Tests/UnitTests/Core/Sample/Lattice2DTest.cpp
index 3a9e805a273cb517cde5b1daca42da2cb916da8f..6aea2d61d111b55cd36b03dea0560f8efcb23f65 100644
--- a/Tests/UnitTests/Core/Sample/Lattice2DTest.cpp
+++ b/Tests/UnitTests/Core/Sample/Lattice2DTest.cpp
@@ -1,5 +1,4 @@
 #include "Core/Lattice/Lattice2D.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Tests/UnitTests/utilities/google_test.h"
 
 class Lattice2DTest : public ::testing::Test
@@ -17,13 +16,13 @@ TEST_F(Lattice2DTest, basicLattice)
 
     const double new_value(42.0);
 
-    lattice.setParameterValue(BornAgain::LatticeLength1, new_value);
+    lattice.setParameterValue("LatticeLength1", new_value);
     EXPECT_EQ(lattice.length1(), new_value);
-    lattice.setParameterValue(BornAgain::LatticeLength2, new_value);
+    lattice.setParameterValue("LatticeLength2", new_value);
     EXPECT_EQ(lattice.length2(), new_value);
-    lattice.setParameterValue(BornAgain::LatticeAngle, new_value);
+    lattice.setParameterValue("Alpha", new_value);
     EXPECT_EQ(lattice.latticeAngle(), new_value);
-    lattice.setParameterValue(BornAgain::Xi, new_value);
+    lattice.setParameterValue("Xi", new_value);
     EXPECT_EQ(lattice.rotationAngle(), new_value);
 }
 
@@ -37,7 +36,7 @@ TEST_F(Lattice2DTest, basicLatticeClone)
     EXPECT_EQ(clone->length2(), length2);
     EXPECT_EQ(clone->latticeAngle(), angle);
     EXPECT_EQ(clone->rotationAngle(), xi);
-    EXPECT_EQ(clone->getName(), BornAgain::BasicLatticeType);
+    EXPECT_EQ(clone->getName(), "BasicLattice");
 }
 
 TEST_F(Lattice2DTest, squareLatticeClone)
@@ -50,14 +49,14 @@ TEST_F(Lattice2DTest, squareLatticeClone)
     EXPECT_EQ(clone->length2(), length);
     EXPECT_DOUBLE_EQ(clone->latticeAngle(), M_PI / 2.0);
     EXPECT_EQ(clone->rotationAngle(), xi);
-    EXPECT_EQ(clone->getName(), BornAgain::SquareLatticeType);
+    EXPECT_EQ(clone->getName(), "SquareLattice");
 
     // registered parameters of clone
     const double new_value(42.0);
-    clone->setParameterValue(BornAgain::LatticeLength, new_value);
+    clone->setParameterValue("LatticeLength", new_value);
     EXPECT_EQ(clone->length1(), new_value);
     EXPECT_EQ(clone->length2(), new_value);
-    clone->setParameterValue(BornAgain::Xi, new_value);
+    clone->setParameterValue("Xi", new_value);
     EXPECT_EQ(clone->rotationAngle(), new_value);
 }
 
@@ -71,14 +70,14 @@ TEST_F(Lattice2DTest, hexagonalLatticeClone)
     EXPECT_EQ(clone->length2(), length);
     EXPECT_DOUBLE_EQ(clone->latticeAngle(), 2. * M_PI / 3.0);
     EXPECT_EQ(clone->rotationAngle(), xi);
-    EXPECT_EQ(clone->getName(), BornAgain::HexagonalLatticeType);
+    EXPECT_EQ(clone->getName(), "HexagonalLattice");
 
     // registered parameters of clone
     const double new_value(42.0);
-    clone->setParameterValue(BornAgain::LatticeLength, new_value);
+    clone->setParameterValue("LatticeLength", new_value);
     EXPECT_EQ(clone->length1(), new_value);
     EXPECT_EQ(clone->length2(), new_value);
-    clone->setParameterValue(BornAgain::Xi, new_value);
+    clone->setParameterValue("Xi", new_value);
     EXPECT_EQ(clone->rotationAngle(), new_value);
 }
 
@@ -99,6 +98,6 @@ TEST_F(Lattice2DTest, onChange)
 
     parent.registerChild(&lattice);
     EXPECT_FALSE(parent.m_changed);
-    lattice.setParameterValue(BornAgain::LatticeLength1, 42.0);
+    lattice.setParameterValue("LatticeLength1", 42.0);
     EXPECT_TRUE(parent.m_changed);
 }
diff --git a/Tests/UnitTests/Core/Sample/LatticeTest.cpp b/Tests/UnitTests/Core/Sample/LatticeTest.cpp
index d040e8ed802a7650af1697c5b83cfefc0b565149..20f302d48991bb1b0de3697edab8a12975a8f994 100644
--- a/Tests/UnitTests/Core/Sample/LatticeTest.cpp
+++ b/Tests/UnitTests/Core/Sample/LatticeTest.cpp
@@ -199,9 +199,9 @@ TEST_F(LatticeTest, onChangeTest)
     // The new changed lattice vectors
     kvector_t c1(2, 0, 0), c2(0, 2, 0), c3(0, 0, 2);
 
-    l1.setVectorValue(BornAgain::BasisVector_A, c1);
-    l1.setVectorValue(BornAgain::BasisVector_B, c2);
-    l1.setVectorValue(BornAgain::BasisVector_C, c3);
+    l1.setVectorValue("BasisA", c1);
+    l1.setVectorValue("BasisB", c2);
+    l1.setVectorValue("BasisC", c3);
     EXPECT_EQ(c1, l1.getBasisVectorA());
     EXPECT_EQ(c2, l1.getBasisVectorB());
     EXPECT_EQ(c3, l1.getBasisVectorC());
diff --git a/Tests/UnitTests/Core/Sample/LayerInterfaceTest.cpp b/Tests/UnitTests/Core/Sample/LayerInterfaceTest.cpp
index 27ab20b593ae530ff9ae15bbd595c2e351857a3e..04dbc462e58d7a358eed12baf4bf6d8639edfa44 100644
--- a/Tests/UnitTests/Core/Sample/LayerInterfaceTest.cpp
+++ b/Tests/UnitTests/Core/Sample/LayerInterfaceTest.cpp
@@ -1,5 +1,4 @@
 #include "Core/Multilayer/LayerInterface.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
 #include "Core/Multilayer/Layer.h"
 #include "Core/Multilayer/LayerRoughness.h"
@@ -37,5 +36,5 @@ TEST_F(LayerInterfaceTest, createRoughInterface)
     EXPECT_EQ(interface->getRoughness()->getSigma(), 1.0);
     std::vector<const INode*> children = interface->getChildren();
     EXPECT_EQ(children.size(), 1u);
-    EXPECT_EQ(children.at(0)->getName(), BornAgain::LayerBasicRoughnessType);
+    EXPECT_EQ(children.at(0)->getName(), "LayerBasicRoughness");
 }
diff --git a/Tests/UnitTests/Core/Sample/LayerRoughnessTest.cpp b/Tests/UnitTests/Core/Sample/LayerRoughnessTest.cpp
index 5c3d59334fec8f6ef8b2213589e9ea523e3f28c5..211ae73d7c7e0d315ac702c962089d75d31f9f25 100644
--- a/Tests/UnitTests/Core/Sample/LayerRoughnessTest.cpp
+++ b/Tests/UnitTests/Core/Sample/LayerRoughnessTest.cpp
@@ -1,5 +1,4 @@
 #include "Core/Multilayer/LayerRoughness.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Parametrization/ParameterPattern.h"
 #include "Tests/UnitTests/utilities/google_test.h"
 
@@ -14,7 +13,7 @@ TEST_F(LayerRoughnessTest, LayerRoughnessInitial)
     EXPECT_EQ(0.0, roughness.getSigma());
     EXPECT_EQ(0.0, roughness.getHurstParameter());
     EXPECT_EQ(0.0, roughness.getLatteralCorrLength());
-    EXPECT_EQ(BornAgain::LayerBasicRoughnessType, roughness.getName());
+    EXPECT_EQ("LayerBasicRoughness", roughness.getName());
 
     // set new parameter
     roughness.setSigma(1.1);
@@ -31,7 +30,7 @@ TEST_F(LayerRoughnessTest, LayerRoughnessInitial)
     EXPECT_EQ(2.1, roughness2.getSigma());
     EXPECT_EQ(2.2, roughness2.getHurstParameter());
     EXPECT_EQ(2.3, roughness2.getLatteralCorrLength());
-    EXPECT_EQ(BornAgain::LayerBasicRoughnessType, roughness.getName());
+    EXPECT_EQ("LayerBasicRoughness", roughness.getName());
 }
 
 // test clone LayerRoughness
@@ -56,9 +55,9 @@ TEST_F(LayerRoughnessTest, LayerRoughnessPool)
     EXPECT_EQ(0.0, roughnessPool.getLatteralCorrLength());
 
     ParameterPattern pattern_sigma, pattern_hurst, pattern_corrlength;
-    pattern_sigma.add(BornAgain::LayerBasicRoughnessType).add(BornAgain::Sigma);
-    pattern_hurst.add(BornAgain::LayerBasicRoughnessType).add(BornAgain::Hurst);
-    pattern_corrlength.add(BornAgain::LayerBasicRoughnessType).add(BornAgain::CorrelationLength);
+    pattern_sigma.add("LayerBasicRoughness").add("Sigma");
+    pattern_hurst.add("LayerBasicRoughness").add("Hurst");
+    pattern_corrlength.add("LayerBasicRoughness").add("CorrelationLength");
     roughnessPool.setParameterValue(pattern_sigma.toStdString(), 4.1);
     roughnessPool.setParameterValue(pattern_hurst.toStdString(), 4.2);
     roughnessPool.setParameterValue(pattern_corrlength.toStdString(), 4.3);
@@ -66,5 +65,5 @@ TEST_F(LayerRoughnessTest, LayerRoughnessPool)
     EXPECT_EQ(4.1, roughnessPool.getSigma());
     EXPECT_EQ(4.2, roughnessPool.getHurstParameter());
     EXPECT_EQ(4.3, roughnessPool.getLatteralCorrLength());
-    EXPECT_EQ(BornAgain::LayerBasicRoughnessType, roughnessPool.getName());
+    EXPECT_EQ("LayerBasicRoughness", roughnessPool.getName());
 }
diff --git a/Tests/UnitTests/Core/Sample/LayerTest.cpp b/Tests/UnitTests/Core/Sample/LayerTest.cpp
index ac1666209419639beae545ceded8ad57e68e802b..ab3de5bd72719c9943d26b1b7d388cc9618b109d 100644
--- a/Tests/UnitTests/Core/Sample/LayerTest.cpp
+++ b/Tests/UnitTests/Core/Sample/LayerTest.cpp
@@ -16,19 +16,19 @@ TEST_F(LayerTest, LayerGetAndSet)
     EXPECT_EQ(0u, layer.layouts().size());
     EXPECT_EQ(10, layer.thickness());
     EXPECT_EQ(layer.numberOfLayouts(), 0u);
-    EXPECT_EQ(BornAgain::LayerType, layer.getName());
+    EXPECT_EQ("Layer", layer.getName());
 
     layer.setThickness(20.0);
     EXPECT_EQ(air, *layer.material());
     EXPECT_EQ(20, layer.thickness());
-    EXPECT_EQ(BornAgain::LayerType, layer.getName());
+    EXPECT_EQ("Layer", layer.getName());
 
     std::unique_ptr<Layer> clone(layer.clone());
     EXPECT_EQ(air, *clone->material());
     EXPECT_EQ(0u, clone->layouts().size());
     EXPECT_EQ(20, clone->thickness());
     EXPECT_EQ(clone->numberOfLayouts(), 0u);
-    EXPECT_EQ(BornAgain::LayerType, clone->getName());
+    EXPECT_EQ("Layer", clone->getName());
 }
 
 TEST_F(LayerTest, LayerAndDecoration)
diff --git a/Tests/UnitTests/Core/Sample/MesoCrystalTest.cpp b/Tests/UnitTests/Core/Sample/MesoCrystalTest.cpp
index e1f8f47f48bde77029090b9304981c3cfa5a4ada..2cd92ac844908db3855e268365c7c2b944f7f809 100644
--- a/Tests/UnitTests/Core/Sample/MesoCrystalTest.cpp
+++ b/Tests/UnitTests/Core/Sample/MesoCrystalTest.cpp
@@ -1,5 +1,4 @@
 #include "Core/Particle/MesoCrystal.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/HardParticle/FormFactorFullSphere.h"
 #include "Core/Lattice/Lattice.h"
 #include "Core/Particle/Crystal.h"
@@ -19,14 +18,14 @@ TEST_F(MesoCrystalTest, getChildren)
 
     std::vector<const INode*> children = meso.getChildren();
     EXPECT_EQ(children.size(), 2u);
-    EXPECT_EQ(children.at(0)->getName(), BornAgain::CrystalType);
-    EXPECT_EQ(children.at(1)->getName(), BornAgain::FFFullSphereType);
+    EXPECT_EQ(children.at(0)->getName(), "Crystal");
+    EXPECT_EQ(children.at(1)->getName(), "FullSphere");
 
     // children when rotation is set
     meso.setRotation(RotationY(45.));
     children = meso.getChildren();
     EXPECT_EQ(children.size(), 3u);
-    EXPECT_EQ(children.at(0)->getName(), BornAgain::YRotationType);
-    EXPECT_EQ(children.at(1)->getName(), BornAgain::CrystalType);
-    EXPECT_EQ(children.at(2)->getName(), BornAgain::FFFullSphereType);
+    EXPECT_EQ(children.at(0)->getName(), "YRotation");
+    EXPECT_EQ(children.at(1)->getName(), "Crystal");
+    EXPECT_EQ(children.at(2)->getName(), "FullSphere");
 }
diff --git a/Tests/UnitTests/Core/Sample/MultiLayerTest.cpp b/Tests/UnitTests/Core/Sample/MultiLayerTest.cpp
index 118916ca3e0c4abd19ff38eb2740ac6ef89315b0..ea83a54f12b6603ad3873b14b5520a258913d55c 100644
--- a/Tests/UnitTests/Core/Sample/MultiLayerTest.cpp
+++ b/Tests/UnitTests/Core/Sample/MultiLayerTest.cpp
@@ -1,6 +1,5 @@
 #include "Core/Multilayer/MultiLayer.h"
 #include "Core/Aggregate/ParticleLayout.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Computation/MultiLayerUtils.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
@@ -43,12 +42,12 @@ protected:
 TEST_F(MultiLayerTest, BasicProperty)
 {
     // check default properties
-    EXPECT_EQ(BornAgain::MultiLayerType, mLayer.getName());
+    EXPECT_EQ("MultiLayer", mLayer.getName());
     EXPECT_EQ(0.0, mLayer.crossCorrLength());
     EXPECT_EQ(size_t(0), mLayer.numberOfLayers());
 
     // set parameter
-    mLayer.setParameterValue(BornAgain::CrossCorrelationLength, 2.54);
+    mLayer.setParameterValue("CrossCorrelationLength", 2.54);
     EXPECT_EQ(2.54, mLayer.crossCorrLength());
 
     // adding layers
@@ -78,22 +77,22 @@ TEST_F(MultiLayerTest, CheckAllLayers)
 
     // check individual layer
     const Layer* got0 = mLayer.layer(0);
-    EXPECT_EQ(BornAgain::LayerType, got0->getName());
+    EXPECT_EQ("Layer", got0->getName());
     EXPECT_EQ(0, got0->thickness());
     EXPECT_EQ(topLayer.material()->getName(), got0->material()->getName());
 
     const Layer* got1 = mLayer.layer(1);
-    EXPECT_EQ(BornAgain::LayerType, got1->getName());
+    EXPECT_EQ("Layer", got1->getName());
     EXPECT_EQ(20, got1->thickness());
     EXPECT_EQ(layer1.material()->getName(), got1->material()->getName());
 
     const Layer* got2 = mLayer.layer(2);
-    EXPECT_EQ(BornAgain::LayerType, got2->getName());
+    EXPECT_EQ("Layer", got2->getName());
     EXPECT_EQ(40, got2->thickness());
     EXPECT_EQ(layer2.material()->getName(), got2->material()->getName());
 
     const Layer* got3 = mLayer.layer(3);
-    EXPECT_EQ(BornAgain::LayerType, got3->getName());
+    EXPECT_EQ("Layer", got3->getName());
     EXPECT_EQ(0, got3->thickness());
     EXPECT_EQ(substrate.material()->getName(), got3->material()->getName());
 }
@@ -105,21 +104,21 @@ TEST_F(MultiLayerTest, LayerInterfaces)
     // check interfaces
     const LayerInterface* interface0 = mLayer.layerInterface(0);
     EXPECT_TRUE(nullptr != interface0);
-    EXPECT_EQ(BornAgain::LayerInterfaceType, interface0->getName());
+    EXPECT_EQ("LayerInterface", interface0->getName());
     EXPECT_EQ(nullptr, interface0->getRoughness());
     EXPECT_EQ(topLayer.material()->getName(), interface0->topLayer()->material()->getName());
     EXPECT_EQ(layer1.material()->getName(), interface0->bottomLayer()->material()->getName());
 
     const LayerInterface* interface1 = mLayer.layerInterface(1);
     EXPECT_TRUE(nullptr != interface1);
-    EXPECT_EQ(BornAgain::LayerInterfaceType, interface1->getName());
+    EXPECT_EQ("LayerInterface", interface1->getName());
     EXPECT_EQ(nullptr, interface1->getRoughness());
     EXPECT_EQ(layer1.material()->getName(), interface1->topLayer()->material()->getName());
     EXPECT_EQ(layer2.material()->getName(), interface1->bottomLayer()->material()->getName());
 
     const LayerInterface* interface2 = mLayer.layerInterface(2);
     EXPECT_TRUE(nullptr != interface2);
-    EXPECT_EQ(BornAgain::LayerInterfaceType, interface2->getName());
+    EXPECT_EQ("LayerInterface", interface2->getName());
     EXPECT_EQ(nullptr, interface2->getRoughness());
     EXPECT_EQ(layer2.material()->getName(), interface2->topLayer()->material()->getName());
     EXPECT_EQ(substrate.material()->getName(), interface2->bottomLayer()->material()->getName());
@@ -127,7 +126,7 @@ TEST_F(MultiLayerTest, LayerInterfaces)
     // bottom interface
     const LayerInterface* interfaceBottom = LayerBottomInterface(mLayer, 0);
     EXPECT_TRUE(nullptr != interfaceBottom);
-    EXPECT_EQ(BornAgain::LayerInterfaceType, interfaceBottom->getName());
+    EXPECT_EQ("LayerInterface", interfaceBottom->getName());
     EXPECT_EQ(nullptr, interfaceBottom->getRoughness());
     EXPECT_EQ(topLayer.material()->getName(), interfaceBottom->topLayer()->material()->getName());
     EXPECT_EQ(layer1.material()->getName(), interfaceBottom->bottomLayer()->material()->getName());
@@ -135,7 +134,7 @@ TEST_F(MultiLayerTest, LayerInterfaces)
     // top interface
     const LayerInterface* interfaceTop = LayerTopInterface(mLayer, 3);
     EXPECT_TRUE(nullptr != interfaceTop);
-    EXPECT_EQ(BornAgain::LayerInterfaceType, interfaceTop->getName());
+    EXPECT_EQ("LayerInterface", interfaceTop->getName());
     EXPECT_EQ(nullptr, interfaceTop->getRoughness());
     EXPECT_EQ(layer2.material()->getName(), interfaceTop->topLayer()->material()->getName());
     EXPECT_EQ(substrate.material()->getName(), interfaceTop->bottomLayer()->material()->getName());
@@ -155,7 +154,7 @@ TEST_F(MultiLayerTest, Clone)
     MultiLayer* mLayerClone = mLayer.clone();
 
     // check properties
-    EXPECT_EQ(BornAgain::MultiLayerType, mLayerClone->getName());
+    EXPECT_EQ("MultiLayer", mLayerClone->getName());
     EXPECT_EQ(0.0, mLayerClone->crossCorrLength());
     EXPECT_EQ(size_t(4), mLayerClone->numberOfLayers());
 
@@ -189,21 +188,21 @@ TEST_F(MultiLayerTest, Clone)
     // check interfaces
     const LayerInterface* interface0 = mLayerClone->layerInterface(0);
     EXPECT_TRUE(nullptr != interface0);
-    EXPECT_EQ(BornAgain::LayerInterfaceType, interface0->getName());
+    EXPECT_EQ("LayerInterface", interface0->getName());
     EXPECT_EQ(nullptr, interface0->getRoughness());
     EXPECT_EQ(topLayer.material()->getName(), interface0->topLayer()->material()->getName());
     EXPECT_EQ(layer1.material()->getName(), interface0->bottomLayer()->material()->getName());
 
     const LayerInterface* interface1 = mLayerClone->layerInterface(1);
     EXPECT_TRUE(nullptr != interface1);
-    EXPECT_EQ(BornAgain::LayerInterfaceType, interface1->getName());
+    EXPECT_EQ("LayerInterface", interface1->getName());
     EXPECT_EQ(nullptr, interface1->getRoughness());
     EXPECT_EQ(layer1.material()->getName(), interface1->topLayer()->material()->getName());
     EXPECT_EQ(layer2.material()->getName(), interface1->bottomLayer()->material()->getName());
 
     const LayerInterface* interface2 = mLayerClone->layerInterface(2);
     EXPECT_TRUE(nullptr != interface2);
-    EXPECT_EQ(BornAgain::LayerInterfaceType, interface2->getName());
+    EXPECT_EQ("LayerInterface", interface2->getName());
     EXPECT_EQ(nullptr, interface2->getRoughness());
     EXPECT_EQ(layer2.material()->getName(), interface2->topLayer()->material()->getName());
     EXPECT_EQ(substrate.material()->getName(), interface2->bottomLayer()->material()->getName());
@@ -211,7 +210,7 @@ TEST_F(MultiLayerTest, Clone)
     // top interface
     const LayerInterface* interfaceBottom = LayerTopInterface(*mLayerClone, 1);
     EXPECT_TRUE(nullptr != interfaceBottom);
-    EXPECT_EQ(BornAgain::LayerInterfaceType, interfaceBottom->getName());
+    EXPECT_EQ("LayerInterface", interfaceBottom->getName());
     EXPECT_EQ(nullptr, interfaceBottom->getRoughness());
     EXPECT_EQ(topLayer.material()->getName(), interfaceBottom->topLayer()->material()->getName());
     EXPECT_EQ(layer1.material()->getName(), interfaceBottom->bottomLayer()->material()->getName());
@@ -219,7 +218,7 @@ TEST_F(MultiLayerTest, Clone)
     // Bottom interface
     const LayerInterface* interfaceTop = LayerBottomInterface(*mLayerClone, 2);
     EXPECT_TRUE(nullptr != interfaceTop);
-    EXPECT_EQ(BornAgain::LayerInterfaceType, interfaceTop->getName());
+    EXPECT_EQ("LayerInterface", interfaceTop->getName());
     EXPECT_EQ(nullptr, interfaceTop->getRoughness());
     EXPECT_EQ(layer2.material()->getName(), interfaceTop->topLayer()->material()->getName());
     EXPECT_EQ(substrate.material()->getName(), interfaceTop->bottomLayer()->material()->getName());
diff --git a/Tests/UnitTests/Core/Sample/ParticleCompositionTest.cpp b/Tests/UnitTests/Core/Sample/ParticleCompositionTest.cpp
index 6529a231e25d9aef5e27fd5d66be94579b1b6f6c..b401df3559d4dd4b797309be0177c14a86111b62 100644
--- a/Tests/UnitTests/Core/Sample/ParticleCompositionTest.cpp
+++ b/Tests/UnitTests/Core/Sample/ParticleCompositionTest.cpp
@@ -1,5 +1,4 @@
 #include "Core/Particle/ParticleComposition.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/HardParticle/FormFactorFullSphere.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
@@ -15,7 +14,7 @@ TEST_F(ParticleCompositionTest, ParticleCompositionDefaultConstructor)
     std::unique_ptr<ParticleComposition> composition(new ParticleComposition());
     std::vector<kvector_t> positions;
     positions.push_back(kvector_t(0.0, 0.0, 0.0));
-    EXPECT_EQ(BornAgain::ParticleCompositionType, composition->getName());
+    EXPECT_EQ("ParticleComposition", composition->getName());
     EXPECT_EQ(0u, composition->nbrParticles());
 }
 
@@ -50,7 +49,7 @@ TEST_F(ParticleCompositionTest, getChildren)
 
     std::vector<const INode*> children = composition.getChildren();
     EXPECT_EQ(children.size(), 3u);
-    EXPECT_EQ(children.at(0)->getName(), BornAgain::YRotationType);
-    EXPECT_EQ(children.at(1)->getName(), BornAgain::ParticleType);
-    EXPECT_EQ(children.at(2)->getName(), BornAgain::ParticleType);
+    EXPECT_EQ(children.at(0)->getName(), "YRotation");
+    EXPECT_EQ(children.at(1)->getName(), "Particle");
+    EXPECT_EQ(children.at(2)->getName(), "Particle");
 }
diff --git a/Tests/UnitTests/Core/Sample/ParticleCoreShellTest.cpp b/Tests/UnitTests/Core/Sample/ParticleCoreShellTest.cpp
index cc7bedad34bcd6f18eb396d2af2ade94723e1086..055ecb677b980e2f072a7bde584c2a87b91a2a14 100644
--- a/Tests/UnitTests/Core/Sample/ParticleCoreShellTest.cpp
+++ b/Tests/UnitTests/Core/Sample/ParticleCoreShellTest.cpp
@@ -1,5 +1,4 @@
 #include "Core/Particle/ParticleCoreShell.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
 #include "Core/Parametrization/Units.h"
@@ -34,9 +33,9 @@ TEST_F(ParticleCoreShellTest, InitialState)
 {
     EXPECT_EQ(nullptr, mp_coreshell->createFormFactor());
     EXPECT_EQ(nullptr, mp_coreshell->rotation());
-    EXPECT_EQ(BornAgain::ParticleCoreShellType, mp_coreshell->getName());
-    EXPECT_EQ(BornAgain::ParticleType, mp_coreshell->coreParticle()->getName());
-    EXPECT_EQ(BornAgain::ParticleType, mp_coreshell->shellParticle()->getName());
+    EXPECT_EQ("ParticleCoreShell", mp_coreshell->getName());
+    EXPECT_EQ("Particle", mp_coreshell->coreParticle()->getName());
+    EXPECT_EQ("Particle", mp_coreshell->shellParticle()->getName());
 }
 
 TEST_F(ParticleCoreShellTest, Clone)
@@ -44,9 +43,9 @@ TEST_F(ParticleCoreShellTest, Clone)
     ParticleCoreShell* p_clone = mp_coreshell->clone();
     EXPECT_EQ(nullptr, p_clone->createFormFactor());
     EXPECT_EQ(nullptr, p_clone->rotation());
-    EXPECT_EQ(BornAgain::ParticleCoreShellType, p_clone->getName());
-    EXPECT_EQ(BornAgain::ParticleType, p_clone->coreParticle()->getName());
-    EXPECT_EQ(BornAgain::ParticleType, p_clone->shellParticle()->getName());
+    EXPECT_EQ("ParticleCoreShell", p_clone->getName());
+    EXPECT_EQ("Particle", p_clone->coreParticle()->getName());
+    EXPECT_EQ("Particle", p_clone->shellParticle()->getName());
     delete p_clone;
 }
 
diff --git a/Tests/UnitTests/Core/Sample/ParticleDistributionTest.cpp b/Tests/UnitTests/Core/Sample/ParticleDistributionTest.cpp
index 571e60d14b4e7a4b567c3904ff734aa852786f64..85255d5d643644d1d50909b2a60d4b0841da2e16 100644
--- a/Tests/UnitTests/Core/Sample/ParticleDistributionTest.cpp
+++ b/Tests/UnitTests/Core/Sample/ParticleDistributionTest.cpp
@@ -1,5 +1,4 @@
 #include "Core/Particle/ParticleDistribution.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
 #include "Core/Parametrization/Distributions.h"
 #include "Core/Parametrization/ParameterUtils.h"
@@ -25,7 +24,7 @@ TEST_F(ParticleDistributionTest, getChildren)
     std::vector<const INode*> children = distr.getChildren();
 
     EXPECT_EQ(children.size(), 2u);
-    EXPECT_EQ(children.at(0)->getName(), BornAgain::ParticleType);
+    EXPECT_EQ(children.at(0)->getName(), "Particle");
 }
 
 TEST_F(ParticleDistributionTest, mainParameterUnits)
@@ -35,9 +34,9 @@ TEST_F(ParticleDistributionTest, mainParameterUnits)
 
     ParameterDistribution par("/Particle/FullSphere/Radius", gate, 5);
     ParticleDistribution distr(Particle(mat, FormFactorFullSphere(1.0)), par);
-    EXPECT_EQ(ParameterUtils::mainParUnits(distr), BornAgain::UnitsNm);
+    EXPECT_EQ(ParameterUtils::mainParUnits(distr), "nm");
 
     par = ParameterDistribution("/Particle/Cone/Alpha", gate, 5);
     ParticleDistribution distr2(Particle(mat, FormFactorCone(10.0, 20.0, 70.0 * Units::deg)), par);
-    EXPECT_EQ(ParameterUtils::mainParUnits(distr2), BornAgain::UnitsRad);
+    EXPECT_EQ(ParameterUtils::mainParUnits(distr2), "rad");
 }
diff --git a/Tests/UnitTests/Core/Sample/ParticleLayoutTest.cpp b/Tests/UnitTests/Core/Sample/ParticleLayoutTest.cpp
index 3b96635c4e87bd4fe767c71229766a01f3fd7047..75ab6042044b50693e4cf5599a53d243cd4bd5b8 100644
--- a/Tests/UnitTests/Core/Sample/ParticleLayoutTest.cpp
+++ b/Tests/UnitTests/Core/Sample/ParticleLayoutTest.cpp
@@ -1,7 +1,6 @@
 #include "Core/Aggregate/ParticleLayout.h"
 #include "Core/Aggregate/InterferenceFunction1DLattice.h"
 #include "Core/Aggregate/InterferenceFunctionNone.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Export/INodeUtils.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
 #include "Core/Parametrization/Units.h"
@@ -24,7 +23,7 @@ TEST_F(ParticleLayoutTest, ParticleLayoutInitial)
     auto p_iff = INodeUtils::OnlyChildOfType<IInterferenceFunction>(particleDecoration);
     auto particles = INodeUtils::ChildNodesOfType<IAbstractParticle>(particleDecoration);
 
-    EXPECT_EQ(BornAgain::ParticleLayoutType, particleDecoration.getName());
+    EXPECT_EQ("ParticleLayout", particleDecoration.getName());
     EXPECT_EQ(size_t(0), particles.size());
     EXPECT_EQ(nullptr, p_iff);
 }
@@ -37,7 +36,7 @@ TEST_F(ParticleLayoutTest, ParticleLayoutInitByValue)
     auto p_iff = INodeUtils::OnlyChildOfType<IInterferenceFunction>(particleDecoration);
     auto particles = INodeUtils::ChildNodesOfType<IAbstractParticle>(particleDecoration);
 
-    EXPECT_EQ(BornAgain::ParticleLayoutType, particleDecoration.getName());
+    EXPECT_EQ("ParticleLayout", particleDecoration.getName());
     EXPECT_EQ(size_t(1), particles.size());
     EXPECT_EQ(nullptr, p_iff);
 
@@ -131,7 +130,7 @@ TEST_F(ParticleLayoutTest, ParticleLayoutClone)
     ParticleLayout* clone = particleDecoration.clone();
     auto particles = INodeUtils::ChildNodesOfType<IAbstractParticle>(*clone);
 
-    EXPECT_EQ(BornAgain::ParticleLayoutType, clone->getName());
+    EXPECT_EQ("ParticleLayout", clone->getName());
 
     const IAbstractParticle* p_particle1 = particles[0];
     EXPECT_TRUE(nullptr != p_particle1);
@@ -179,6 +178,6 @@ TEST_F(ParticleLayoutTest, getChildren)
     layout.setInterferenceFunction(InterferenceFunction1DLattice(1.0, 2.0));
     children = layout.getChildren();
     EXPECT_EQ(children.size(), 2u);
-    EXPECT_EQ(children.at(0)->getName(), BornAgain::ParticleType);
-    EXPECT_EQ(children.at(1)->getName(), BornAgain::InterferenceFunction1DLatticeType);
+    EXPECT_EQ(children.at(0)->getName(), "Particle");
+    EXPECT_EQ(children.at(1)->getName(), "Interference1DLattice");
 }
diff --git a/Tests/UnitTests/Core/Sample/ParticleTest.cpp b/Tests/UnitTests/Core/Sample/ParticleTest.cpp
index a9d09faf5b6a79cba7c43ebb1abfda90b80e0e80..1f2f26c26599c8cc5c9f8e680a7ddf7319811b8a 100644
--- a/Tests/UnitTests/Core/Sample/ParticleTest.cpp
+++ b/Tests/UnitTests/Core/Sample/ParticleTest.cpp
@@ -1,5 +1,4 @@
 #include "Core/Particle/Particle.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/HardParticle/FormFactorFullSphere.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
@@ -20,7 +19,7 @@ TEST_F(ParticleTest, InitialState)
     EXPECT_EQ(HomogeneousMaterial(), *particle.material());
     EXPECT_EQ(nullptr, particle.createFormFactor());
     EXPECT_EQ(nullptr, particle.rotation());
-    EXPECT_EQ(BornAgain::ParticleType, particle.getName());
+    EXPECT_EQ("Particle", particle.getName());
 }
 
 TEST_F(ParticleTest, Clone)
@@ -30,7 +29,7 @@ TEST_F(ParticleTest, Clone)
     EXPECT_EQ(HomogeneousMaterial(), *clone->material());
     EXPECT_EQ(nullptr, clone->createFormFactor());
     EXPECT_EQ(nullptr, clone->rotation());
-    EXPECT_EQ(BornAgain::ParticleType, clone->getName());
+    EXPECT_EQ("Particle", clone->getName());
 }
 
 TEST_F(ParticleTest, Constructors)
@@ -55,7 +54,7 @@ TEST_F(ParticleTest, Constructors)
     std::unique_ptr<Particle> p3(new Particle(mat, sphere, transform));
     EXPECT_EQ(mat, *p3->material());
     EXPECT_TRUE(dynamic_cast<FormFactorDecoratorMaterial*>(p3->createFormFactor()));
-    EXPECT_EQ(BornAgain::ZRotationType, p3->rotation()->getName());
+    EXPECT_EQ("ZRotation", p3->rotation()->getName());
 }
 
 TEST_F(ParticleTest, setters)
@@ -73,7 +72,7 @@ TEST_F(ParticleTest, setters)
     EXPECT_TRUE(nullptr != particle.rotation());
 
     std::unique_ptr<Particle> particle2(particle.clone());
-    EXPECT_EQ(BornAgain::ParticleType, particle2->getName());
+    EXPECT_EQ("Particle", particle2->getName());
     EXPECT_EQ(vacuum, *particle2->material());
     EXPECT_TRUE(nullptr != particle2->rotation());
 }
@@ -87,12 +86,12 @@ TEST_F(ParticleTest, getChildren)
     std::unique_ptr<Particle> particle(new Particle(mat, sphere));
     std::vector<const INode*> children = particle->getChildren();
     EXPECT_EQ(children.size(), 1u);
-    EXPECT_EQ(children.at(0)->getName(), BornAgain::FFFullSphereType);
+    EXPECT_EQ(children.at(0)->getName(), "FullSphere");
 
     // Checking children of particle (with rotation)
     particle.reset(new Particle(mat, sphere, RotationY(45.)));
     children = particle->getChildren();
     EXPECT_EQ(children.size(), 2u);
-    EXPECT_EQ(children.at(0)->getName(), BornAgain::YRotationType);
-    EXPECT_EQ(children.at(1)->getName(), BornAgain::FFFullSphereType);
+    EXPECT_EQ(children.at(0)->getName(), "YRotation");
+    EXPECT_EQ(children.at(1)->getName(), "FullSphere");
 }
diff --git a/Tests/UnitTests/Core/Sample/RTTest.cpp b/Tests/UnitTests/Core/Sample/RTTest.cpp
index 23e25b03f2bb48cc421ae626bbbc744e15b54663..ea0a90bd47ab4635298c5da2b89026b1907167a5 100644
--- a/Tests/UnitTests/Core/Sample/RTTest.cpp
+++ b/Tests/UnitTests/Core/Sample/RTTest.cpp
@@ -1,5 +1,4 @@
 #include "Core/Aggregate/ParticleLayout.h"
-#include "Core/Basics/BornAgainNamespace.h"
 #include "Core/Basics/MathConstants.h"
 #include "Core/Computation/ProcessedSample.h"
 #include "Core/Material/MaterialFactoryFuncs.h"