diff --git a/dumux/material/binarycoefficients/air_mesitylene.hh b/dumux/material/binarycoefficients/air_mesitylene.hh
index 9c32d8f23f817882165f50da156d5b9169221cf8..cfe0b451137a20f3211d92576504bd785167d0f6 100644
--- a/dumux/material/binarycoefficients/air_mesitylene.hh
+++ b/dumux/material/binarycoefficients/air_mesitylene.hh
@@ -60,8 +60,8 @@ public:
     template <class Scalar>
     static Scalar gasDiffCoeff(Scalar temperature, Scalar pressure)
     {
-        using Air = Dumux::Air<Scalar>;
-        using Mesitylene = Dumux::Mesitylene<Scalar>;
+        using Air = Dumux::Components::Air<Scalar>;
+        using Mesitylene = Dumux::Components::Mesitylene<Scalar>;
 
         using std::min;
         using std::max;
diff --git a/dumux/material/binarycoefficients/air_xylene.hh b/dumux/material/binarycoefficients/air_xylene.hh
index 79cdae79e1feda8053e05a2c8ebbbebb57da2453..8422f785ab43f75600bd35cec40b3defd9289e03 100644
--- a/dumux/material/binarycoefficients/air_xylene.hh
+++ b/dumux/material/binarycoefficients/air_xylene.hh
@@ -60,8 +60,8 @@ public:
     template <class Scalar>
     static Scalar gasDiffCoeff(Scalar temperature, Scalar pressure)
     {
-        using Air = Dumux::Air<Scalar>;
-        using Xylene = Dumux::Xylene<Scalar>;
+        using Air = Dumux::Components::Air<Scalar>;
+        using Xylene = Dumux::Components::Xylene<Scalar>;
 
         using std::min;
         using std::max;
diff --git a/dumux/material/binarycoefficients/brine_air.hh b/dumux/material/binarycoefficients/brine_air.hh
index 600642a38a50dacc95198aeb8fe186d8d82f96a2..6e8632db1b539ab010bb7c984ab7c99f2a3221f7 100644
--- a/dumux/material/binarycoefficients/brine_air.hh
+++ b/dumux/material/binarycoefficients/brine_air.hh
@@ -37,9 +37,9 @@ namespace BinaryCoeff {
  */
 template<class Scalar, class Air, bool verbose = true>
 class Brine_Air {
-    using H2O = Dumux::H2O<Scalar>;
-   // using Air = Dumux::Air<Scalar>;
-    using Brine = Dumux::Brine<Scalar,H2O>;
+    using H2O = Dumux::Components::H2O<Scalar>;
+   // using Air = Dumux::Components::Air<Scalar>;
+    using Brine = Dumux::Components::Brine<Scalar,H2O>;
     using IdealGas = Dumux::IdealGas<Scalar>;
     static const int wPhaseIdx = 0; // index of the liquid phase
     static const int nPhaseIdx = 1; // index of the gas phase
@@ -397,9 +397,9 @@ private:
 template<class Scalar, class Air, bool verbose = true>
 class Brine_Air_Old
 {
-    using H2O = Dumux::H2O<Scalar>;
-    using Brine = Dumux::Brine<Scalar,H2O>;
-   // using Air = Dumux::Air<Scalar>;
+    using H2O = Dumux::Components::H2O<Scalar>;
+    using Brine = Dumux::Components::Brine<Scalar,H2O>;
+   // using Air = Dumux::Components::Air<Scalar>;
     using IdealGas = Dumux::IdealGas<Scalar>;
 
 public:
diff --git a/dumux/material/binarycoefficients/brine_co2.hh b/dumux/material/binarycoefficients/brine_co2.hh
index 2ccd73f9e56a9382beca6090b328311bb83417f1..2110a2e64b5f8e01795b4cae599384c0a9195c09 100644
--- a/dumux/material/binarycoefficients/brine_co2.hh
+++ b/dumux/material/binarycoefficients/brine_co2.hh
@@ -37,8 +37,8 @@ namespace BinaryCoeff {
  */
 template<class Scalar, class CO2Tables, bool verbose = true>
 class Brine_CO2 {
-    using H2O = Dumux::H2O<Scalar>;
-    using CO2 = Dumux::CO2<Scalar, CO2Tables>;
+    using H2O = Dumux::Components::H2O<Scalar>;
+    using CO2 = Dumux::Components::CO2<Scalar, CO2Tables>;
     using IdealGas = Dumux::IdealGas<Scalar>;
     static const int lPhaseIdx = 0; // index of the liquid phase
     static const int gPhaseIdx = 1; // index of the gas phase
@@ -380,9 +380,9 @@ private:
 template<class Scalar, class CO2Tables, bool verbose = true>
 class Brine_CO2_Old
 {
-    using H2O = Dumux::H2O<Scalar>;
-  using Brine = Dumux::Brine<Scalar,H2O>;
-    using CO2 = Dumux::CO2<Scalar, CO2Tables>;
+    using H2O = Dumux::Components::H2O<Scalar>;
+  using Brine = Dumux::Components::Brine<Scalar,H2O>;
+    using CO2 = Dumux::Components::CO2<Scalar, CO2Tables>;
     using IdealGas = Dumux::IdealGas<Scalar>;
 
 public:
diff --git a/dumux/material/binarycoefficients/h2o_ch4.hh b/dumux/material/binarycoefficients/h2o_ch4.hh
index f48897b58e6810876502d9727b755583389c0f9f..3367e3f71dbe1f5643e5623ba9b0342321b9ae0d 100644
--- a/dumux/material/binarycoefficients/h2o_ch4.hh
+++ b/dumux/material/binarycoefficients/h2o_ch4.hh
@@ -74,8 +74,8 @@ public:
     {
         //         DUNE_THROW(Dune::NotImplemented, "diffusion coefficient for gasous water and methane");
 
-        typedef Dumux::H2O<Scalar> H2O;
-        typedef Dumux::CH4<Scalar> CH4;
+        typedef Dumux::Components::H2O<Scalar> H2O;
+        typedef Dumux::Components::CH4<Scalar> CH4;
 
         // atomic diffusion volumes
         // Vch4 = sum(ni*Vi) = 15.9 + 4*2.31 = 25.14 (Tang et al., 2015)--> method, (Poling et al., 2001, p.11.11)--> values
diff --git a/dumux/material/binarycoefficients/h2o_mesitylene.hh b/dumux/material/binarycoefficients/h2o_mesitylene.hh
index 747598a0021095c29043c2d1cb67cd448a5851ad..2fce85e93779f50d32e0a7f513e27f0cec38069f 100644
--- a/dumux/material/binarycoefficients/h2o_mesitylene.hh
+++ b/dumux/material/binarycoefficients/h2o_mesitylene.hh
@@ -64,8 +64,8 @@ public:
     template <class Scalar>
     static Scalar gasDiffCoeff(Scalar temperature, Scalar pressure)
     {
-        using H2O = Dumux::H2O<Scalar>;
-        using Mesitylene = Dumux::Mesitylene<Scalar>;
+        using H2O = Dumux::Components::H2O<Scalar>;
+        using Mesitylene = Dumux::Components::Mesitylene<Scalar>;
 
         using std::min;
         using std::max;
diff --git a/dumux/material/binarycoefficients/h2o_n2.hh b/dumux/material/binarycoefficients/h2o_n2.hh
index 17ac08e6b60e9b521ef2249a20296389b2a590d0..80fc8f73ec316c9f688973f899d586b42e08be89 100644
--- a/dumux/material/binarycoefficients/h2o_n2.hh
+++ b/dumux/material/binarycoefficients/h2o_n2.hh
@@ -67,8 +67,8 @@ public:
     template <class Scalar>
     static Scalar gasDiffCoeff(Scalar temperature, Scalar pressure)
     {
-        using H2O = Dumux::H2O<Scalar>;
-        using N2 = Dumux::N2<Scalar>;
+        using H2O = Dumux::Components::H2O<Scalar>;
+        using N2 = Dumux::Components::N2<Scalar>;
 
         // atomic diffusion volumes
         const Scalar SigmaNu[2] = { 13.1 /* H2O */,  18.5 /* N2 */ };
diff --git a/dumux/material/binarycoefficients/h2o_o2.hh b/dumux/material/binarycoefficients/h2o_o2.hh
index 0602ef6a40cb191917d21245c8eee9ce4b6dbb26..28273f7e84fc4a6e0b438ad84811f105e4c69f5b 100644
--- a/dumux/material/binarycoefficients/h2o_o2.hh
+++ b/dumux/material/binarycoefficients/h2o_o2.hh
@@ -67,8 +67,8 @@ public:
     template <class Scalar>
     static Scalar gasDiffCoeff(Scalar temperature, Scalar pressure)
     {
-        using H2O = Dumux::H2O<Scalar>;
-        using O2 = O2<Scalar>;
+        using H2O = Dumux::Components::H2O<Scalar>;
+        using O2 = Components::O2<Scalar>;
 
         // atomic diffusion volumes
         const Scalar SigmaNu[2] = { 13.1 /* H2O */,  16.3 /* O2 */ };
diff --git a/dumux/material/binarycoefficients/h2o_xylene.hh b/dumux/material/binarycoefficients/h2o_xylene.hh
index 3ab32237d0dcdeb363f9f8b256e4af30a0247421..b576ceb7b36a681b2d4dc02ce00be540ab304259 100644
--- a/dumux/material/binarycoefficients/h2o_xylene.hh
+++ b/dumux/material/binarycoefficients/h2o_xylene.hh
@@ -67,8 +67,8 @@ public:
     template <class Scalar>
     static Scalar gasDiffCoeff(Scalar temperature, Scalar pressure)
     {
-        using H2O = Dumux::H2O<Scalar>;
-        using Xylene = Dumux::Xylene<Scalar>;
+        using H2O = Dumux::Components::H2O<Scalar>;
+        using Xylene = Dumux::Components::Xylene<Scalar>;
 
         using std::min;
         using std::max;
diff --git a/dumux/material/binarycoefficients/henryiapws.hh b/dumux/material/binarycoefficients/henryiapws.hh
index 855b67dc0a4152e460b7249fa51dc628bb1880c2..6a21c7f708f71bb96aa11e42ebe6ae796de57de8 100644
--- a/dumux/material/binarycoefficients/henryiapws.hh
+++ b/dumux/material/binarycoefficients/henryiapws.hh
@@ -55,7 +55,7 @@ inline Scalar henryIAPWS(Scalar E,
                          Scalar H,
                          Scalar temperature)
 {
-    using H2O = Dumux::H2O<Scalar>;
+    using H2O = Dumux::Components::H2O<Scalar>;
 
     // regularizing temperature helps for stability.
     // Results are unphysical!
diff --git a/dumux/material/binarycoefficients/n2_o2.hh b/dumux/material/binarycoefficients/n2_o2.hh
index 16216c1f73486856db9842102fce6d52042611f6..dd9f0090b9bc694ed7033a47ae1e084dbb384147 100644
--- a/dumux/material/binarycoefficients/n2_o2.hh
+++ b/dumux/material/binarycoefficients/n2_o2.hh
@@ -62,8 +62,8 @@ public:
     template <class Scalar>
     static Scalar gasDiffCoeff(Scalar temperature, Scalar pressure)
     {
-        using N2 = Dumux::N2<Scalar>;
-        using O2 = Dumux::O2<Scalar>;
+        using N2 = Dumux::Components::N2<Scalar>;
+        using O2 = Dumux::Components::O2<Scalar>;
 
         // atomic diffusion volumes
         const Scalar SigmaNu[2] = { 18.1 /* N2 */,  16.3 /* O2 */ };
diff --git a/dumux/material/chemistry/electrochemistry/electrochemistry.hh b/dumux/material/chemistry/electrochemistry/electrochemistry.hh
index e4d5d7aa728cf6ad2ecc9d3e6e6377b75dd503d6..808c3c7b9bc4afad7cf7c3ef5f9360efbdd9f535 100644
--- a/dumux/material/chemistry/electrochemistry/electrochemistry.hh
+++ b/dumux/material/chemistry/electrochemistry/electrochemistry.hh
@@ -31,7 +31,7 @@
 #include <dumux/common/exceptions.hh>
 #include <dumux/discretization/methods.hh>
 #include <dumux/material/constants.hh>
-#include <dumux/material/components/component.hh>
+
 #include <dumux/material/fluidsystems/h2on2o2.hh>
 
 namespace Dumux {
diff --git a/dumux/material/components/CMakeLists.txt b/dumux/material/components/CMakeLists.txt
index e936566eb3555cf597f24174d4b9c76a6619763d..8f9297cca86a6ad7f4beed6994ebba37afd3d825 100644
--- a/dumux/material/components/CMakeLists.txt
+++ b/dumux/material/components/CMakeLists.txt
@@ -11,7 +11,6 @@ ch4.hh
 co2.hh
 co2tablereader.hh
 co2tables.inc
-component.hh
 constant.hh
 h2.hh
 h2o.hh
@@ -24,6 +23,5 @@ simpleco2.hh
 simpleh2o.hh
 tabulatedcomponent.hh
 trichloroethene.hh
-unit.hh
 xylene.hh
 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/dumux/material/components)
diff --git a/dumux/material/components/air.hh b/dumux/material/components/air.hh
index ae0264b97b573549bfa3b2e97c39a76aecfb1092..a6d212bc7e7b435ce02d8d60ccd2db2cc1beea90 100644
--- a/dumux/material/components/air.hh
+++ b/dumux/material/components/air.hh
@@ -25,10 +25,10 @@
 #define DUMUX_AIR_HH
 
 #include <dumux/common/exceptions.hh>
-#include <dumux/material/components/component.hh>
 #include <dumux/material/idealgas.hh>
 
-#include <dune/common/deprecated.hh>
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/gas.hh>
 
 namespace Dumux {
 namespace Components {
@@ -40,8 +40,9 @@ namespace Components {
  * \tparam Scalar The type used for scalar values
  */
 template <class Scalar>
-class Air : public Components::Base<Scalar, Air<Scalar> >,
-            public Components::Gas<Scalar, Air<Scalar> >
+class Air
+: public Components::Base<Scalar, Air<Scalar> >
+, public Components::Gas<Scalar, Air<Scalar> >
 {
     using IdealGas = Dumux::IdealGas<Scalar>;
 
@@ -337,9 +338,6 @@ public:
 
 } // end namespace Components
 
-template<class Scalar>
-using Air DUNE_DEPRECATED_MSG("Now in the namespace: Components") = Dumux::Components::Air<Scalar>;
-
 } // end namespace Dumux
 
 #endif
diff --git a/dumux/material/components/benzene.hh b/dumux/material/components/benzene.hh
index 384bcf96bfbb85d52034f05bb51e6a389f277204..0d81c39326e0d065fa327183c34b332180232952 100644
--- a/dumux/material/components/benzene.hh
+++ b/dumux/material/components/benzene.hh
@@ -25,9 +25,10 @@
 #define DUMUX_BENZENE_HH
 
 #include <dumux/material/idealgas.hh>
-#include "component.hh"
 
-#include <dune/common/deprecated.hh>
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/liquid.hh>
+#include <dumux/material/components/gas.hh>
 
 namespace Dumux {
 namespace Components {
@@ -39,7 +40,10 @@ namespace Components {
  * \tparam Scalar The type used for scalar values
  */
 template <class Scalar>
-class Benzene : public Component<Scalar, Benzene<Scalar> >
+class Benzene
+: public Components::Base<Scalar, Benzene<Scalar> >
+, public Components::Liquid<Scalar, Benzene<Scalar> >
+, public Components::Gas<Scalar, Benzene<Scalar> >
 {
 
 public:
@@ -93,9 +97,6 @@ public:
 
 } // end namespace Components
 
-template<class Scalar>
-using Benzene DUNE_DEPRECATED_MSG("Now in the namespace: Components") = Dumux::Components::Benzene<Scalar>;
-
 } // end namespace Dumux
 
 #endif
diff --git a/dumux/material/components/brine.hh b/dumux/material/components/brine.hh
index 903c23dd46ccf9863af6f55c3d53106d97064322..e543ad1065b263a0da63c2a7b94872b31ea189f9 100644
--- a/dumux/material/components/brine.hh
+++ b/dumux/material/components/brine.hh
@@ -25,14 +25,15 @@
 #define DUMUX_BRINE_HH
 
 
-#include <dumux/material/components/component.hh>
 #include <dumux/material/components/h2o.hh>
 #include <dumux/material/components/nacl.hh>
 #include <dumux/material/components/tabulatedcomponent.hh>
 
 #include <cmath>
 
-#include <dune/common/deprecated.hh>
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/liquid.hh>
+#include <dumux/material/components/gas.hh>
 
 namespace Dumux {
 namespace Components {
@@ -45,12 +46,14 @@ namespace Components {
  * \tparam H2O Static polymorphism: the Brine class can access all properties of the H2O class
  */
 template <class Scalar,
-          class H2O_Tabulated = TabulatedComponent<H2O<Scalar>>>
-class Brine : public Component<Scalar, Brine<Scalar, H2O_Tabulated> >
+          class H2O_Tabulated = Components::TabulatedComponent<Components::H2O<Scalar>>>
+class Brine
+: public Components::Base<Scalar, Brine<Scalar, H2O_Tabulated> >
+, public Components::Liquid<Scalar, Brine<Scalar, H2O_Tabulated> >
+, public Components::Gas<Scalar, Brine<Scalar, H2O_Tabulated> >
 {
 public:
-    using H2O = TabulatedComponent<Dumux::H2O<Scalar>>;
-
+    using H2O = Components::TabulatedComponent<Dumux::Components::H2O<Scalar>>;
     //HACK: If salinity is a pseudo-component, a constat value is used
     static Scalar constantSalinity;
 
@@ -68,7 +71,7 @@ public:
    static Scalar molarMass(Scalar salinity = constantSalinity)
    {
        const Scalar M1 = H2O::molarMass();
-       const Scalar M2 = NaCl<Scalar>::molarMass(); // molar mass of NaCl [kg/mol]
+       const Scalar M2 = Components::NaCl<Scalar>::molarMass(); // molar mass of NaCl [kg/mol]
        const Scalar X2 = salinity; // mass fraction of salt in brine
        return M1*M2/(M2 + X2*(M1 - M2));
    };
@@ -396,9 +399,6 @@ Scalar Brine<Scalar, H2O>::constantSalinity = 0.1;
 
 } // end namespace Components
 
-template <class Scalar, class H2O = TabulatedComponent<H2O<Scalar>>>
-using Brine DUNE_DEPRECATED_MSG("Now in the namespace: Components") = Dumux::Components::Brine<Scalar, H2O>;
-
 } // end namespace Dumux
 
 #endif
diff --git a/dumux/material/components/cao.hh b/dumux/material/components/cao.hh
index 11aa1c00690fb5aeb12e71d99e380b56ef78d15a..97d2b815512a020231790059820b3b6acfde5e2d 100644
--- a/dumux/material/components/cao.hh
+++ b/dumux/material/components/cao.hh
@@ -25,13 +25,12 @@
 #define DUMUX_CAO_HH
 
 #include <dumux/common/exceptions.hh>
-#include <dune/common/deprecated.hh>
-#include <dumux/material/components/component.hh>
 
 #include <cmath>
 #include <iostream>
 
-#include <dune/common/deprecated.hh>
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/solid.hh>
 
 namespace Dumux {
 namespace Components {
@@ -41,7 +40,9 @@ namespace Components {
  * \brief A class for the CaO properties
  */
 template <class Scalar>
-class CaO : public Component<Scalar, CaO<Scalar> >
+class CaO
+: public Components::Base<Scalar, CaO<Scalar> >
+, public Components::Solid<Scalar, CaO<Scalar> >
 {
 public:
     /*!
@@ -79,9 +80,6 @@ public:
 
 } // end namespace Components
 
-template<class Scalar>
-using CaO DUNE_DEPRECATED_MSG("Now in the namespace: Components") = Dumux::Components::CaO<Scalar>;
-
 } // end namespace Dumux
 
 #endif
diff --git a/dumux/material/components/cao2h2.hh b/dumux/material/components/cao2h2.hh
index ec8a036151ac2fffa0bc29aeae64f5a5c0535d8e..d703164ca5d92dd9706c3ccca0a90aef7af30ac7 100644
--- a/dumux/material/components/cao2h2.hh
+++ b/dumux/material/components/cao2h2.hh
@@ -26,12 +26,12 @@
 
 #include <dumux/common/exceptions.hh>
 #include <dune/common/deprecated.hh>
-#include <dumux/material/components/component.hh>
 
 #include <cmath>
 #include <iostream>
 
-#include <dune/common/deprecated.hh>
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/solid.hh>
 
 namespace Dumux {
 namespace Components {
@@ -41,7 +41,9 @@ namespace Components {
  * \brief A class for the CaO2H2 properties
  */
 template <class Scalar>
-class CaO2H2 : public Component<Scalar, CaO2H2<Scalar> >
+class CaO2H2
+: public Components::Base<Scalar, CaO2H2<Scalar> >
+, public Components::Solid<Scalar, CaO2H2<Scalar> >
 {
 public:
     /*!
@@ -79,9 +81,6 @@ public:
 
 } // end namespace Components
 
-template<class Scalar>
-using CaO2H2 DUNE_DEPRECATED_MSG("Now in the namespace: Components") = Dumux::Components::CaO2H2<Scalar>;
-
 } // end namespace Dumux
 
 #endif
diff --git a/dumux/material/components/ch4.hh b/dumux/material/components/ch4.hh
index c4cd42578db5e9d6cc936299363418cc6a4524cc..85e9cb307bfd9826153c9f0d8c187967b72eb33d 100644
--- a/dumux/material/components/ch4.hh
+++ b/dumux/material/components/ch4.hh
@@ -26,11 +26,10 @@
 
 #include <dumux/material/idealgas.hh>
 
-#include "component.hh"
-
 #include <cmath>
 
-#include <dune/common/deprecated.hh>
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/gas.hh>
 
 namespace Dumux {
 namespace Components {
@@ -41,7 +40,9 @@ namespace Components {
  * \tparam Scalar The type used for scalar values
  */
 template <class Scalar>
-class CH4 : public Component<Scalar, CH4<Scalar> >
+class CH4
+: public Components::Base<Scalar, CH4<Scalar> >
+, public Components::Gas<Scalar, CH4<Scalar> >
 {
     using IdealGas = Dumux::IdealGas<Scalar>;
 
@@ -232,9 +233,6 @@ public:
 
 } // end namespace Components
 
-template<class Scalar>
-using CH4 DUNE_DEPRECATED_MSG("Now in the namespace: Components") = Dumux::Components::CH4<Scalar>;
-
 } // end namespace Dumux
 
 #endif
diff --git a/dumux/material/components/co2.hh b/dumux/material/components/co2.hh
index c7a988caafe7bb1ff923d0335aa12f74ddf8d9a7..ddb4806b35c7eda6ae9a7bd6e8e0e6cd87012229 100644
--- a/dumux/material/components/co2.hh
+++ b/dumux/material/components/co2.hh
@@ -25,14 +25,15 @@
 #define DUMUX_CO2_HH
 
 #include <dumux/common/exceptions.hh>
-#include <dumux/material/components/component.hh>
 #include <dumux/material/constants.hh>
 #include <dumux/material/idealgas.hh>
 
 #include <cmath>
 #include <iostream>
 
-#include <dune/common/deprecated.hh>
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/liquid.hh>
+#include <dumux/material/components/gas.hh>
 
 namespace Dumux {
 namespace Components {
@@ -50,7 +51,10 @@ namespace Components {
 
 // TODO: Is this component limited to supercritical conditions?
 template <class Scalar, class CO2Tables>
-class CO2 : public Component<Scalar, CO2<Scalar, CO2Tables> >
+class CO2
+: public Components::Base<Scalar, CO2<Scalar, CO2Tables> >
+, public Components::Liquid<Scalar, CO2<Scalar, CO2Tables> >
+, public Components::Gas<Scalar, CO2<Scalar, CO2Tables> >
 {
     static const Scalar R;
     using IdealGas = Dumux::IdealGas<Scalar>;
@@ -392,9 +396,6 @@ bool CO2<Scalar, CO2Tables>::warningThrown = false;
 
 } // end namespace Components
 
-template <class Scalar, class CO2Tables>
-using CO2 DUNE_DEPRECATED_MSG("Now in the namespace: Components") = Dumux::Components::CO2<Scalar, CO2Tables>;
-
 } // end namespace Dumux
 
 #endif
diff --git a/dumux/material/components/component.hh b/dumux/material/components/component.hh
deleted file mode 100644
index 3c67f86588c802f30586b1e3d95282d0f3e3c302..0000000000000000000000000000000000000000
--- a/dumux/material/components/component.hh
+++ /dev/null
@@ -1,55 +0,0 @@
-// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
-// vi: set et ts=4 sw=4 sts=4:
-/*****************************************************************************
- *   See the file COPYING for full copying permissions.                      *
- *                                                                           *
- *   This program is free software: you can redistribute it and/or modify    *
- *   it under the terms of the GNU General Public License as published by    *
- *   the Free Software Foundation, either version 2 of the License, or       *
- *   (at your option) any later version.                                     *
- *                                                                           *
- *   This program is distributed in the hope that it will be useful,         *
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
- *   GNU General Public License for more details.                            *
- *                                                                           *
- *   You should have received a copy of the GNU General Public License       *
- *   along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
- *****************************************************************************/
-
-/*!
- * \file
- * \ingroup Components
- * \brief Abstract base class of a pure chemical species.
- */
-#ifndef DUMUX_COMPONENT_HH
-#define DUMUX_COMPONENT_HH
-
-#warning "This header is deprecated. Use base.hh/solid.hh/liquid.hh/gas.hh"
-#include <dune/common/stdstreams.hh>
-#include <dune/common/deprecated.hh>
-#include <dumux/material/components/base.hh>
-#include <dumux/material/components/liquid.hh>
-#include <dumux/material/components/gas.hh>
-#include <dumux/material/components/solid.hh>
-
-namespace Dumux {
-
-/*!
- * \ingroup Components
- * \brief Abstract base class of a pure chemical species.
- *
- * \tparam Scalar The type used for scalar values
- * \tparam Implementation Necessary for static polymorphism
- */
-template <class Scalar, class C>
-class DUNE_DEPRECATED_MSG("Derive from Base and Liquid and/or Gas and/or Solid directly") Component
-: public Components::Base<Scalar, C>
-, public Components::Liquid<Scalar, C>
-, public Components::Gas<Scalar, C>
-, public Components::Solid<Scalar, C>
-{ };
-
-} // end namespace Dumux
-
-#endif
diff --git a/dumux/material/components/constant.hh b/dumux/material/components/constant.hh
index 97d8ec64fb57e07a4dc58b90a5cbc27b68f076fc..48604da7f3539fd4350012b47bbf346fcd0c086e 100644
--- a/dumux/material/components/constant.hh
+++ b/dumux/material/components/constant.hh
@@ -24,9 +24,11 @@
 #ifndef DUMUX_COMPONENTS_CONSTANT_HH
 #define DUMUX_COMPONENTS_CONSTANT_HH
 
-#include <dune/common/deprecated.hh>
 #include <dumux/common/parameters.hh>
-#include "component.hh"
+
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/liquid.hh>
+#include <dumux/material/components/gas.hh>
 
 namespace Dumux {
 namespace Components {
@@ -47,7 +49,10 @@ namespace Components {
  * \note If you only have one component you can also omit the "1.".
  */
 template<int id, class Scalar>
-class Constant : public Component<Scalar, Constant<id, Scalar> >
+class Constant
+: public Components::Base<Scalar, Constant<id, Scalar> >
+, public Components::Liquid<Scalar, Constant<id, Scalar> >
+, public Components::Gas<Scalar, Constant<id, Scalar> >
 {
 
 public:
diff --git a/dumux/material/components/h2.hh b/dumux/material/components/h2.hh
index ae4cc908eca6666259cb30dac8bbc2d698f7fe86..9b4c619896addcc90e101a68b851ed4b96905189 100644
--- a/dumux/material/components/h2.hh
+++ b/dumux/material/components/h2.hh
@@ -26,11 +26,11 @@
 
 #include <dumux/material/idealgas.hh>
 
-#include "component.hh"
-
 #include <cmath>
 
-#include <dune/common/deprecated.hh>
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/gas.hh>
+#include <dumux/material/components/solid.hh>
 
 namespace Dumux {
 namespace Components {
@@ -42,7 +42,10 @@ namespace Components {
  * \tparam Scalar The type used for scalar values
  */
 template <class Scalar>
-class H2 : public Component<Scalar, H2<Scalar> >
+class H2
+: public Components::Base<Scalar, H2<Scalar> >
+, public Components::Gas<Scalar, H2<Scalar> >
+, public Components::Solid<Scalar, H2<Scalar> >
 {
     using IdealGas = Dumux::IdealGas<Scalar>;
 
@@ -224,9 +227,6 @@ public:
 
 } // end namespace Components
 
-template<class Scalar>
-using H2 DUNE_DEPRECATED_MSG("Now in the namespace: Components") = Dumux::Components::H2<Scalar>;
-
 } // end namespace Dumux
 
 #endif
diff --git a/dumux/material/components/h2o.hh b/dumux/material/components/h2o.hh
index e0866cfa1d3ce02602180f0035ea429397f6d56e..2cffd8829b25784855de3b162941489eea882959 100644
--- a/dumux/material/components/h2o.hh
+++ b/dumux/material/components/h2o.hh
@@ -31,14 +31,14 @@
 #include <dumux/common/exceptions.hh>
 #include <dumux/common/valgrind.hh>
 
-#include "component.hh"
-
 #include "iapws/common.hh"
 #include "iapws/region1.hh"
 #include "iapws/region2.hh"
 #include "iapws/region4.hh"
 
-#include <dune/common/deprecated.hh>
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/liquid.hh>
+#include <dumux/material/components/gas.hh>
 
 namespace Dumux {
 namespace Components {
@@ -54,7 +54,10 @@ namespace Components {
  * http://www.iapws.org/relguide/IF97-Rev.pdf \cite IAPWS1997
  */
 template <class Scalar>
-class H2O : public Component<Scalar, H2O<Scalar> >
+class H2O
+: public Components::Base<Scalar, H2O<Scalar> >
+, public Components::Liquid<Scalar, H2O<Scalar> >
+, public Components::Gas<Scalar, H2O<Scalar> >
 {
 
     using Common = IAPWS::Common<Scalar>;
@@ -894,9 +897,6 @@ private:
 
 } // end namespace Components
 
-template<class Scalar>
-using H2O DUNE_DEPRECATED_MSG("Now in the namespace: Components") = Dumux::Components::H2O<Scalar>;
-
 } // end namespace Dumux
 
 #endif
diff --git a/dumux/material/components/heavyoil.hh b/dumux/material/components/heavyoil.hh
index a3db2f96a7ed1e7baafabf434be2d7824fb7bb34..332d55a6a0620532d4eab3dafff961952103754c 100644
--- a/dumux/material/components/heavyoil.hh
+++ b/dumux/material/components/heavyoil.hh
@@ -26,10 +26,11 @@
 #define DUMUX_HEAVYOIL_HH
 
 #include <dumux/material/idealgas.hh>
-#include <dumux/material/components/component.hh>
 #include <dumux/material/constants.hh>
 
-#include <dune/common/deprecated.hh>
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/liquid.hh>
+#include <dumux/material/components/gas.hh>
 
 namespace Dumux {
 namespace Components {
@@ -41,7 +42,10 @@ namespace Components {
  * \tparam Scalar The type used for scalar values
  */
 template <class Scalar>
-class HeavyOil : public Component<Scalar, HeavyOil<Scalar> >
+class HeavyOil
+: public Components::Base<Scalar, HeavyOil<Scalar> >
+, public Components::Liquid<Scalar, HeavyOil<Scalar> >
+, public Components::Gas<Scalar, HeavyOil<Scalar> >
 {
     using Consts = Dumux::Constants<Scalar>;
 
@@ -489,9 +493,6 @@ protected:
 
 } // end namespace Components
 
-template<class Scalar>
-using HeavyOil DUNE_DEPRECATED_MSG("Now in the namespace: Components") = Dumux::Components::HeavyOil<Scalar>;
-
 } // end namespace Dumux
 
 #endif
diff --git a/dumux/material/components/mesitylene.hh b/dumux/material/components/mesitylene.hh
index 61d55d2e31134b39cf5a870ceae523cc232598c8..33cf0af734443106064d9ccd8d9a09b2833e97f4 100644
--- a/dumux/material/components/mesitylene.hh
+++ b/dumux/material/components/mesitylene.hh
@@ -26,10 +26,11 @@
 #define DUMUX_MESITYLENE_HH
 
 #include <dumux/material/idealgas.hh>
-#include <dumux/material/components/component.hh>
 #include <dumux/material/constants.hh>
 
-#include <dune/common/deprecated.hh>
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/liquid.hh>
+#include <dumux/material/components/gas.hh>
 
 namespace Dumux {
 namespace Components {
@@ -41,7 +42,10 @@ namespace Components {
  * \tparam Scalar The type used for scalar values
  */
 template <class Scalar>
-class Mesitylene : public Component<Scalar, Mesitylene<Scalar> >
+class Mesitylene
+: public Components::Base<Scalar, Mesitylene<Scalar> >
+, public Components::Liquid<Scalar, Mesitylene<Scalar> >
+, public Components::Gas<Scalar, Mesitylene<Scalar> >
 {
     using Consts = Constants<Scalar>;
 
@@ -373,9 +377,6 @@ protected:
 
 } // end namespace Components
 
-template<class Scalar>
-using Mesitylene DUNE_DEPRECATED_MSG("Now in the namespace: Components") = Dumux::Components::Mesitylene<Scalar>;
-
 } // end namespace Dumux
 
 #endif
diff --git a/dumux/material/components/n2.hh b/dumux/material/components/n2.hh
index 8f674d841440c88a11237ffb3021c82864034f4a..0df4f76e572af7661e161a6355805969c0311606 100644
--- a/dumux/material/components/n2.hh
+++ b/dumux/material/components/n2.hh
@@ -26,11 +26,10 @@
 
 #include <dumux/material/idealgas.hh>
 
-#include "component.hh"
-
 #include <cmath>
 
-#include <dune/common/deprecated.hh>
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/gas.hh>
 
 namespace Dumux {
 namespace Components {
@@ -42,7 +41,9 @@ namespace Components {
  * \tparam Scalar The type used for scalar values
  */
 template <class Scalar>
-class N2 : public Component<Scalar, N2<Scalar> >
+class N2
+: public Components::Base<Scalar, N2<Scalar> >
+, public Components::Gas<Scalar, N2<Scalar> >
 {
     using IdealGas = Dumux::IdealGas<Scalar>;
 
@@ -275,9 +276,6 @@ public:
 
 } // end namespace Components
 
-template<class Scalar>
-using N2 DUNE_DEPRECATED_MSG("Now in the namespace: Components") = Dumux::Components::N2<Scalar>;
-
 } // end namespace Dumux
 
 #endif
diff --git a/dumux/material/components/nacl.hh b/dumux/material/components/nacl.hh
index c831fc8e32710e77fc8d608c0448725218115b35..81e2d2c2c7a6e7744600028aa6b0f1303d9569b5 100644
--- a/dumux/material/components/nacl.hh
+++ b/dumux/material/components/nacl.hh
@@ -25,12 +25,13 @@
 #define DUMUX_NACL_HH
 
 #include <dumux/common/exceptions.hh>
-#include <dumux/material/components/component.hh>
 
 #include <cmath>
 #include <iostream>
 
-#include <dune/common/deprecated.hh>
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/liquid.hh>
+#include <dumux/material/components/solid.hh>
 
 namespace Dumux {
 namespace Components {
@@ -40,7 +41,10 @@ namespace Components {
  * \brief A class for the NaCl properties
  */
 template <class Scalar>
-class NaCl : public Component<Scalar, NaCl<Scalar> >
+class NaCl
+: public Components::Base<Scalar, NaCl<Scalar> >
+, public Components::Liquid<Scalar, NaCl<Scalar> >
+, public Components::Solid<Scalar, NaCl<Scalar> >
 {
 public:
     /*!
@@ -88,9 +92,6 @@ public:
 
 } // end namespace Components
 
-template<class Scalar>
-using NaCl DUNE_DEPRECATED_MSG("Now in the namespace: Components") = Dumux::Components::NaCl<Scalar>;
-
 } // end namespace Dumux
 
 #endif
diff --git a/dumux/material/components/o2.hh b/dumux/material/components/o2.hh
index 90b64fc9dbb5473e8d6f59ef98235d83bafd0a84..95c75bc5c650c76d8117674df9d5ed6bd0cb5bdb 100644
--- a/dumux/material/components/o2.hh
+++ b/dumux/material/components/o2.hh
@@ -26,11 +26,10 @@
 
 #include <dumux/material/idealgas.hh>
 
-#include "component.hh"
-
 #include <cmath>
 
-#include <dune/common/deprecated.hh>
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/gas.hh>
 
 namespace Dumux {
 namespace Components {
@@ -42,7 +41,9 @@ namespace Components {
  * \tparam Scalar The type used for scalar values
  */
 template <class Scalar>
-class O2 : public Component<Scalar, O2<Scalar> >
+class O2
+: public Components::Base<Scalar, O2<Scalar> >
+, public Components::Gas<Scalar, O2<Scalar> >
 {
     using IdealGas = Dumux::IdealGas<Scalar>;
 
@@ -251,9 +252,6 @@ public:
 
 } // end namespace Components
 
-template<class Scalar>
-using O2 DUNE_DEPRECATED_MSG("Now in the namespace: Components") = Dumux::Components::O2<Scalar>;
-
 } // end namespace Dumux
 
 #endif
diff --git a/dumux/material/components/simpleco2.hh b/dumux/material/components/simpleco2.hh
index 5751d38169c19eda5c20714da504aa1a51f3212d..ae381804f0b86edb3ec080c36dd0c42bc40c0f94 100644
--- a/dumux/material/components/simpleco2.hh
+++ b/dumux/material/components/simpleco2.hh
@@ -26,11 +26,11 @@
 
 #include <dumux/material/idealgas.hh>
 
-#include "component.hh"
-
 #include <cmath>
 
-#include <dune/common/deprecated.hh>
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/liquid.hh>
+#include <dumux/material/components/gas.hh>
 
 namespace Dumux {
 namespace Components {
@@ -42,7 +42,10 @@ namespace Components {
  * \tparam Scalar The type used for scalar values
  */
 template <class Scalar>
-class SimpleCO2 : public Component<Scalar, SimpleCO2<Scalar> >
+class SimpleCO2
+: public Components::Base<Scalar, SimpleCO2<Scalar> >
+, public Components::Liquid<Scalar, SimpleCO2<Scalar> >
+, public Components::Gas<Scalar, SimpleCO2<Scalar> >
 {
     using IdealGas = Dumux::IdealGas<Scalar>;
 
@@ -201,9 +204,6 @@ public:
 
 } // end namespace Components
 
-template<class Scalar>
-using SimpleCO2 DUNE_DEPRECATED_MSG("Now in the namespace: Components") = Dumux::Components::SimpleCO2<Scalar>;
-
 } // end namespace Dumux
 
 #endif
diff --git a/dumux/material/components/simpleh2o.hh b/dumux/material/components/simpleh2o.hh
index 90f835eabcb34e84617568b142a63ff7524f253c..f01aef360df47f73b8f123558633805dc17fdadc 100644
--- a/dumux/material/components/simpleh2o.hh
+++ b/dumux/material/components/simpleh2o.hh
@@ -27,11 +27,11 @@
 
 #include <dumux/material/idealgas.hh>
 
-#include "component.hh"
-
 #include <cmath>
 
-#include <dune/common/deprecated.hh>
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/liquid.hh>
+#include <dumux/material/components/gas.hh>
 
 namespace Dumux {
 namespace Components {
@@ -44,7 +44,10 @@ namespace Components {
  * \tparam Scalar The type used for scalar values
  */
 template <class Scalar>
-class SimpleH2O : public Component<Scalar, SimpleH2O<Scalar> >
+class SimpleH2O
+: public Components::Base<Scalar, SimpleH2O<Scalar> >
+, public Components::Liquid<Scalar, SimpleH2O<Scalar> >
+, public Components::Gas<Scalar, SimpleH2O<Scalar> >
 {
     using IdealGas = Dumux::IdealGas<Scalar>;
 
@@ -337,13 +340,10 @@ public:
 };
 
 template <class Scalar>
-const Scalar SimpleH2O<Scalar>::R = Constants<Scalar>::R / 18e-3;
+const Scalar Components::SimpleH2O<Scalar>::R = Constants<Scalar>::R / 18e-3;
 
 } // end namespace Components
 
-template<class Scalar>
-using SimpleH2O DUNE_DEPRECATED_MSG("Now in the namespace: Components") = Dumux::Components::SimpleH2O<Scalar>;
-
 } // end namespace Dumux
 
 #endif
diff --git a/dumux/material/components/tabulatedcomponent.hh b/dumux/material/components/tabulatedcomponent.hh
index d4d04ae850c3c04445059c5364879059ca72a7c7..103c82cd9df9b1296bbda816a8d8c61cbdc8f8d6 100644
--- a/dumux/material/components/tabulatedcomponent.hh
+++ b/dumux/material/components/tabulatedcomponent.hh
@@ -34,7 +34,6 @@
 #include <vector>
 #include <iostream>
 
-#include <dune/common/deprecated.hh>
 #include <dumux/common/exceptions.hh>
 #include <dumux/material/components/componenttraits.hh>
 
@@ -77,7 +76,7 @@ namespace Components {
  *                          values for gas&liquid phase will be set
  *                          depending on the vapor pressure.
  */
-template <class RawComponent, bool useVaporPressure = true>
+template <class RawComponent, bool useVaporPressure=true>
 class TabulatedComponent
 {
 public:
@@ -1032,9 +1031,6 @@ unsigned TabulatedComponent<RawComponent, useVaporPressure>::nDensity_;
 
 } // end namespace Components
 
-template <class RawComponent, bool useVaporPressure=true>
-using TabulatedComponent DUNE_DEPRECATED_MSG("Now in the namespace: Components") = Dumux::Components::TabulatedComponent<RawComponent, useVaporPressure>;
-
 } // end namespace Dumux
 
 #endif
diff --git a/dumux/material/components/trichloroethene.hh b/dumux/material/components/trichloroethene.hh
index dad65e88a04b04de544a3bce241a7eb987a1da25..0be32475fee403440bdea1050a00655f46d4c2b3 100644
--- a/dumux/material/components/trichloroethene.hh
+++ b/dumux/material/components/trichloroethene.hh
@@ -25,9 +25,10 @@
 #define DUMUX_TRICHLOROETHENE_HH
 
 #include <dumux/material/idealgas.hh>
-#include "component.hh"
 
-#include <dune/common/deprecated.hh>
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/liquid.hh>
+#include <dumux/material/components/gas.hh>
 
 namespace Dumux {
 namespace Components {
@@ -39,7 +40,10 @@ namespace Components {
  * \tparam Scalar The type used for scalar values
  */
 template <class Scalar>
-class Trichloroethene : public Component<Scalar, Trichloroethene<Scalar> >
+class Trichloroethene
+: public Components::Base<Scalar, Trichloroethene<Scalar> >
+, public Components::Liquid<Scalar, Trichloroethene<Scalar> >
+, public Components::Gas<Scalar, Trichloroethene<Scalar> >
 {
 
 public:
@@ -156,9 +160,6 @@ public:
 
 } // end namespace Components
 
-template<class Scalar>
-using Trichloroethene DUNE_DEPRECATED_MSG("Now in the namespace: Components") = Dumux::Components::Trichloroethene<Scalar>;
-
 } // end namespace Dumux
 
 #endif
diff --git a/dumux/material/components/unit.hh b/dumux/material/components/unit.hh
deleted file mode 100644
index ee7fa7484fdbc499eeb59b7e6f6321ee5895f3c9..0000000000000000000000000000000000000000
--- a/dumux/material/components/unit.hh
+++ /dev/null
@@ -1,82 +0,0 @@
-// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
-// vi: set et ts=4 sw=4 sts=4:
-/*****************************************************************************
- *   See the file COPYING for full copying permissions.                      *
- *                                                                           *
- *   This program is free software: you can redistribute it and/or modify    *
- *   it under the terms of the GNU General Public License as published by    *
- *   the Free Software Foundation, either version 2 of the License, or       *
- *   (at your option) any later version.                                     *
- *                                                                           *
- *   This program is distributed in the hope that it will be useful,         *
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
- *   GNU General Public License for more details.                            *
- *                                                                           *
- *   You should have received a copy of the GNU General Public License       *
- *   along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
- *****************************************************************************/
-/*!
- * \file
- * \ingroup Components
- * \brief A component using a value of 1 for all fluid properties.
- */
-#ifndef DUMUX_UNIT_HH
-#define DUMUX_UNIT_HH
-
-#include <dune/common/deprecated.hh>
-#include "component.hh"
-
-namespace Dumux
-{
-/*!
- * \ingroup Components
- * \brief A component using a value of one for all fluid properties.
- *
- * \tparam Scalar The type used for scalar values
- */
-template <class Scalar>
-class DUNE_DEPRECATED_MSG("Use Components::Constant<id, Scalar> instead. The default is a unit fluid system.")
-Unit : public Component<Scalar, Unit<Scalar> >
-{
-
-public:
-    /*!
-     * \brief A human readable name for the component.
-     */
-    static std::string name()
-    { return "Unit"; }
-
-    /*!
-     * \brief Returns true if the liquid phase is assumed to be compressible
-     */
-    static constexpr bool liquidIsCompressible()
-    { return false; }
-
-    /*!
-     * \brief Sets the density to 1 \f$\mathrm{[kg/m^3]}\f$.
-     *
-     * \param temperature phase temperature in \f$\mathrm{[K]}\f$
-     * \param pressure phase pressure in \f$\mathrm{[Pa]}\f$
-     */
-    static Scalar liquidDensity(Scalar temperature, Scalar pressure)
-    {
-        return 1.0;
-    }
-
-    /*!
-     * \brief Sets the viscosity to 1 \f$\mathrm{[Pa*s]}\f$.
-     *
-     * \param temperature phase temperature in \f$\mathrm{[K]}\f$
-     * \param pressure phase pressure in \f$\mathrm{[Pa]}\f$
-     */
-    static Scalar liquidViscosity(Scalar temperature, Scalar pressure)
-    {
-        return 1.0;
-    }
-
-};
-
-} // end namespace
-
-#endif
diff --git a/dumux/material/components/xylene.hh b/dumux/material/components/xylene.hh
index f144d23a62f9876a0a34ebdf8e803db08d7f4ea7..aa88cc20b314fd94c66dda4d588a23433df153e2 100644
--- a/dumux/material/components/xylene.hh
+++ b/dumux/material/components/xylene.hh
@@ -26,10 +26,11 @@
 
 #include <cmath>
 #include <dumux/material/idealgas.hh>
-#include <dumux/material/components/component.hh>
 #include <dumux/material/constants.hh>
 
-#include <dune/common/deprecated.hh>
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/liquid.hh>
+#include <dumux/material/components/gas.hh>
 
 namespace Dumux {
 namespace Components {
@@ -41,7 +42,10 @@ namespace Components {
  * \tparam Scalar The type used for scalar values
  */
 template <class Scalar>
-class Xylene : public Component<Scalar, Xylene<Scalar> >
+class Xylene
+: public Components::Base<Scalar, Xylene<Scalar> >
+, public Components::Liquid<Scalar, Xylene<Scalar> >
+, public Components::Gas<Scalar, Xylene<Scalar> >
 {
     using Consts = Constants<Scalar>;
 
@@ -387,9 +391,6 @@ public:
 
 } // end namespace Components
 
-template<class Scalar>
-using Xylene DUNE_DEPRECATED_MSG("Now in the namespace: Components") = Dumux::Components::Xylene<Scalar>;
-
 } // end namespace Dumux
 
 #endif
diff --git a/dumux/material/fluidsystems/brineair.hh b/dumux/material/fluidsystems/brineair.hh
index 7472d5ce8ea04fec82eff20ddf4dae2b7494273c..ed3871ae00311acd683f1d8e8d0647e2b7317479 100644
--- a/dumux/material/fluidsystems/brineair.hh
+++ b/dumux/material/fluidsystems/brineair.hh
@@ -50,7 +50,7 @@ namespace FluidSystems {
  *  water of the IAPWS-formulation.
  */
 template <class Scalar,
-          class H2Otype = TabulatedComponent<H2O<Scalar>>,
+          class H2Otype = Components::TabulatedComponent<Components::H2O<Scalar>>,
           bool useComplexRelations=true>
 class BrineAir
 : public BaseFluidSystem<Scalar, BrineAir<Scalar, H2Otype, useComplexRelations>>
@@ -63,10 +63,10 @@ public:
 
     using H2O = H2Otype;
     using H2O_Air = BinaryCoeff::H2O_Air;
-    using Air = Dumux::Air<Scalar>;
+    using Air = Dumux::Components::Air<Scalar>;
     using Brine_Air = BinaryCoeff::Brine_Air<Scalar, Air>;
-    using Brine = Dumux::Brine<Scalar,H2Otype>;
-    using NaCl = Dumux::NaCl<Scalar>;
+    using Brine = Dumux::Components::Brine<Scalar,H2Otype>;
+    using NaCl = Dumux::Components::NaCl<Scalar>;
 
     // the type of parameter cache objects. this fluid system does not
     using ParameterCache = NullParameterCache;
diff --git a/dumux/material/fluidsystems/brineco2.hh b/dumux/material/fluidsystems/brineco2.hh
index 43b434d71e05e2e2c9308d1677be2bc867805328..81d2be0181d109480363b36efa0356a0a8a78270 100644
--- a/dumux/material/fluidsystems/brineco2.hh
+++ b/dumux/material/fluidsystems/brineco2.hh
@@ -48,9 +48,9 @@ namespace FluidSystems
  */
 template<class Scalar,
          class CO2Table,
-         class H2Otype = TabulatedComponent<H2O<Scalar> >,
-         class BrineRawComponent = Brine<Scalar, H2O<Scalar> >,
-         class Brinetype = TabulatedComponent<BrineRawComponent> >
+         class H2Otype = Components::TabulatedComponent<Components::H2O<Scalar> >,
+         class BrineRawComponent = Components::Brine<Scalar, Components::H2O<Scalar> >,
+         class Brinetype = Components::TabulatedComponent<BrineRawComponent> >
 class BrineCO2
 : public BaseFluidSystem<Scalar, BrineCO2<Scalar, CO2Table, H2Otype, BrineRawComponent, Brinetype> >
 {
@@ -64,7 +64,7 @@ public:
     using ParameterCache = NullParameterCache;
     using H2O = H2Otype;
     using Brine = Brinetype;
-    using CO2 = Dumux::CO2<Scalar, CO2Table>;
+    using CO2 = Dumux::Components::CO2<Scalar, CO2Table>;
 
     static const int numComponents = 2;
     static const int numPhases = 2;
diff --git a/dumux/material/fluidsystems/h2oair.hh b/dumux/material/fluidsystems/h2oair.hh
index 51a3989b00bf090349635135fb4c0d94d854a9b8..2fad865ceda666fd6395268fa635edd0c126972e 100644
--- a/dumux/material/fluidsystems/h2oair.hh
+++ b/dumux/material/fluidsystems/h2oair.hh
@@ -53,7 +53,7 @@ namespace FluidSystems {
  * default with the tabulated version of water of the IAPWS-formulation.
  */
 template <class Scalar,
-          class H2Otype = TabulatedComponent<H2O<Scalar> >,
+          class H2Otype = Components::TabulatedComponent<Components::H2O<Scalar> >,
           bool useComplexRelations = true>
 class H2OAir
 : public BaseFluidSystem<Scalar, H2OAir<Scalar, H2Otype, useComplexRelations> >
@@ -64,7 +64,7 @@ class H2OAir
 
 public:
     using H2O = H2Otype;
-    using Air = Dumux::Air<Scalar>;
+    using Air = Dumux::Components::Air<Scalar>;
 
     static constexpr int numPhases = 2;
 
diff --git a/dumux/material/fluidsystems/h2oairmesitylene.hh b/dumux/material/fluidsystems/h2oairmesitylene.hh
index cab6686f8bc0133d4b465fad5c9e5d33db33aea0..cbba16463a1b253e179852f1e9a78a1060eec415 100644
--- a/dumux/material/fluidsystems/h2oairmesitylene.hh
+++ b/dumux/material/fluidsystems/h2oairmesitylene.hh
@@ -49,7 +49,7 @@ namespace FluidSystems {
  * It assumes all phases to be ideal mixtures.
  */
 template <class Scalar,
-          class H2OType = TabulatedComponent<H2O<Scalar> > >
+          class H2OType = Components::TabulatedComponent<Components::H2O<Scalar> > >
 class H2OAirMesitylene
     : public BaseFluidSystem<Scalar, H2OAirMesitylene<Scalar, H2OType> >
 {
@@ -57,8 +57,8 @@ class H2OAirMesitylene
     using Base = BaseFluidSystem<Scalar, ThisType>;
 
 public:
-    using NAPL = Mesitylene<Scalar>;
-    using Air = Dumux::Air<Scalar>;
+    using NAPL = Components::Mesitylene<Scalar>;
+    using Air = Dumux::Components::Air<Scalar>;
     using H2O = H2OType;
 
 
diff --git a/dumux/material/fluidsystems/h2oairxylene.hh b/dumux/material/fluidsystems/h2oairxylene.hh
index dbcf45716f0c53afb1b760b2053562b8a9a64d97..7daa8d8db6085693adfc8918a3629a75f4cf8f72 100644
--- a/dumux/material/fluidsystems/h2oairxylene.hh
+++ b/dumux/material/fluidsystems/h2oairxylene.hh
@@ -50,7 +50,7 @@ namespace FluidSystems
  * \note This fluid system assumes all phases to be ideal mixtures.
  */
 template <class Scalar,
-          class H2OType = TabulatedComponent<H2O<Scalar> > >
+          class H2OType = Components::TabulatedComponent<Components::H2O<Scalar> > >
 class H2OAirXylene
     : public BaseFluidSystem<Scalar, H2OAirXylene<Scalar, H2OType> >
 {
@@ -59,8 +59,8 @@ class H2OAirXylene
 
 public:
     using H2O = H2OType;
-    using NAPL = Xylene<Scalar>;
-    using Air = Dumux::Air<Scalar>;
+    using NAPL = Components::Xylene<Scalar>;
+    using Air = Dumux::Components::Air<Scalar>;
 
     static const int numPhases = 3;
     static const int numComponents = 3;
diff --git a/dumux/material/fluidsystems/h2oheavyoilfluidsystem.hh b/dumux/material/fluidsystems/h2oheavyoilfluidsystem.hh
index b8576fbfda84e945e6670c344cc13cd68639ae4c..e61b1882e931c8325368add7118fbde48c556b5b 100644
--- a/dumux/material/fluidsystems/h2oheavyoilfluidsystem.hh
+++ b/dumux/material/fluidsystems/h2oheavyoilfluidsystem.hh
@@ -41,7 +41,7 @@ namespace FluidSystems {
  *        components in both, the liquid and the gas phase.
  */
 template <class Scalar,
-          class H2OType = Dumux::TabulatedComponent<Dumux::H2O<Scalar> > >
+          class H2OType = Dumux::Components::TabulatedComponent<Dumux::Components::H2O<Scalar> > >
 class H2OHeavyOil
     : public BaseFluidSystem<Scalar, H2OHeavyOil<Scalar, H2OType> >
 {
@@ -49,7 +49,7 @@ class H2OHeavyOil
     using Base = BaseFluidSystem<Scalar, ThisType>;
 
 public:
-    using HeavyOil = Dumux::HeavyOil<Scalar>;
+    using HeavyOil = Dumux::Components::HeavyOil<Scalar>;
     using H2O = H2OType;
 
 
diff --git a/dumux/material/fluidsystems/h2on2.hh b/dumux/material/fluidsystems/h2on2.hh
index f36c70cdc398c553b738e2abb4798a9838f84051..250a4d63b93fb143cfd4ce8d14dfc22648fa1e9d 100644
--- a/dumux/material/fluidsystems/h2on2.hh
+++ b/dumux/material/fluidsystems/h2on2.hh
@@ -58,8 +58,8 @@ class H2ON2
 
     // convenience using declarations
     using IdealGas = Dumux::IdealGas<Scalar>;
-    using TabulatedH2O = TabulatedComponent<Dumux::H2O<Scalar> >;
-    using SimpleN2 = Dumux::N2<Scalar>;
+    using TabulatedH2O = Components::TabulatedComponent<Dumux::Components::H2O<Scalar> >;
+    using SimpleN2 = Dumux::Components::N2<Scalar>;
 
 public:
     /****************************************
diff --git a/dumux/material/fluidsystems/h2on2o2.hh b/dumux/material/fluidsystems/h2on2o2.hh
index e038e1eaf54ac26627691e1bfb6c8972425dafe3..123e0fa81cbb1440cce3ed3ebbb3944c5edc4812 100644
--- a/dumux/material/fluidsystems/h2on2o2.hh
+++ b/dumux/material/fluidsystems/h2on2o2.hh
@@ -67,9 +67,9 @@ class H2ON2O2
 
     using IdealGas = Dumux::IdealGas<Scalar>;
     using Constants = Dumux::Constants<Scalar>;
-    using TabulatedH2O = TabulatedComponent<Dumux::H2O<Scalar> >;
-    using SimpleN2 = Dumux::N2<Scalar>;
-    using O2 = Dumux::O2<Scalar>;
+    using TabulatedH2O = Components::TabulatedComponent<Dumux::Components::H2O<Scalar> >;
+    using SimpleN2 = Dumux::Components::N2<Scalar>;
+    using O2 = Dumux::Components::O2<Scalar>;
 
     //! The components for pure water
     using H2O = TabulatedH2O;
diff --git a/dumux/material/fluidsystems/spe5.hh b/dumux/material/fluidsystems/spe5.hh
index b825718d3584d1a8b68beaddee89e37edc240f78..99615ae22e26ef9a53615b34088b6e14f76da5fc 100644
--- a/dumux/material/fluidsystems/spe5.hh
+++ b/dumux/material/fluidsystems/spe5.hh
@@ -78,7 +78,7 @@ public:
     static const int oPhaseIdx = 2;
 
     //! The component for pure water to be used
-    using H2O = Dumux::H2O<Scalar>;
+    using H2O = Dumux::Components::H2O<Scalar>;
 
     /*!
      * \brief Return the human readable name of a fluid phase
diff --git a/dumux/material/fluidsystems/steamn2cao2h2.hh b/dumux/material/fluidsystems/steamn2cao2h2.hh
index faf7b6e1838df05936bd0659aa3df29f649d2728..13f339e64231e4a1822f580ce03bd765824fb5ad 100644
--- a/dumux/material/fluidsystems/steamn2cao2h2.hh
+++ b/dumux/material/fluidsystems/steamn2cao2h2.hh
@@ -56,7 +56,7 @@ namespace FluidSystems
  */
 
 template <class Scalar,
-           class H2Otype = Dumux::TabulatedComponent<Dumux::H2O<Scalar>>,
+           class H2Otype = Dumux::Components::TabulatedComponent<Dumux::Components::H2O<Scalar>>,
           bool useComplexRelations=true>
 class SteamN2CaO2H2
 : public BaseFluidSystem<Scalar, SteamN2CaO2H2<Scalar, H2Otype, useComplexRelations> >
@@ -69,10 +69,10 @@ class SteamN2CaO2H2
 public:
     using H2O = H2Otype;
     using H2O_N2 = Dumux::BinaryCoeff::H2O_N2;
-    using N2 = Dumux::N2<Scalar>;
+    using N2 = Dumux::Components::N2<Scalar>;
 
-    using CaO = Dumux::CaO<Scalar>;
-    using CaO2H2 =  Dumux::CaO2H2<Scalar>;
+    using CaO = Dumux::Components::CaO<Scalar>;
+    using CaO2H2 =  Dumux::Components::CaO2H2<Scalar>;
 
     // the type of parameter cache objects. this fluid system does not
     using ParameterCache = Dumux::NullParameterCache;
diff --git a/dumux/porousmediumflow/richards/model.hh b/dumux/porousmediumflow/richards/model.hh
index 7b89488361bb4f7126fcc56ba21584b1bc5c9796..938b421d6a1c29d2c4c9052702d088bff4bda3d3 100644
--- a/dumux/porousmediumflow/richards/model.hh
+++ b/dumux/porousmediumflow/richards/model.hh
@@ -216,7 +216,7 @@ SET_TYPE_PROP(Richards, SpatialParams, FVSpatialParams<TypeTag>);
 SET_PROP(Richards, FluidSystem)
 {
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using type = FluidSystems::H2OAir<Scalar, SimpleH2O<Scalar>, false>;
+    using type = FluidSystems::H2OAir<Scalar, Components::SimpleH2O<Scalar>, false>;
 };
 
 /*!
diff --git a/dumux/porousmediumflow/richardsnc/model.hh b/dumux/porousmediumflow/richardsnc/model.hh
index 91720a3e1cf335b8c422f38e6ed20df4ac1220bb..c5d450e3d82f6c1cba3813adfd769ea26365c795 100644
--- a/dumux/porousmediumflow/richardsnc/model.hh
+++ b/dumux/porousmediumflow/richardsnc/model.hh
@@ -159,7 +159,7 @@ SET_BOOL_PROP(RichardsNC, EnableWaterDiffusionInAir, false);
 SET_PROP(RichardsNC, FluidSystem)
 {
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using type = FluidSystems::LiquidPhaseTwoC<Scalar, SimpleH2O<Scalar>, Components::Constant<1, Scalar>>;
+    using type = FluidSystems::LiquidPhaseTwoC<Scalar, Components::SimpleH2O<Scalar>, Components::Constant<1, Scalar>>;
 };
 
 /*!
diff --git a/test/freeflow/navierstokes/channeltestproblem.hh b/test/freeflow/navierstokes/channeltestproblem.hh
index d70bb3aab5e7ddd596a8ebb139403ab5740583b4..a60d2b6704c7d6fab3545708b4c3d50f7794fc72 100644
--- a/test/freeflow/navierstokes/channeltestproblem.hh
+++ b/test/freeflow/navierstokes/channeltestproblem.hh
@@ -50,7 +50,7 @@ SET_PROP(ChannelTestTypeTag, FluidSystem)
 {
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 #if NONISOTHERMAL
-    using type = FluidSystems::OnePLiquid<Scalar, SimpleH2O<Scalar> >;
+    using type = FluidSystems::OnePLiquid<Scalar, Components::SimpleH2O<Scalar> >;
 #else
     using type = FluidSystems::OnePLiquid<Scalar, Components::Constant<1, Scalar> >;
 #endif
diff --git a/test/freeflow/rans/pipelauferproblem.hh b/test/freeflow/rans/pipelauferproblem.hh
index 9db008aba9c7ce8cab50bd90c246b1eef33e78ed..c8547eaabfa7cd993651280abf558b2430a0780c 100644
--- a/test/freeflow/rans/pipelauferproblem.hh
+++ b/test/freeflow/rans/pipelauferproblem.hh
@@ -51,7 +51,7 @@ NEW_TYPE_TAG(PipeLauferProblem, INHERITS_FROM(StaggeredFreeFlowModel, ZeroEq));
 SET_PROP(PipeLauferProblem, FluidSystem)
 {
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using type = FluidSystems::OnePGas<Scalar, Air<Scalar> >;
+    using type = FluidSystems::OnePGas<Scalar, Components::Air<Scalar> >;
 };
 
 // Set the grid type
diff --git a/test/material/tabulation/test_tabulation.cc b/test/material/tabulation/test_tabulation.cc
index d55fe4e44edfbc205ea79e27ccbfd6968b588004..676b014ba0fa811bd534170675f85a732d49f3d8 100644
--- a/test/material/tabulation/test_tabulation.cc
+++ b/test/material/tabulation/test_tabulation.cc
@@ -46,9 +46,8 @@ void isSame(const char *str, Scalar v, Scalar vRef, Scalar tol=1e-3)
 int main()
 {
     using Scalar = double;
-    using IapwsH2O = Dumux::H2O<Scalar>;
-    using TabulatedH2O = Dumux::TabulatedComponent<IapwsH2O>;
-
+    using IapwsH2O = Dumux::Components::H2O<Scalar>;
+    using TabulatedH2O = Dumux::Components::TabulatedComponent<IapwsH2O>;
     Scalar tempMin = 274.15;
     Scalar tempMax = 622.15;
     int nTemp = static_cast<int>(tempMax - tempMin) * 6/8;
diff --git a/test/porousmediumflow/1p/implicit/1pniconductionproblem.hh b/test/porousmediumflow/1p/implicit/1pniconductionproblem.hh
index c0d773cea4829353e78668ffc68d65357300fbec..d4f6eb7bfb964ce93b145415baa94c0782806977 100644
--- a/test/porousmediumflow/1p/implicit/1pniconductionproblem.hh
+++ b/test/porousmediumflow/1p/implicit/1pniconductionproblem.hh
@@ -63,7 +63,7 @@ SET_TYPE_PROP(OnePNIConductionTypeTag, Problem,
 // Set the fluid system
 SET_TYPE_PROP(OnePNIConductionTypeTag, FluidSystem,
             FluidSystems::OnePLiquid<typename GET_PROP_TYPE(TypeTag, Scalar),
-                                                           H2O<typename GET_PROP_TYPE(TypeTag, Scalar)> >);
+                                                           Components::H2O<typename GET_PROP_TYPE(TypeTag, Scalar)> >);
 // Set the spatial parameters
 SET_TYPE_PROP(OnePNIConductionTypeTag,
               SpatialParams,
@@ -106,7 +106,7 @@ class OnePNIConductionProblem : public PorousMediumFlowProblem<TypeTag>
     using ThermalConductivityModel = typename GET_PROP_TYPE(TypeTag, ThermalConductivityModel);
     using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
     using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
-    using IapwsH2O = H2O<Scalar>;
+    using IapwsH2O = Components::H2O<Scalar>;
 
     enum { dimWorld = GridView::dimensionworld };
 
diff --git a/test/porousmediumflow/1p/implicit/1pniconvectionproblem.hh b/test/porousmediumflow/1p/implicit/1pniconvectionproblem.hh
index acfaba9d4970541ae76965c4b9250330959a0ee9..dba58dc2d6634f04b3dd6aa70fb717a132d8217c 100644
--- a/test/porousmediumflow/1p/implicit/1pniconvectionproblem.hh
+++ b/test/porousmediumflow/1p/implicit/1pniconvectionproblem.hh
@@ -62,7 +62,7 @@ SET_TYPE_PROP(OnePNIConvectionTypeTag, Problem, OnePNIConvectionProblem<TypeTag>
 // Set the fluid system
 SET_TYPE_PROP(OnePNIConvectionTypeTag, FluidSystem,
               FluidSystems::OnePLiquid<typename GET_PROP_TYPE(TypeTag, Scalar),
-                                                           H2O<typename GET_PROP_TYPE(TypeTag, Scalar)> >);
+                                                           Components::H2O<typename GET_PROP_TYPE(TypeTag, Scalar)> >);
 
 // Set the spatial parameters
 SET_TYPE_PROP(OnePNIConvectionTypeTag, SpatialParams, OnePNISpatialParams<TypeTag>);
@@ -108,7 +108,7 @@ class OnePNIConvectionProblem : public PorousMediumFlowProblem<TypeTag>
     using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, GridVolumeVariables)::LocalView;
     using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
     using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
-    using IapwsH2O = H2O<Scalar>;
+    using IapwsH2O = Components::H2O<Scalar>;
 
     enum { dimWorld = GridView::dimensionworld };
 
diff --git a/test/porousmediumflow/1p/implicit/1ptestproblem.hh b/test/porousmediumflow/1p/implicit/1ptestproblem.hh
index e1245f64c321fe5c0d94181b7f881edb009eb36d..46efb421f315bcf12d98d798f188be7aacc513f8 100644
--- a/test/porousmediumflow/1p/implicit/1ptestproblem.hh
+++ b/test/porousmediumflow/1p/implicit/1ptestproblem.hh
@@ -51,7 +51,7 @@ NEW_TYPE_TAG(OnePTestCCMpfaTypeTag, INHERITS_FROM(CCMpfaModel, OnePTestTypeTag))
 SET_PROP(OnePTestTypeTag, FluidSystem)
 {
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using type = FluidSystems::OnePLiquid<Scalar, SimpleH2O<Scalar> >;
+    using type = FluidSystems::OnePLiquid<Scalar, Components::SimpleH2O<Scalar> >;
 };
 
 // Set the grid type
diff --git a/test/porousmediumflow/1p/implicit/compressible/problem.hh b/test/porousmediumflow/1p/implicit/compressible/problem.hh
index c19a961f36d80ce88b601e244a34a168ea78ba08..08a583c5cb0e4b1eeed33bc5906fad9b757c0216 100644
--- a/test/porousmediumflow/1p/implicit/compressible/problem.hh
+++ b/test/porousmediumflow/1p/implicit/compressible/problem.hh
@@ -65,7 +65,7 @@ SET_PROP(OnePCompressible, FluidSystem)
 private:
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 public:
-    using type = FluidSystems::OnePLiquid<Scalar, TabulatedComponent<H2O<Scalar>>>;
+    using type = FluidSystems::OnePLiquid<Scalar, Components::TabulatedComponent<Components::H2O<Scalar>>>;
 };
 
 // Disable caching (for testing purposes)
@@ -98,7 +98,7 @@ public:
     OnePTestProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
     : ParentType(fvGridGeometry)
     {
-        TabulatedComponent<H2O<Scalar>>::init(272.15, 294.15, 10,
+        Components::TabulatedComponent<Components::H2O<Scalar>>::init(272.15, 294.15, 10,
                                                       1.0e4, 1.0e6, 200);
     }
 
diff --git a/test/porousmediumflow/1p/implicit/fractureproblem.hh b/test/porousmediumflow/1p/implicit/fractureproblem.hh
index 4ab317b9d4793f62dfc4d0fa04f32f41b398de33..cd1dc97476f9b8a56b54637777041eb8684a55f0 100644
--- a/test/porousmediumflow/1p/implicit/fractureproblem.hh
+++ b/test/porousmediumflow/1p/implicit/fractureproblem.hh
@@ -64,7 +64,7 @@ SET_TYPE_PROP(FractureTypeTag, Problem, Dumux::FractureProblem<TypeTag>);
 SET_PROP(FractureTypeTag, FluidSystem)
 {
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using type = FluidSystems::OnePLiquid<Scalar, SimpleH2O<Scalar> >;
+    using type = FluidSystems::OnePLiquid<Scalar, Components::SimpleH2O<Scalar> >;
 };
 
 } // end namespace Properties
diff --git a/test/porousmediumflow/1p/implicit/incompressible/problem.hh b/test/porousmediumflow/1p/implicit/incompressible/problem.hh
index 714f8ef2f9015c4e11e162c30469b7c8cc4e3946..b46fbdbdd736d0ee4ed458e0b26b98c7074bb01b 100644
--- a/test/porousmediumflow/1p/implicit/incompressible/problem.hh
+++ b/test/porousmediumflow/1p/implicit/incompressible/problem.hh
@@ -66,7 +66,7 @@ SET_TYPE_PROP(OnePIncompressible, LocalResidual, OnePIncompressibleLocalResidual
 SET_PROP(OnePIncompressible, FluidSystem)
 {
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using type = FluidSystems::OnePLiquid<Scalar, SimpleH2O<Scalar> >;
+    using type = FluidSystems::OnePLiquid<Scalar, Components::SimpleH2O<Scalar> >;
 };
 
 // Enable caching
diff --git a/test/porousmediumflow/1p/implicit/pointsources/1psingularityproblem.hh b/test/porousmediumflow/1p/implicit/pointsources/1psingularityproblem.hh
index a6f59077a2237e75f42843ca16aead2ad1dce1b3..c591e27471fafe631975925ddf2bb2f44c49ded6 100644
--- a/test/porousmediumflow/1p/implicit/pointsources/1psingularityproblem.hh
+++ b/test/porousmediumflow/1p/implicit/pointsources/1psingularityproblem.hh
@@ -49,7 +49,7 @@ NEW_TYPE_TAG(OnePSingularityCCTpfaTypeTag, INHERITS_FROM(CCTpfaModel, OnePSingul
 SET_PROP(OnePSingularityTypeTag, FluidSystem)
 {
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using type = FluidSystems::OnePLiquid<Scalar, SimpleH2O<Scalar> >;
+    using type = FluidSystems::OnePLiquid<Scalar, Components::SimpleH2O<Scalar> >;
 };
 
 // Set the grid type
diff --git a/test/porousmediumflow/1pnc/implicit/1p2cniconductionproblem.hh b/test/porousmediumflow/1pnc/implicit/1p2cniconductionproblem.hh
index cfff08e6412123952a167e3ee05707c42823458d..cc9e1d55423332a0febea4413b8e47c0681ba577 100644
--- a/test/porousmediumflow/1pnc/implicit/1p2cniconductionproblem.hh
+++ b/test/porousmediumflow/1pnc/implicit/1p2cniconductionproblem.hh
@@ -113,7 +113,7 @@ class OnePTwoCNIConductionProblem : public PorousMediumFlowProblem<TypeTag>
     using ThermalConductivityModel = typename GET_PROP_TYPE(TypeTag, ThermalConductivityModel);
     using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
     using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
-    using IapwsH2O = H2O<Scalar>;
+    using IapwsH2O = Components::H2O<Scalar>;
 
     // copy some indices for convenience
     enum
diff --git a/test/porousmediumflow/1pnc/implicit/1p2cniconvectionproblem.hh b/test/porousmediumflow/1pnc/implicit/1p2cniconvectionproblem.hh
index 4e8ad85c8ca280c03acb443b298aa12831bcdca5..4b18fdede109e167ee8da5b5aa018e1cdb8a7c8f 100644
--- a/test/porousmediumflow/1pnc/implicit/1p2cniconvectionproblem.hh
+++ b/test/porousmediumflow/1pnc/implicit/1p2cniconvectionproblem.hh
@@ -115,7 +115,7 @@ class OnePTwoCNIConvectionProblem : public PorousMediumFlowProblem<TypeTag>
     using Element = typename GridView::template Codim<0>::Entity;
     using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
     using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
-    using IapwsH2O = H2O<Scalar>;
+    using IapwsH2O = Components::H2O<Scalar>;
 
     // copy some indices for convenience
     enum
diff --git a/test/porousmediumflow/1pncmin/implicit/modifiedcao.hh b/test/porousmediumflow/1pncmin/implicit/modifiedcao.hh
index 8d16650bfdd53a876a6670a906449b6a4e4dcff6..19aa29d3c9a1df2191dc72a25f95a1f8c5e1a722 100644
--- a/test/porousmediumflow/1pncmin/implicit/modifiedcao.hh
+++ b/test/porousmediumflow/1pncmin/implicit/modifiedcao.hh
@@ -39,7 +39,7 @@ namespace Dumux
  * al. (2013).
  */
 template <class Scalar>
-class ModifiedCaO : public  CaO<Scalar>
+class ModifiedCaO : public  Components::CaO<Scalar>
 {
 public:
 
diff --git a/test/porousmediumflow/1pncmin/implicit/modifiedsteamn2cao2h2.hh b/test/porousmediumflow/1pncmin/implicit/modifiedsteamn2cao2h2.hh
index fc6e3db903b568e579516ab6f69c0c5de768afbe..9a35ef1d847f816a905965478dee78bd3438525a 100644
--- a/test/porousmediumflow/1pncmin/implicit/modifiedsteamn2cao2h2.hh
+++ b/test/porousmediumflow/1pncmin/implicit/modifiedsteamn2cao2h2.hh
@@ -59,7 +59,7 @@ namespace FluidSystems
  */
 
 template <class Scalar,
-           class H2Otype = Dumux::TabulatedComponent<Dumux::H2O<Scalar>>,
+          class H2Otype = Dumux::Components::TabulatedComponent<Dumux::Components::H2O<Scalar>>,
           bool useComplexRelations=true>
 class ModifiedSteamN2CaO2H2
 : public BaseFluidSystem<Scalar, ModifiedSteamN2CaO2H2<Scalar, H2Otype, useComplexRelations> >
@@ -72,10 +72,10 @@ class ModifiedSteamN2CaO2H2
 public:
     using H2O = H2Otype;
     using H2O_N2 = Dumux::BinaryCoeff::H2O_N2;
-    using N2 = Dumux::N2<Scalar>;
+    using N2 = Dumux::Components::N2<Scalar>;
 
     using CaO = Dumux::ModifiedCaO<Scalar>;
-    using CaO2H2 =  Dumux::CaO2H2<Scalar>;
+    using CaO2H2 =  Dumux::Components::CaO2H2<Scalar>;
 
     // the type of parameter cache objects. this fluid system does not
     using ParameterCache = Dumux::NullParameterCache;
diff --git a/test/porousmediumflow/2p/implicit/fracture/problem.hh b/test/porousmediumflow/2p/implicit/fracture/problem.hh
index 5a7a1a388901d7c9bff7ad223cf2a3e1dfd71a72..838b41ef3eb82591ea0dfd5e0857ae0328dbcf13 100644
--- a/test/porousmediumflow/2p/implicit/fracture/problem.hh
+++ b/test/porousmediumflow/2p/implicit/fracture/problem.hh
@@ -62,8 +62,8 @@ SET_TYPE_PROP(FractureTypeTag, Problem, Dumux::FractureProblem<TypeTag>);
 SET_PROP(FractureTypeTag, FluidSystem)
 {
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using WettingPhase = FluidSystems::OnePLiquid<Scalar, SimpleH2O<Scalar> >;
-    using NonwettingPhase = FluidSystems::OnePLiquid<Scalar, Trichloroethene<Scalar> >;
+    using WettingPhase = FluidSystems::OnePLiquid<Scalar, Components::SimpleH2O<Scalar> >;
+    using NonwettingPhase = FluidSystems::OnePLiquid<Scalar, Components::Trichloroethene<Scalar> >;
     using type = FluidSystems::TwoPImmiscible<Scalar, WettingPhase, NonwettingPhase>;
 };
 
diff --git a/test/porousmediumflow/2p/implicit/incompressible/problem.hh b/test/porousmediumflow/2p/implicit/incompressible/problem.hh
index b9566b03642646108b3b6e12b5b9b5b82bd7c4ef..7701c69e79fb27b55c21b241bb05d436cb040b8e 100644
--- a/test/porousmediumflow/2p/implicit/incompressible/problem.hh
+++ b/test/porousmediumflow/2p/implicit/incompressible/problem.hh
@@ -63,8 +63,8 @@ SET_TYPE_PROP(TwoPIncompressible, LocalResidual, TwoPIncompressibleLocalResidual
 SET_PROP(TwoPIncompressible, FluidSystem)
 {
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using WettingPhase = FluidSystems::OnePLiquid<Scalar, SimpleH2O<Scalar> >;
-    using NonwettingPhase = FluidSystems::OnePLiquid<Scalar, Trichloroethene<Scalar> >;
+    using WettingPhase = FluidSystems::OnePLiquid<Scalar, Components::SimpleH2O<Scalar> >;
+    using NonwettingPhase = FluidSystems::OnePLiquid<Scalar, Components::Trichloroethene<Scalar> >;
     using type = FluidSystems::TwoPImmiscible<Scalar, WettingPhase, NonwettingPhase>;
 };
 
diff --git a/test/porousmediumflow/2p/sequential/test_3d2pproblem.hh b/test/porousmediumflow/2p/sequential/test_3d2pproblem.hh
index 89d66ba9aded104450a2be495cd147b37d38e38f..c24eef9eba53427041c3e89fd1381f084fb00f5f 100644
--- a/test/porousmediumflow/2p/sequential/test_3d2pproblem.hh
+++ b/test/porousmediumflow/2p/sequential/test_3d2pproblem.hh
@@ -72,8 +72,8 @@ SET_TYPE_PROP(ThreeDTwoPTestTypeTag, Problem, Test3D2PProblem<TypeTag>);
 SET_PROP(ThreeDTwoPTestTypeTag, FluidSystem)
 {
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using WettingPhase = FluidSystems::OnePLiquid<Scalar, SimpleH2O<Scalar> >;
-    using NonwettingPhase = FluidSystems::OnePLiquid<Scalar, SimpleH2O<Scalar> >;
+    using WettingPhase = FluidSystems::OnePLiquid<Scalar, Components::SimpleH2O<Scalar> >;
+    using NonwettingPhase = FluidSystems::OnePLiquid<Scalar, Components::SimpleH2O<Scalar> >;
     using type = FluidSystems::TwoPImmiscible<Scalar, WettingPhase, NonwettingPhase>;
 };
 
diff --git a/test/porousmediumflow/2p/sequential/test_impesadaptiveproblem.hh b/test/porousmediumflow/2p/sequential/test_impesadaptiveproblem.hh
index 47169be6bea12fc260011b64f1e80c79cf0a55b6..bcdcbd18e4c822225061a1bce50f690c70ffdd04 100644
--- a/test/porousmediumflow/2p/sequential/test_impesadaptiveproblem.hh
+++ b/test/porousmediumflow/2p/sequential/test_impesadaptiveproblem.hh
@@ -62,8 +62,8 @@ SET_TYPE_PROP(TestIMPESAdaptiveTypeTag, Problem, TestIMPESAdaptiveProblem<TypeTa
 SET_PROP(TestIMPESAdaptiveTypeTag, FluidSystem)
 {
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using WettingPhase = FluidSystems::OnePLiquid<Scalar, SimpleH2O<Scalar> >;
-    using NonwettingPhase = FluidSystems::OnePLiquid<Scalar, SimpleH2O<Scalar> >;
+    using WettingPhase = FluidSystems::OnePLiquid<Scalar, Components::SimpleH2O<Scalar> >;
+    using NonwettingPhase = FluidSystems::OnePLiquid<Scalar, Components::SimpleH2O<Scalar> >;
     using type = FluidSystems::TwoPImmiscible<Scalar, WettingPhase, NonwettingPhase>;
 };
 }
diff --git a/test/porousmediumflow/2p/sequential/test_impesproblem.hh b/test/porousmediumflow/2p/sequential/test_impesproblem.hh
index 1351e4a08a3c8f14df72160e43c90ec82c22d7fd..d571d6e86a0cf0d1305fc62be87659133a38b01d 100644
--- a/test/porousmediumflow/2p/sequential/test_impesproblem.hh
+++ b/test/porousmediumflow/2p/sequential/test_impesproblem.hh
@@ -85,8 +85,8 @@ SET_TYPE_PROP(IMPESTestTypeTag, Problem, IMPESTestProblem<TypeTag>);
 SET_PROP(IMPESTestTypeTag, FluidSystem)
 {
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using WettingPhase = FluidSystems::OnePLiquid<Scalar, SimpleH2O<Scalar> >;
-    using NonwettingPhase = FluidSystems::OnePLiquid<Scalar, SimpleH2O<Scalar> >;
+    using WettingPhase = FluidSystems::OnePLiquid<Scalar, Components::SimpleH2O<Scalar> >;
+    using NonwettingPhase = FluidSystems::OnePLiquid<Scalar, Components::SimpleH2O<Scalar> >;
     using type = FluidSystems::TwoPImmiscible<Scalar, WettingPhase, NonwettingPhase>;
 };
 
diff --git a/test/porousmediumflow/2p/sequential/test_mpfa2pproblem.hh b/test/porousmediumflow/2p/sequential/test_mpfa2pproblem.hh
index f1e3b1dc84836ce2b7f127670a8e71bcac2fe65a..256715aa2c279203d9479b4c8251c877f05fd5ff 100644
--- a/test/porousmediumflow/2p/sequential/test_mpfa2pproblem.hh
+++ b/test/porousmediumflow/2p/sequential/test_mpfa2pproblem.hh
@@ -73,11 +73,11 @@ SET_TYPE_PROP(MPFATwoPTestTypeTag, Problem, MPFATwoPTestProblem<TypeTag>);
 SET_PROP(MPFATwoPTestTypeTag, FluidSystem)
 {
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using WettingPhase = FluidSystems::OnePLiquid<Scalar, SimpleH2O<Scalar> >;
+    using WettingPhase = FluidSystems::OnePLiquid<Scalar, Components::SimpleH2O<Scalar> >;
 #if PROBLEM == 2
-    using NonwettingPhase = FluidSystems::OnePLiquid<Scalar, Trichloroethene<Scalar> >;
+    using NonwettingPhase = FluidSystems::OnePLiquid<Scalar, Components::Trichloroethene<Scalar> >;
 #else
-    using NonwettingPhase = FluidSystems::OnePLiquid<Scalar, SimpleH2O<Scalar> >;
+    using NonwettingPhase = FluidSystems::OnePLiquid<Scalar, Components::SimpleH2O<Scalar> >;
 #endif
     using type = FluidSystems::TwoPImmiscible<Scalar, WettingPhase, NonwettingPhase>;
 };
diff --git a/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh b/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh
index 2aa4d41b4a74172648bead007792d5caa332834c..3e9251d6989e7853f6a32db38dbed788a613a995 100644
--- a/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh
+++ b/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh
@@ -59,7 +59,7 @@ SET_PROP(InjectionProblemTypeTag, FluidSystem)
 {
 private:
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using H2OType = Dumux::TabulatedComponent<Dumux::H2O<Scalar> >;
+    using H2OType = Dumux::Components::TabulatedComponent<Dumux::Components::H2O<Scalar> >;
 public:
     using type = Dumux::FluidSystems::TwoPOneC<Scalar, H2OType >;
 };
diff --git a/test/porousmediumflow/2p2c/implicit/waterairproblem.hh b/test/porousmediumflow/2p2c/implicit/waterairproblem.hh
index 0c63dfe74c420c8c228b8bbbcdcdbbc287fa5a4b..b6c27b8a9dd57fe556d458646a66b98c5b1c6c7b 100644
--- a/test/porousmediumflow/2p2c/implicit/waterairproblem.hh
+++ b/test/porousmediumflow/2p2c/implicit/waterairproblem.hh
@@ -239,7 +239,7 @@ public:
             const auto t = initialValues[temperatureIdx];
 
             // note: energy equation is always formulated in terms of mass specific quantities, not per mole
-            values[energyEqIdx] = -1e-3*N2<Scalar>::gasEnthalpy(t, pn);
+            values[energyEqIdx] = -1e-3*Components::N2<Scalar>::gasEnthalpy(t, pn);
         }
 
         return values;
diff --git a/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c2dproblem.hh b/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c2dproblem.hh
index 082b1c235cfb06adfac779320d56f9465ed216f9..fe66e685cbfb48f4896973658ebd7a179af90bbb 100644
--- a/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c2dproblem.hh
+++ b/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c2dproblem.hh
@@ -61,7 +61,7 @@ SET_TYPE_PROP(Adaptive2p2c2d, Problem, Adaptive2p2c2d<TTAG(Adaptive2p2c2d)>);
 SET_PROP(Adaptive2p2c2d, FluidSystem)
 {
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using type = FluidSystems::H2OAir<Scalar, H2O<Scalar>, /*useComplexRelations=*/true>;
+    using type = FluidSystems::H2OAir<Scalar, Components::H2O<Scalar>, /*useComplexRelations=*/true>;
 };
 
 // Set the 2d Transport and Pressure model (already set as default in properties file)
diff --git a/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c3dproblem.hh b/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c3dproblem.hh
index 2eb98f8c913e10f06c5f186dfb7ad647c305d90d..9f31b0ac391ebf22e45a9b85590cd0e85129698d 100644
--- a/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c3dproblem.hh
+++ b/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c3dproblem.hh
@@ -65,7 +65,7 @@ SET_TYPE_PROP(Adaptive2p2c3d, PressureModel, FV3dPressure2P2CAdaptive<TTAG(Adapt
 SET_PROP(Adaptive2p2c3d, FluidSystem)
 {
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using type = FluidSystems::H2OAir<Scalar, H2O<Scalar>, /*useComplexRelations=*/false>;
+    using type = FluidSystems::H2OAir<Scalar, Components::H2O<Scalar>, /*useComplexRelations=*/false>;
 };
 
 // Specify indicator
diff --git a/test/porousmediumflow/2p2c/sequential/test_dec2p2cproblem.hh b/test/porousmediumflow/2p2c/sequential/test_dec2p2cproblem.hh
index df5951d233acce4be591178092d057861aa6d998..3c73abd295094171eaae25c07aedc17ba2255c2d 100644
--- a/test/porousmediumflow/2p2c/sequential/test_dec2p2cproblem.hh
+++ b/test/porousmediumflow/2p2c/sequential/test_dec2p2cproblem.hh
@@ -65,7 +65,7 @@ SET_INT_PROP(TestDecTwoPTwoCTypeTag, PressureFormulation, GET_PROP_TYPE(TypeTag,
 SET_PROP(TestDecTwoPTwoCTypeTag, FluidSystem)
 {
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using type = FluidSystems::H2OAir<Scalar, H2O<Scalar>, /*useComplexRelations=*/true>;
+    using type = FluidSystems::H2OAir<Scalar, Components::H2O<Scalar>, /*useComplexRelations=*/true>;
 };
 
 SET_BOOL_PROP(TestDecTwoPTwoCTypeTag, EnableCapillarity, true);
diff --git a/test/porousmediumflow/2p2c/sequential/test_multiphysics2p2cproblem.hh b/test/porousmediumflow/2p2c/sequential/test_multiphysics2p2cproblem.hh
index aab374b187663f702ef152e51f4cc9d57d6b4cf6..1d669a106aed8af17c16ea09ad9c68e68f098072 100644
--- a/test/porousmediumflow/2p2c/sequential/test_multiphysics2p2cproblem.hh
+++ b/test/porousmediumflow/2p2c/sequential/test_multiphysics2p2cproblem.hh
@@ -67,7 +67,7 @@ SET_INT_PROP(TestMultTwoPTwoCTypeTag, PressureFormulation, GET_PROP_TYPE(TypeTag
 SET_PROP(TestMultTwoPTwoCTypeTag, FluidSystem)
 {
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using type = FluidSystems::H2OAir<Scalar, H2O<Scalar>, /*useComplexRelations=*/true>;
+    using type = FluidSystems::H2OAir<Scalar, Components::H2O<Scalar>, /*useComplexRelations=*/true>;
 };
 
 SET_BOOL_PROP(TestMultTwoPTwoCTypeTag, EnableCapillarity, true);
diff --git a/test/porousmediumflow/2pncmin/implicit/dissolutionproblem.hh b/test/porousmediumflow/2pncmin/implicit/dissolutionproblem.hh
index 40f2f7e57720a5c25354234f24be0c616ad6f9ab..0508b9f3e1dd18a676d2e1cb21d8a6d953553e6f 100644
--- a/test/porousmediumflow/2pncmin/implicit/dissolutionproblem.hh
+++ b/test/porousmediumflow/2pncmin/implicit/dissolutionproblem.hh
@@ -59,7 +59,7 @@ SET_TYPE_PROP(DissolutionTypeTag, Problem, DissolutionProblem<TypeTag>);
 SET_PROP(DissolutionTypeTag, FluidSystem)
 {
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using type = FluidSystems::BrineAir<Scalar, H2O<Scalar>, true/*useComplexrelations=*/>;
+    using type = FluidSystems::BrineAir<Scalar, Components::H2O<Scalar>, true/*useComplexrelations=*/>;
 };
 
 // Set the spatial parameters
diff --git a/test/porousmediumflow/3p/implicit/3pniconductionproblem.hh b/test/porousmediumflow/3p/implicit/3pniconductionproblem.hh
index 7501d43ad182927a9bda24d0a8ade8b2194df107..d6afb1bd2998901a4cba3ed3cc7b387f3005d4b0 100644
--- a/test/porousmediumflow/3p/implicit/3pniconductionproblem.hh
+++ b/test/porousmediumflow/3p/implicit/3pniconductionproblem.hh
@@ -115,7 +115,7 @@ class ThreePNIConductionProblem : public PorousMediumFlowProblem<TypeTag>
     using ThermalConductivityModel = typename GET_PROP_TYPE(TypeTag, ThermalConductivityModel);
     using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
     using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
-    using IapwsH2O = H2O<Scalar>;
+    using IapwsH2O = Components::H2O<Scalar>;
     using NumEqVector = typename GET_PROP_TYPE(TypeTag, NumEqVector);
 
     // copy some indices for convenience
diff --git a/test/porousmediumflow/3p/implicit/3pniconvectionproblem.hh b/test/porousmediumflow/3p/implicit/3pniconvectionproblem.hh
index d5c67f5afe581c02ca1629cf522d6d3619b392ee..4352cf847734fbb32b9b939394bf2c5f29fb5dc0 100644
--- a/test/porousmediumflow/3p/implicit/3pniconvectionproblem.hh
+++ b/test/porousmediumflow/3p/implicit/3pniconvectionproblem.hh
@@ -116,7 +116,7 @@ class ThreePNIConvectionProblem : public PorousMediumFlowProblem<TypeTag>
     using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, GridVolumeVariables)::LocalView;
     using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
-    using IapwsH2O = H2O<Scalar>;
+    using IapwsH2O = Components::H2O<Scalar>;
 
     // copy some indices for convenience
     using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
diff --git a/test/porousmediumflow/co2/implicit/heterogeneousproblem.hh b/test/porousmediumflow/co2/implicit/heterogeneousproblem.hh
index 19da7b2f06fd67fed5c9eb4ac679c61b07be69bb..5fd7d7974c0e3d75ee045738429d64934d197b32 100644
--- a/test/porousmediumflow/co2/implicit/heterogeneousproblem.hh
+++ b/test/porousmediumflow/co2/implicit/heterogeneousproblem.hh
@@ -163,7 +163,7 @@ class HeterogeneousProblem : public PorousMediumFlowProblem<TypeTag>
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
-    using CO2 = Dumux::CO2<Scalar, HeterogeneousCO2Tables::CO2Tables>;
+    using CO2 = Dumux::Components::CO2<Scalar, HeterogeneousCO2Tables::CO2Tables>;
 
     //! property that defines whether mole or mass fractions are used
     static constexpr bool useMoles = GET_PROP_VALUE(TypeTag, UseMoles);
diff --git a/test/porousmediumflow/mpnc/implicit/combustionfluidsystem.hh b/test/porousmediumflow/mpnc/implicit/combustionfluidsystem.hh
index 20b9bad031a1243a52dfdf8cd4ea90fcaf553d4a..0688a0e8580b1302dfebfd1f33740d688a84ef72 100644
--- a/test/porousmediumflow/mpnc/implicit/combustionfluidsystem.hh
+++ b/test/porousmediumflow/mpnc/implicit/combustionfluidsystem.hh
@@ -54,8 +54,8 @@ class CombustionFluidsystem
 
     // convenience using declarations
     using IdealGas = Dumux::IdealGas<Scalar>;
-    using SimpleH2O = Dumux::SimpleH2O<Scalar>;
-    using SimpleN2 = Dumux::N2<Scalar>;
+    using SimpleH2O = Dumux::Components::SimpleH2O<Scalar>;
+    using SimpleN2 = Dumux::Components::N2<Scalar>;
 
 public:
     /****************************************
diff --git a/test/porousmediumflow/richards/implicit/richardsniconductionproblem.hh b/test/porousmediumflow/richards/implicit/richardsniconductionproblem.hh
index 4bc62d808718cd087ad5efc5a43fa481513f32e9..6e4cece020a8a0990e6ba793927b71acc95978cd 100644
--- a/test/porousmediumflow/richards/implicit/richardsniconductionproblem.hh
+++ b/test/porousmediumflow/richards/implicit/richardsniconductionproblem.hh
@@ -106,7 +106,7 @@ class RichardsNIConductionProblem :public PorousMediumFlowProblem<TypeTag>
     using ThermalConductivityModel = typename GET_PROP_TYPE(TypeTag, ThermalConductivityModel);
     using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
     using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
-    using IapwsH2O = H2O<Scalar>;
+    using IapwsH2O = Components::H2O<Scalar>;
 
     using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
     enum { dimWorld = GridView::dimensionworld };
diff --git a/test/porousmediumflow/richards/implicit/richardsniconvectionproblem.hh b/test/porousmediumflow/richards/implicit/richardsniconvectionproblem.hh
index 3647305dd3ab9b227e1eeb104489fad340987dfb..2c50d966b4cc296b803eb894b876ec9e0c9b9a69 100644
--- a/test/porousmediumflow/richards/implicit/richardsniconvectionproblem.hh
+++ b/test/porousmediumflow/richards/implicit/richardsniconvectionproblem.hh
@@ -114,7 +114,7 @@ class RichardsNIConvectionProblem : public PorousMediumFlowProblem<TypeTag>
     using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, GridVolumeVariables)::LocalView;
     using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
-    using IapwsH2O = H2O<Scalar>;
+    using IapwsH2O = Components::H2O<Scalar>;
 
     // copy some indices for convenience
     using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
diff --git a/test/porousmediumflow/richards/implicit/richardsnievaporationproblem.hh b/test/porousmediumflow/richards/implicit/richardsnievaporationproblem.hh
index 1ccf6ac5802862d6515420c48dc04d14e56d486a..55d931966b2335c9981f84b1dca8e5109ffab05a 100644
--- a/test/porousmediumflow/richards/implicit/richardsnievaporationproblem.hh
+++ b/test/porousmediumflow/richards/implicit/richardsnievaporationproblem.hh
@@ -101,7 +101,7 @@ class RichardsNIEvaporationProblem : public PorousMediumFlowProblem<TypeTag>
     using ElementVolumeVariables = typename GridVolumeVariables::LocalView;
     using VolumeVariables = typename GridVolumeVariables::VolumeVariables;
     using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
-    using IapwsH2O = H2O<Scalar>;
+    using IapwsH2O = Components::H2O<Scalar>;
 
     // copy some indices for convenience
     using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
diff --git a/test/porousmediumflow/tracer/1ptracer/1ptestproblem.hh b/test/porousmediumflow/tracer/1ptracer/1ptestproblem.hh
index f892098f73164cb1deb96873ce78236eff2de420..39e50333f8cd9089ac2292bc32901471a4e8205b 100644
--- a/test/porousmediumflow/tracer/1ptracer/1ptestproblem.hh
+++ b/test/porousmediumflow/tracer/1ptracer/1ptestproblem.hh
@@ -59,7 +59,7 @@ SET_TYPE_PROP(IncompressibleTestTypeTag, LocalResidual, OnePIncompressibleLocalR
 SET_PROP(IncompressibleTestTypeTag, FluidSystem)
 {
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using type = FluidSystems::OnePLiquid<Scalar, SimpleH2O<Scalar> >;
+    using type = FluidSystems::OnePLiquid<Scalar, Components::SimpleH2O<Scalar> >;
 };
 
 // Enable caching
diff --git a/tutorial/ex3/2pproblem.hh b/tutorial/ex3/2pproblem.hh
index e2d685c6bb086ffb30f03d2fdae8d5d3a2805b2b..4b3e41e1fdb992600e96a245f9657d4f37769300 100644
--- a/tutorial/ex3/2pproblem.hh
+++ b/tutorial/ex3/2pproblem.hh
@@ -76,7 +76,7 @@ SET_PROP(ExerciseThreeTwoPTypeTag, FluidSystem)
 {
 private:
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using TabulatedH2O = TabulatedComponent<H2O<Scalar>>;
+    using TabulatedH2O = Components::TabulatedComponent<Components::H2O<Scalar>>;
     using WettingPhase = typename FluidSystems::OnePLiquid<Scalar, TabulatedH2O>;
     /*!
      * Uncomment first line and comment second line for using the incompressible component
@@ -128,7 +128,7 @@ public:
 
       // initialize the tables for the water properties
       std::cout << "Initializing the tables for the water properties" << std::endl;
-      TabulatedComponent<H2O<Scalar>>::init(/*tempMin=*/273.15,
+      Components::TabulatedComponent<Components::H2O<Scalar>>::init(/*tempMin=*/273.15,
                                                     /*tempMax=*/623.15,
                                                     /*numTemp=*/100,
                                                     /*pMin=*/0.0,
diff --git a/tutorial/ex3/README.md b/tutorial/ex3/README.md
index 7abeabc8abaed5b4d7a72e4a72e11f7df164fdf1..338b2e3f74a8a36954e446449119d1f645e69074 100644
--- a/tutorial/ex3/README.md
+++ b/tutorial/ex3/README.md
@@ -84,7 +84,7 @@ SET_PROP(ExerciseThreeTypeTag, FluidSystem)
 {
 private:
     typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef TabulatedComponent<H2O<Scalar>> TabulatedH2O;
+    typedef Components::TabulatedComponent<Components::H2O<Scalar>> TabulatedH2O;
     typedef typename FluidSystems::OnePLiquid<Scalar, TabulatedH2O> WettingPhase;
     /*!
      * Uncomment first line and comment second line for using the incompressible component
@@ -100,7 +100,7 @@ public:
 
 ### 2.1. Incompressible component
 
-Open the file `myincompressiblecomponent.hh`. You can see in line 40 that a component should always derive from the _Component_ class (see `dumux/material/components/component.hh`), which defines the interface of a _DuMuX_ component with all possibly required functions to be overloaded by the actual implementation.
+Open the file `myincompressiblecomponent.hh`. You can see in line 40 that a component should always derive from the _Base_ class (see `dumux/material/components/base.hh`), which defines the interface of a _DuMuX_ component with all possibly required functions to be overloaded by the actual implementation. Additionally it is required for liquids to derive from the _Liquid_ class (see `dumux/material/components/liquid.hh`), for gases to derive from the _Gas_ class (see `dumux/material/components/gas.hh`) and for solids to derive from the _Solid_ class (see `dumux/material/components/solid.hh`).
 
 ```c++
 /*!
@@ -123,7 +123,7 @@ Implement an incompressible component into the file `myincompressiblecomponent.h
 | $`\rho_{liquid}`$ | $`Kg/m^3`$   | $`1460`$   |
 | $`\mu_{liquid}`$ | $`Pa \cdot s`$   | $`5.7 \cdot 10^{-4}`$   |
 
-In order to do so, have a look at the file `dumux/material/components/component.hh` to see how the interfaces are defined and overload them accordingly.
+In order to do so, have a look at the files `dumux/material/components/base.hh` and `dumux/material/components/liquid.hh` to see how the interfaces are defined and overload them accordingly.
 
 In order to execute the program, change to the build-directory
 
@@ -233,4 +233,4 @@ make exercise3_b
 ./exercise3_b exercise3_b.input
 ```
 
-You will observe an error message and an abortion of the program. This is due to the fact that in order for the constraint solver and other mechanisms in the two-phase two-component model to work, two additional functionalities in the component have to be implemented. The model has to know whether or not the liquid pure component is compressible and it needs the vapour pressure. As in the previous exercise, check the `dumux/material/components/component.hh` file for these two functions and implement them into `mycompressiblecomponent.hh`. For the vapour pressure, use a value of $`3900`$  Pa.
+You will observe an error message and an abortion of the program. This is due to the fact that in order for the constraint solver and other mechanisms in the two-phase two-component model to work, two additional functionalities in the component have to be implemented. The model has to know whether or not the liquid pure component is compressible and it needs the vapour pressure. As in the previous exercise, check the `dumux/material/components/base.hh` and `dumux/material/components/liquid.hh` files for these two functions and implement them into `mycompressiblecomponent.hh`. For the vapour pressure, use a value of $`3900`$  Pa.
diff --git a/tutorial/ex3/components/mycompressiblecomponent.hh b/tutorial/ex3/components/mycompressiblecomponent.hh
index c2e7b2e2ab9fd7d6579124dbbc092e9b7063e39b..5e21380c07023c42e3cabbe98e963ea7c22f4b1c 100644
--- a/tutorial/ex3/components/mycompressiblecomponent.hh
+++ b/tutorial/ex3/components/mycompressiblecomponent.hh
@@ -25,8 +25,9 @@
 #define DUMUX_MYCOMPRESSIBLECOMPONENT_HH
 
 #include <dumux/material/idealgas.hh>
-#include <dumux/material/components/component.hh>
 
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/liquid.hh>
 
 namespace Dumux
 {
@@ -37,7 +38,9 @@ namespace Dumux
  * \tparam Scalar The type used for scalar values
  */
 template <class Scalar>
-class MyCompressibleComponent : public Component<Scalar, MyCompressibleComponent<Scalar> >
+class MyCompressibleComponent
+: public Components::Base<Scalar, MyCompressibleComponent<Scalar> >
+, public Components::Liquid<Scalar, MyCompressibleComponent<Scalar> >
 {
 
 public:
@@ -56,7 +59,7 @@ public:
       * \brief Returns true if the liquid phase is assumed to be compressible
       */
      static constexpr bool liquidIsCompressible()
-     { true; }
+     { return true; }
 
      /*!
       * \brief The molar mass in \f$\mathrm{[kg/mol]}\f$ of the component.
diff --git a/tutorial/ex3/components/myincompressiblecomponent.hh b/tutorial/ex3/components/myincompressiblecomponent.hh
index b1754924308d3b669ba82e38f090c1cc4a4b347e..17310abd78ea627378add33214e05801dcf0ca94 100644
--- a/tutorial/ex3/components/myincompressiblecomponent.hh
+++ b/tutorial/ex3/components/myincompressiblecomponent.hh
@@ -25,8 +25,9 @@
 #define DUMUX_MYINCOMPRESSIBLECOMPONENT_HH
 
 #include <dumux/material/idealgas.hh>
-#include <dumux/material/components/component.hh>
 
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/liquid.hh>
 
 namespace Dumux
 {
@@ -37,7 +38,9 @@ namespace Dumux
  * \tparam Scalar The type used for scalar values
  */
 template <class Scalar>
-class MyIncompressibleComponent : public Component<Scalar, MyIncompressibleComponent<Scalar> >
+class MyIncompressibleComponent
+: public Components::Base<Scalar, MyIncompressibleComponent<Scalar> >
+, public Components::Liquid<Scalar, MyIncompressibleComponent<Scalar> >
 {
 public:
     /*!
diff --git a/tutorial/ex3/fluidsystems/h2omycompressiblecomponent.hh b/tutorial/ex3/fluidsystems/h2omycompressiblecomponent.hh
index 1dc673dce182037aa0a4c864b6cc1e9ec791a090..43c84c8a0e6813ad1ae7df110253bcc27248c4a6 100644
--- a/tutorial/ex3/fluidsystems/h2omycompressiblecomponent.hh
+++ b/tutorial/ex3/fluidsystems/h2omycompressiblecomponent.hh
@@ -47,7 +47,7 @@ namespace FluidSystems
  *        which are water and a ficitious component from tutorial exercise 3a.
  */
 template <class Scalar,
-          class H2OType = Dumux::TabulatedComponent<Dumux::H2O<Scalar> > >
+          class H2OType = Dumux::Components::TabulatedComponent<Dumux::Components::H2O<Scalar> > >
 class H2OMyCompressibleComponent
     : public BaseFluidSystem< Scalar, H2OMyCompressibleComponent<Scalar, H2OType> >
 {
diff --git a/tutorial/solution/ex3/h2omycompressiblecomponent.hh b/tutorial/solution/ex3/h2omycompressiblecomponent.hh
index de0de6c3a0d4d8794c6db01ed659cb7befb4ec9e..e9ce1ed89bc80e3117beab375fb70acd53fbb499 100644
--- a/tutorial/solution/ex3/h2omycompressiblecomponent.hh
+++ b/tutorial/solution/ex3/h2omycompressiblecomponent.hh
@@ -47,7 +47,7 @@ namespace FluidSystems
  *        which are water and a ficitious component from tutorial exercise 3a.
  */
 template <class TypeTag, class Scalar,
-          class H2OType = Dumux::TabulatedComponent<Dumux::H2O<Scalar> > >
+          class H2OType = Dumux::Components::TabulatedComponent<Dumux::Components::H2O<Scalar> > >
 class H2OMyCompressibleComponent
     : public BaseFluidSystem< Scalar, H2OMyCompressibleComponent<TypeTag, Scalar, H2OType> >
 {
diff --git a/tutorial/solution/ex3/mycompressiblecomponent.hh b/tutorial/solution/ex3/mycompressiblecomponent.hh
index 1b203ac401eabba043cc8e8ea465732cd801558d..05a64e15ca443793fd4695224628e940460b5754 100644
--- a/tutorial/solution/ex3/mycompressiblecomponent.hh
+++ b/tutorial/solution/ex3/mycompressiblecomponent.hh
@@ -25,8 +25,9 @@
 #define DUMUX_MYCOMPRESSIBLECOMPONENT_HH
 
 #include <dumux/material/idealgas.hh>
-#include <dumux/material/components/component.hh>
 
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/liquid.hh>
 
 namespace Dumux
 {
@@ -37,7 +38,9 @@ namespace Dumux
  * \tparam Scalar The type used for scalar values
  */
 template <class Scalar>
-class MyCompressibleComponent : public Component<Scalar, MyCompressibleComponent<Scalar> >
+class MyCompressibleComponent
+: public Components::Base<Scalar, MyIncompressibleComponent<Scalar> >
+, public Components::Liquid<Scalar, MyIncompressibleComponent<Scalar> >
 {
 public:
     /*!
diff --git a/tutorial/solution/ex3/myincompressiblecomponent.hh b/tutorial/solution/ex3/myincompressiblecomponent.hh
index c67b8dcc774315855e7a0fc567ed2236c4a7ca11..7325bb40bd68b3e5d7add4b78e58ac595be3184b 100644
--- a/tutorial/solution/ex3/myincompressiblecomponent.hh
+++ b/tutorial/solution/ex3/myincompressiblecomponent.hh
@@ -25,8 +25,9 @@
 #define DUMUX_MYINCOMPRESSIBLECOMPONENT_HH
 
 #include <dumux/material/idealgas.hh>
-#include <dumux/material/components/component.hh>
 
+#include <dumux/material/components/base.hh>
+#include <dumux/material/components/liquid.hh>
 
 namespace Dumux
 {
@@ -37,7 +38,9 @@ namespace Dumux
  * \tparam Scalar The type used for scalar values
  */
 template <class Scalar>
-class MyIncompressibleComponent : public Component<Scalar, MyIncompressibleComponent<Scalar> >
+class MyIncompressibleComponent
+: public Components::Base<Scalar, MyIncompressibleComponent<Scalar> >
+, public Components::Liquid<Scalar, MyIncompressibleComponent<Scalar> >
 {
 public:
     /*!