diff --git a/exercises/exercise-fluidsystem/README.md b/exercises/exercise-fluidsystem/README.md
index cf2065807a94964881adf53ecbb8b372fda190cb..3546dd6f4e85de325372e9bd162f563694458366 100644
--- a/exercises/exercise-fluidsystem/README.md
+++ b/exercises/exercise-fluidsystem/README.md
@@ -1,6 +1,6 @@
 # Exercise Fluidsystem (DuMuX Course)
 
-The aim of this exercise is to get familiar with the _DuMu<sup>x</sup>_ way of implementing new components (fluids) and fluid systems (mixtures). In the scope of this exercise, a new fictitious component is implemented (Section 2) as well as its mixture with water (Section 3).
+The aim of this exercise is to get familiar with the _DuMu<sup>x</sup>_ way of implementing new components and using them in fluid systems (immiscible/mixture). In the scope of this exercise, different two-phase (liquid-liquid) fluid systems are implemented. A new fictitious component is implemented and used to describe a immiscible liquid phase. The second phase will only consist of water (Section 2). Furthermore, the mixture of the two components is implemented as two miscible phases (Section 3).
 
 ## Problem set-up
 
@@ -63,14 +63,14 @@ while the `BoxModel` _TypeTag_ can be found in the `discretization/box.hh` heade
 
 For a cell-centered scheme, you could derive from `CCTpfaModel` or `CCMpfaModel` instead (and, of course, include the right headers).
 
-As one of the two phases we want to use water and we want to precompute tables on which the properties are then interpolated in order to save computational time. Since we need this part in both problem file and properties file, we have to include the following two headers in our problem file, i.e. `2pproblem.hh` file, and the properties file has access to them through problem file.
+One of the two phases should only contain the component water. We want to precompute tables on which the properties are then interpolated in order to save computational time. Since we need this part in both problem file and properties file, we have to include the following two headers in our problem file, i.e. `2pproblem.hh` file, and the properties file has access to them through problem file.
 
 ```c++
 // The water component
 #include <dumux/material/components/tabulatedcomponent.hh>
 #include <dumux/material/components/h2o.hh>
 ```
-The other phase will be created from our new component, where we want to implement an incompressible and a compressible variant.
+The other phase will be created only contain our new component, where we want to implement an incompressible and a compressible variant.
 The respective headers are prepared, but still incomplete. The compressible variant is still commented so that compilation does not fail when finishing the incompressible variant.
 
 ```c++
@@ -78,7 +78,7 @@ The respective headers are prepared, but still incomplete. The compressible vari
 #include "components/myincompressiblecomponent.hh"
 // #include "components/mycompressiblecomponent.hh"
 ```
-As mentioned above, we want to simulate two non-mixing components. The respective fluid system is found in:
+As mentioned above, we want to simulate two non-mixing phases (2pimmiscible). The respective fluid system is found in:
 
 ```c++
 // The two-phase immiscible fluid system
@@ -93,7 +93,7 @@ This fluid system expects __phases__ as input and so far we have only included t
 ```
 
 which creates a _liquid phase_ from a given component. Finally, using all of the included classes we set the fluid system property by choosing that the water phase is liquid (`OnePLiquid`) and consists of the tabulated water component, and
-the other phase is liquid as well and consists of the incompressible fictitious component. Both will make up the immiscible fluid system (`TwoPImmiscible`):
+the other phase is liquid as well and consists of the incompressible fictitious component. Both will make up the immiscible fluid system (`TwoPImmiscible`), consiting of two liquids each consisting of one component:
 
 
 ```c++
@@ -176,7 +176,7 @@ Compare the gnuplot output to the following plot of the density function from ab
 ### 3. Implement a new fluid system
 
 The problem file and properties file for this part of the exercise are `2p2cproblem.hh` and `2p2cproperties.hh`, respectively.
-We now want to implement a new fluid system consisting of two liquid phases,which are water and the previously implemented compressible component. We will consider compositional effects, which is why we now have to derive our _TypeTag_ (`ExerciseFluidsystemTwoPTwoC`) from a _TypeTag_ (`TwoPTwoC`) that holds the miscible two-phase
+We now want to implement a new fluid system, which still consists of two liquid phases. However, one phase consists of mainly of water and the other consists mainly of the previously implemented compressible component. We will now consider compositional effects, which is why we have to derive our _TypeTag_ (`ExerciseFluidsystemTwoPTwoC`) from a _TypeTag_ (`TwoPTwoC`) that holds the miscible two-phase
     two-component model properties:
 
 ```c++
@@ -222,7 +222,7 @@ In the `fluidsystems/h2omycompressiblecomponent.hh` file, your implemented compr
 
 __Task__:
 
-Under the assumption that one molecule of `MyCompressibleComponent` displaces exactly one molecule of water, the water phase density can be expressed as follows:
+Under the assumption that one molecule of `MyCompressibleComponent` displaces exactly one molecule of water, the density of the mostly-water-phase can be expressed as follows:
 
 $` \rho_{w} = \frac{ \rho_{w, pure} }{ M_{H_2O} }*(M_{H_2O}*x_{H_2O} + M_{MyComponent}*x_{MyComponent}) `$
 
@@ -257,7 +257,7 @@ int wettingPhaseAtPos(const GlobalPosition& globalPos) const
 }
 ```
 
-Change this function such that the phase of our new component is the wetting phase __only__ within the lenses. Execute the program of task 3 again:
+Change this function such that the phase of our mostly-new-component-phase is the wetting phase __only__ within the lenses. Execute the program of task 3 again:
 
 ```bash
 cd build-cmake/exercises/exercise-fluidsystem
diff --git a/slides/img/binarycoefficients.png b/slides/img/binarycoefficients.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a80b96deb4f58287d304fac71ea1f44a7be354d
Binary files /dev/null and b/slides/img/binarycoefficients.png differ
diff --git a/slides/img/chemistry.png b/slides/img/chemistry.png
new file mode 100644
index 0000000000000000000000000000000000000000..2f7668a167e3f50daecf5ff86f10942bf21dd738
Binary files /dev/null and b/slides/img/chemistry.png differ
diff --git a/slides/img/component-fluidsystem.png b/slides/img/component-fluidsystem.png
new file mode 100644
index 0000000000000000000000000000000000000000..9dcd3d50f31a3062955e97a891bc8526fc561177
Binary files /dev/null and b/slides/img/component-fluidsystem.png differ
diff --git a/slides/img/component.png b/slides/img/component.png
new file mode 100644
index 0000000000000000000000000000000000000000..3d57172bec8c46fd8b972f2785eb7e52cc4529ac
Binary files /dev/null and b/slides/img/component.png differ
diff --git a/slides/img/constraintsolver.png b/slides/img/constraintsolver.png
new file mode 100644
index 0000000000000000000000000000000000000000..3e9dcd237dbc8c12df215d6a8e1deb96a88c1fcd
Binary files /dev/null and b/slides/img/constraintsolver.png differ
diff --git a/slides/img/eos.png b/slides/img/eos.png
new file mode 100644
index 0000000000000000000000000000000000000000..28c3a1fccb879b714bbdb41659e5f458434b07f2
Binary files /dev/null and b/slides/img/eos.png differ
diff --git a/slides/img/fluidmatrixinteractions.png b/slides/img/fluidmatrixinteractions.png
new file mode 100644
index 0000000000000000000000000000000000000000..7733e44c58c80386f5e95c401d46a8ed76325881
Binary files /dev/null and b/slides/img/fluidmatrixinteractions.png differ
diff --git a/slides/img/fluidstate.png b/slides/img/fluidstate.png
new file mode 100644
index 0000000000000000000000000000000000000000..c5718a0349028c1425b96487020b399fecc5edde
Binary files /dev/null and b/slides/img/fluidstate.png differ
diff --git a/slides/img/fluidsystem.png b/slides/img/fluidsystem.png
new file mode 100644
index 0000000000000000000000000000000000000000..f0562ceba5448798cf44f5d7300cb8a20192182f
Binary files /dev/null and b/slides/img/fluidsystem.png differ
diff --git a/slides/img/pc-Sw_BrooksCorey.png b/slides/img/pc-Sw_BrooksCorey.png
new file mode 100644
index 0000000000000000000000000000000000000000..b4ee1e2c7731af66e76068508b09892fecd5a797
Binary files /dev/null and b/slides/img/pc-Sw_BrooksCorey.png differ
diff --git a/slides/img/pc-Sw_VanGenuchten.png b/slides/img/pc-Sw_VanGenuchten.png
new file mode 100644
index 0000000000000000000000000000000000000000..38d691cc6d25d159a94db5c38bae97b59e3717c6
Binary files /dev/null and b/slides/img/pc-Sw_VanGenuchten.png differ
diff --git a/slides/img/solidstate.png b/slides/img/solidstate.png
new file mode 100644
index 0000000000000000000000000000000000000000..8c05e62af72c60965551ad5c031b4c682d27f106
Binary files /dev/null and b/slides/img/solidstate.png differ
diff --git a/slides/img/solidsystem.png b/slides/img/solidsystem.png
new file mode 100644
index 0000000000000000000000000000000000000000..40f8c5216222b0a5b57f9bc3c7896b4f76d08156
Binary files /dev/null and b/slides/img/solidsystem.png differ
diff --git a/slides/img/spatialparameters.png b/slides/img/spatialparameters.png
new file mode 100644
index 0000000000000000000000000000000000000000..f81d85d0090dea9b83ff002418f14ada079944d3
Binary files /dev/null and b/slides/img/spatialparameters.png differ
diff --git a/slides/index.md b/slides/index.md
index 1ecd67d271882ae88d175e8c9dc1c6df0874e795..05f0fb04c630dd72e693a021a21b93e8da5aab10 100644
--- a/slides/index.md
+++ b/slides/index.md
@@ -5,6 +5,7 @@ title: DuMuX Course Slides
 - [Test problem/application](./problem.html)
 - [Runtime Parameters and Grids](./runtimeparams-grids.html)
 - [Property System](./properties.html)
+- [Material System](./materialsystem.html)
 - [New Dune Module](./dunemodule.html)
 - [Model](./model.html)
 - [Introduction to Multidomain](./multidomain.html)
diff --git a/slides/materialsystem.md b/slides/materialsystem.md
new file mode 100644
index 0000000000000000000000000000000000000000..fb5fe17ae2ac7011b66153297bc69383f90b0654
--- /dev/null
+++ b/slides/materialsystem.md
@@ -0,0 +1,273 @@
+---
+title: Material system
+---
+
+# Introduction to DuMuX- Material system
+
+## Challenges in simulating porous media:
+
+* Highly heterogeneous distribution of parameters and complex nonlinear material laws
+
+* Strong interconnection of properties **--->** difficult to achieve modularity
+
+## Modular structure:
+
+<ins> User-defined parameters and relationships: </ins>
+
+* Components
+* Fluid system
+* Solid system
+* Binary coefficients
+* Fluid-matrix interactions
+* Chemistry
+
+## <ins> Dumux-specific containers and solvers </ins>
+
+- Fluid states
+- Solid states
+- Constraint solvers
+
+# Material system: Component
+
+## Component
+
+<img src="img/component.png" width="200"/>
+
+## <ins> What it does: </ins>
+
+* **Thermodynamic relations** (e.g. molar mass, vapor pressure, density) of a **single chemical species** or a fixed mixture of species
+* Provide a convenient way to access these quantities
+* Not supposed to be used by models directly
+
+## <ins> Example implementations: </ins>
+
+* _H2O_ : pure water, properties by IAPWS-97 or simplified
+
+* _Brine_ : water with a given salt concentration
+
+# Material system: Fluid system
+
+## Fluid system
+
+<img src="img/fluidsystem.png" width="300"/>
+
+## <ins> What it does: </ins>
+
+Expresses the **thermodynamic relations between fluid quantities** (e.g. calculation of density or viscosity based on composition, fugacity coefficient based on temperature and pressure...)
+
+## <ins> Example implementations: </ins>
+
+* _TwoPImmiscible_ : two immiscible fluid phases
+
+* _H2OAir_ : gas and liquid phase with components water and air
+
+# Material system: Binary coefficients
+
+## Binary coefficients
+
+<img src="img/binarycoefficients.png" width="350"/>
+
+## <ins> What it does: </ins>
+
+  **Contains** data and equations required for binary mixtures (e.g. binary diffusion coefficients, coefficients needed for constitutive relationships (like Henry coefficient))
+
+## <ins> Example implementations: </ins>
+
+* _H2O_Air_ : Henry coefficient, gas diffusion coefficient, liquid diffusion coefficent for water and air
+
+# Material system: Solid system
+
+## Solid system
+
+<img src="img/solidsystem.png" width="300"/>
+
+## <ins> What it does: </ins>
+
+Expresses the **thermodynamic properties of the solid matrix** (e.g. calculation of the solid density and solid heat capacity based on the composition...)
+
+<ins> Note to solid system </ins>
+
+_Specifying a solid system is only necessary if you work with a non-isothermal or mineralization model. If no solid system is specified in the problem file, the default is the inert solid phase with the constant component. For the constant component you can set properties in the input file._
+
+
+## <ins> Implementations: </ins>
+
+* _OneCSolid_ : inert solid matrix of one solid component (e.g. granite)
+* _CompositionalSolidPhase_ : composed solid matrix of inert or reactive components (e.g. NaCl and granite)
+
+# Material system: Fluid-matrix interactions
+
+## Fluid-materix interactions
+
+<img src="img/fluidmatrixinteractions.png" width="250"/>
+
+## <ins> What it does: </ins>
+
+* Description of the **interaction of the fluid phases with the porous medium** (e.g. capillary pressure-saturation and relative permeability relationships)
+* Through modular adapters, regularization schemes can be imposed for extreme values
+
+## <ins> Example implementations: </ins>
+
+* Available parametrizations for the capillary pressure-saturation relationship are:
+    * _Van Genuchten_
+    * _Brooks Corey_
+
+## Van-Genuchten
+$\begin{equation}
+p_c = \frac{1}{\alpha}\left(S_e^{-1/m} -1\right)^{1/n}
+\end{equation}$
+
+<img src="img/pc-Sw_VanGenuchten.png" width="500"/>
+
+**--->** Necessary are here the empirical parameters $\alpha$ and $n$.
+
+## Brooks-Corey
+$\begin{equation}
+p_c = p_d S_e^{-1/\lambda}
+\end{equation}$
+
+<img src="img/pc-Sw_BrooksCorey.png" width="500"/>
+
+**--->** Necessary parameters are here the entry pressure $p_d$ and the shape factor $\lambda$.
+
+# Material system: Chemistry
+
+## Chemistry
+
+<img src="img/chemistry.png" width="200"/>
+
+## <ins> What it does: </ins>
+
+Reactions between different components. There are extra models or they are realized with the introduction of a source term.
+
+**Note:** _This contains some specific example implementations. One can implement specific things according to their need._
+
+## <ins> Example implementations: </ins>
+Expresses the **electrochemical models for a fuel cell application**:
+
+* _Electrochemistry_ : for isothermal system
+* _Electrochemistryni_ : for non-isothermal system
+
+# Material system: Fluid state
+
+## Fluid state
+
+<img src="img/fluidstate.png" width="800"/>
+
+## <ins> What it does: </ins>
+
+ * **Stores** the complete thermodynamic configuration of a system at a given spatial and temporal position (e.g. saturation, mole fraction, enthalpy)
+ * **Provides access** methods to all thermodynamic quantities (e.g. saturation, mole fraction, enthalpy)
+
+## <ins> Example implementations: </ins>
+
+ * _ImmiscibleFluidState_ : assumes immiscibility of the fluid phases. Phase compositions and fugacity coefficients do not need to be stored explicitly.
+ * _CompositionalFluidState_ : assumes thermodynamic equilibrium, only a single temperature needs to be stored.
+
+# Material system: Solid state
+
+## Solid state
+
+<img src="img/solidstate.png" width="800"/>
+
+## <ins> What it does: </ins>
+
+ * **Stores** the complete solid configuration of a system at a given spatial and temporal position (e.g. solid volume fractions, solid heat capacity)
+ * **Provides** access methods to all solid quantities (e.g. porosity, density, temperature)
+
+## <ins> Example implementations: </ins>
+
+* _InertSolidState_ : assumes an inert solid phase. Solid volume fractions do not change. This is the **default**.
+
+* _CompositionalSolidState_ : assumes a solid matrix composed out of two components. The volume fractions can change and properties such as heat capacity are adapted.
+
+# Material system: Constraint Solver
+
+## Constraint solver
+
+<img src="img/constraintsolver.png" width="1000"/>
+
+## <ins> What it does: </ins>
+
+**Connects** the thermodynamic relations expressed by fluid systems with the thermodynamic quantities stored by fluid states (e.g. mole fraction, density)
+
+## <ins> Example implementation: </ins>
+
+_CompositionFromFugacities_ : takes all component fugacities, the temperature and pressure of a phase as input and calculates the phase composition
+
+# Example: From component to fluid system
+
+## Component **--->** fluid system
+
+<img src="img/component-fluidsystem.png" width="500"/>
+
+## Example: 2 phases, miscible
+
+ * Components: _H2O_, _Air_
+ * Fluid system: _TwoPTwoC_
+
+## Include headers in properties file: components
+
+```cpp
+// The two-phase fluid system for compents water and air
+#include <dumux/material/fluidsystems/h2oair.hh>
+// The water component
+#include <dumux/material/components/h2o.hh>
+// The air component
+#include <dumux/material/components/air.hh>
+```
+
+## Specify fluid system in properties file:
+
+```cpp
+template<class TypeTag>
+struct FluidSystem<TypeTag, TTag::H2OAir>
+{
+private:
+    using Scalar = GetPropType<TypeTag, Properties::Scalar>;
+public:
+    using type = FluidSystems::H2OAir<Scalar,
+                 Components::TabulatedComponent
+                 <Components::H2O<Scalar>>,
+                 FluidSystems::H2OAirDefaultPolicy
+                 </*fastButSimplifiedRelations=*/true>,
+                 true /*useKelvinEquation*/>;
+};
+```
+
+
+# Example: From component to solid system
+
+## Example: 2 phases, miscible
+
+ * Components: _CaO_, _CaO2H2_ (slaked lime)
+ * Solid system: _OnePNCMin_
+
+## Specify solid system in properties file:
+
+```cpp
+// The solid system
+template<class TypeTag>
+struct SolidSystem<TypeTag, TTag::ThermoChem>
+{
+    using Scalar = GetPropType<TypeTag, Properties::Scalar>;
+    using ComponentOne = Components::ModifiedCaO<Scalar>;
+    using ComponentTwo = Components::CaO2H2<Scalar>;
+    using type = SolidSystems::CompositionalSolidPhase
+                 <Scalar, ComponentOne, ComponentTwo>;
+};
+```
+
+
+# Exercise
+
+## <ins> Tasks: </ins>
+
+1. Get familiar with the code
+2. 2p model: Implement a new component (incompressible and compressible)
+3. 2p2c model: Implement a new fluid system
+4. Change wettability of the porous medium
+5. Advanced: Use van Genuchten relationship with parameters: alpha = 0.0037 and alphalense = 0.00045, n = 4.7 and nlense = 7.3
+
+**First step:** Go to <https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/tree/master/exercises/exercise-fluidsystem> and check out the README
+