diff --git a/dumux/porousmediumflow/1pncmin/model.hh b/dumux/porousmediumflow/1pncmin/model.hh
index ee098c63546e03191860ee5b4b3e194352613ccd..1a12f098d587f0724b9629c995a89290f13d6e08 100644
--- a/dumux/porousmediumflow/1pncmin/model.hh
+++ b/dumux/porousmediumflow/1pncmin/model.hh
@@ -69,7 +69,13 @@ v = - \frac{k_{r}}{\mu} \mbox{\bf K}
 
 #include <dumux/porousmediumflow/1pnc/model.hh>
 #include <dumux/porousmediumflow/1pnc/indices.hh>
+#include <dumux/porousmediumflow/1pnc/volumevariables.hh>
+
 #include <dumux/porousmediumflow/mineralization/model.hh>
+#include <dumux/porousmediumflow/mineralization/localresidual.hh>
+#include <dumux/porousmediumflow/mineralization/volumevariables.hh>
+#include <dumux/porousmediumflow/mineralization/vtkoutputfields.hh>
+
 #include <dumux/porousmediumflow/nonisothermal/indices.hh>
 #include <dumux/porousmediumflow/nonisothermal/vtkoutputfields.hh>
 #include <dumux/material/fluidmatrixinteractions/1p/thermalconductivityaverage.hh>
@@ -81,33 +87,44 @@ namespace Properties
 //////////////////////////////////////////////////////////////////
 // Type tags
 //////////////////////////////////////////////////////////////////
-NEW_TYPE_TAG(OnePNCMin, INHERITS_FROM(OnePNC, Mineralization));
+NEW_TYPE_TAG(OnePNCMin, INHERITS_FROM(OnePNC));
 NEW_TYPE_TAG(OnePNCMinNI, INHERITS_FROM(OnePNCMin));
 
 //////////////////////////////////////////////////////////////////
 // Property tags for the isothermal 2pncmin model
 //////////////////////////////////////////////////////////////////
 
-//! the VolumeVariables property
-SET_TYPE_PROP(OnePNCMin, NonMineralizationVolumeVariables, OnePNCVolumeVariables<TypeTag>);
+//! use the mineralization volume variables together with the 1pnc vol vars
+SET_PROP(OnePNCMin, VolumeVariables)
+{
+private:
+    using NonMinVolVars = OnePNCVolumeVariables<TypeTag>;
+public:
+    using type = MineralizationVolumeVariables<TypeTag, NonMinVolVars>;
+};
+
+// Use the mineralization local residual
+SET_TYPE_PROP(OnePNCMin, LocalResidual, MineralizationLocalResidual<TypeTag>);
 
-//! The 1pnc model traits define the non-mineralization part
-SET_PROP(OnePNCMin, NonMineralizationModelTraits)
+//! Use non-mineralization model traits with 1pnc traits
+SET_PROP(OnePNCMin, ModelTraits)
 {
 private:
     using FluidSystem = typename GET_PROP_TYPE(TypeTag, PTAG(FluidSystem));
+    using NonMinTraits = OnePNCModelTraits<FluidSystem::numComponents>;
 public:
-    using type = OnePNCModelTraits<FluidSystem::numComponents>;
+    using type = MineralizationModelTraits<NonMinTraits, FluidSystem::numSPhases>;
 };
 
-//! Set the vtk output fields specific to this model
-SET_PROP(OnePNCMin, NonMineralizationVtkOutputFields)
+//! Use the mineralization vtk output fields
+SET_PROP(OnePNCMin, VtkOutputFields)
 {
 private:
    using FluidSystem =  typename GET_PROP_TYPE(TypeTag, FluidSystem);
    static constexpr int phaseIdx = GET_PROP_VALUE(TypeTag, PhaseIdx);
+   using NonMineralizationFields = OnePNCVtkOutputFields<FluidSystem, phaseIdx>;
 public:
-    using type = OnePNCVtkOutputFields<FluidSystem, phaseIdx>;
+    using type = MineralizationVtkOutputFields<NonMineralizationFields, FluidSystem>;
 };
 
 //////////////////////////////////////////////////////////////////
@@ -119,7 +136,8 @@ SET_PROP(OnePNCMinNI, VtkOutputFields)
 {
 private:
     using FluidSystem =  typename GET_PROP_TYPE(TypeTag, FluidSystem);
-    using NonMineralizationFields =  typename GET_PROP_TYPE(TypeTag, NonMineralizationVtkOutputFields);
+    static constexpr int phaseIdx = GET_PROP_VALUE(TypeTag, PhaseIdx);
+    using NonMineralizationFields =  OnePNCVtkOutputFields<FluidSystem, phaseIdx>;
     using IsothermalFields = MineralizationVtkOutputFields<NonMineralizationFields, FluidSystem>;
 public:
     using type = EnergyVtkOutputFields<IsothermalFields>;
diff --git a/dumux/porousmediumflow/2pncmin/model.hh b/dumux/porousmediumflow/2pncmin/model.hh
index 7a13e41ab2f149aa12e09b2f6c6067fed38daa1b..a413e1075b9d91006d2d6b767835d367f20da288 100644
--- a/dumux/porousmediumflow/2pncmin/model.hh
+++ b/dumux/porousmediumflow/2pncmin/model.hh
@@ -93,7 +93,13 @@
 #define DUMUX_2PNCMIN_MODEL_HH
 
 #include <dumux/porousmediumflow/2pnc/model.hh>
+#include <dumux/porousmediumflow/2pnc/volumevariables.hh>
+
 #include <dumux/porousmediumflow/mineralization/model.hh>
+#include <dumux/porousmediumflow/mineralization/localresidual.hh>
+#include <dumux/porousmediumflow/mineralization/volumevariables.hh>
+#include <dumux/porousmediumflow/mineralization/vtkoutputfields.hh>
+
 #include <dumux/porousmediumflow/nonisothermal/indices.hh>
 #include <dumux/porousmediumflow/nonisothermal/vtkoutputfields.hh>
 
@@ -104,34 +110,46 @@ namespace Properties
 //////////////////////////////////////////////////////////////////
 // Type tags
 //////////////////////////////////////////////////////////////////
-NEW_TYPE_TAG(TwoPNCMin, INHERITS_FROM(TwoPNC, Mineralization));
+NEW_TYPE_TAG(TwoPNCMin, INHERITS_FROM(TwoPNC));
 NEW_TYPE_TAG(TwoPNCMinNI, INHERITS_FROM(TwoPNCMin));
 
 //////////////////////////////////////////////////////////////////
 // Property tags for the isothermal 2pncmin model
 //////////////////////////////////////////////////////////////////
-SET_TYPE_PROP(TwoPNCMin, NonMineralizationVolumeVariables, TwoPNCVolumeVariables<TypeTag>);     //!< the VolumeVariables property
+
+// use the mineralization local residual
+SET_TYPE_PROP(TwoPNCMin, LocalResidual, MineralizationLocalResidual<TypeTag>);
+
+//! use the mineralization volume variables together with the 2pnc vol vars
+SET_PROP(TwoPNCMin, VolumeVariables)
+{
+private:
+    using NonMinVolVars = TwoPNCVolumeVariables<TypeTag>;
+public:
+    using type = MineralizationVolumeVariables<TypeTag, NonMinVolVars>;
+};
 
 //! Set the vtk output fields specific to this model
-SET_PROP(TwoPNCMin, NonMineralizationVtkOutputFields)
+SET_PROP(TwoPNCMin, VtkOutputFields)
 {
 private:
    using FluidSystem =  typename GET_PROP_TYPE(TypeTag, FluidSystem);
    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
-
+   using NonMineralizationFields = TwoPNCVtkOutputFields<FluidSystem, Indices>;
 public:
-    using type = TwoPNCVtkOutputFields<FluidSystem, Indices>;
+    using type = MineralizationVtkOutputFields<NonMineralizationFields, FluidSystem>;
 };
 
 //! The 2pnc model traits define the non-mineralization part
-SET_PROP(TwoPNCMin, NonMineralizationModelTraits)
+SET_PROP(TwoPNCMin, ModelTraits)
 {
 private:
     //! we use the number of components specified by the fluid system here
     using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
     static_assert(FluidSystem::numPhases == 2, "Only fluid systems with 2 fluid phases are supported by the 2p-nc model!");
+    using NonMineralizationTraits = TwoPNCModelTraits<FluidSystem::numComponents>;
 public:
-    using type = TwoPNCModelTraits<FluidSystem::numComponents>;
+    using type = MineralizationModelTraits<NonMineralizationTraits, FluidSystem::numSPhases>;
 };
 
 //////////////////////////////////////////////////////////////////
@@ -156,8 +174,9 @@ public:
 SET_PROP(TwoPNCMinNI, VtkOutputFields)
 {
 private:
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
     using FluidSystem =  typename GET_PROP_TYPE(TypeTag, FluidSystem);
-    using NonMineralizationFields =  typename GET_PROP_TYPE(TypeTag, NonMineralizationVtkOutputFields);
+    using NonMineralizationFields = TwoPNCVtkOutputFields<FluidSystem, Indices>;
     using IsothermalFields = MineralizationVtkOutputFields<NonMineralizationFields, FluidSystem>;
 public:
     using type = EnergyVtkOutputFields<IsothermalFields>;
diff --git a/dumux/porousmediumflow/mineralization/model.hh b/dumux/porousmediumflow/mineralization/model.hh
index 4c5b3cfef6a87e61a9f4f69de80c72334fa96456..e59fb24b9645f3f6b23a03507b0171b036795b50 100644
--- a/dumux/porousmediumflow/mineralization/model.hh
+++ b/dumux/porousmediumflow/mineralization/model.hh
@@ -30,11 +30,6 @@
 #ifndef DUMUX_MINERALIZATION_MODEL_HH
 #define DUMUX_MINERALIZATION_MODEL_HH
 
-#include <dumux/common/properties.hh>
-#include "localresidual.hh"
-#include "volumevariables.hh"
-#include "vtkoutputfields.hh"
-
 namespace Dumux {
 
 /*!
@@ -55,40 +50,6 @@ struct MineralizationModelTraits : public NonMinTraits
     static constexpr int numEq() { return NonMinTraits::numEq() + numPS; }
 };
 
-namespace Properties {
-//////////////////////////////////////////////////////////////////
-// Type tags
-//////////////////////////////////////////////////////////////////
-NEW_TYPE_TAG(Mineralization);
-
-//! Set the model traits class
-SET_PROP(Mineralization, ModelTraits)
-{
-private:
-    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
-    using NonMinTraits = typename GET_PROP_TYPE(TypeTag, NonMineralizationModelTraits);
-public:
-    using type = MineralizationModelTraits<NonMinTraits, FluidSystem::numSPhases>;
-};
-
-//! Set the general mineralization volume variables
-SET_TYPE_PROP(Mineralization, VolumeVariables, MineralizationVolumeVariables<TypeTag>);
-
-//! Set the general mineralization compositional local residual
-SET_TYPE_PROP(Mineralization, LocalResidual, MineralizationLocalResidual<TypeTag>);
-
-//! VTK outputs for mineralization models
-SET_PROP(Mineralization, VtkOutputFields)
-{
-private:
-   using NonMineralizationVtkOutputFields =  typename GET_PROP_TYPE(TypeTag, NonMineralizationVtkOutputFields);
-   using FluidSystem =  typename GET_PROP_TYPE(TypeTag, FluidSystem);
-
-public:
-    using type = MineralizationVtkOutputFields<NonMineralizationVtkOutputFields, FluidSystem>;
-};
-
-} // end namespace Properties
 } // end namespace Dumux
 
 #endif
diff --git a/dumux/porousmediumflow/mineralization/volumevariables.hh b/dumux/porousmediumflow/mineralization/volumevariables.hh
index 77057c55d1c60148a12e55097979cd552636ff6e..0ebc313d74e8faa3577ecb000e84eca25265085f 100644
--- a/dumux/porousmediumflow/mineralization/volumevariables.hh
+++ b/dumux/porousmediumflow/mineralization/volumevariables.hh
@@ -36,10 +36,10 @@ namespace Dumux {
  * \brief Contains the quantities which are are constant within a sub-control volume
  *        of the finite volume grid in an m-phase, n-component, mineralization model.
  */
-template <class TypeTag>
-class MineralizationVolumeVariables : public GET_PROP_TYPE(TypeTag, NonMineralizationVolumeVariables)
+template <class TypeTag, class NonMineralizationVolVars>
+class MineralizationVolumeVariables : public NonMineralizationVolVars
 {
-    using ParentType = typename GET_PROP_TYPE(TypeTag, NonMineralizationVolumeVariables);
+    using ParentType = NonMineralizationVolVars;
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
     using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
     using Problem = typename GET_PROP_TYPE(TypeTag, Problem);