diff --git a/dune/tectonic/globallaursennonlinearity.hh b/dune/tectonic/globallaursennonlinearity.hh
index 932c6152b6eed46c6c3b81c32c05d7b752d765fb..b903d18a6060a79bc1736f950b9d13da6a8e46ef 100644
--- a/dune/tectonic/globallaursennonlinearity.hh
+++ b/dune/tectonic/globallaursennonlinearity.hh
@@ -16,13 +16,14 @@ namespace Dune {
 template <class OuterFunctionType, class VectorType, class MatrixType>
 class GlobalLaursenNonlinearity
     : public GlobalNonlinearity<VectorType, MatrixType> {
+private:
+  typedef shared_ptr<BlockVector<FieldVector<double, 1>> const> dataptr;
+
 public:
   using GlobalNonlinearity<VectorType, MatrixType>::dim;
 
-  GlobalLaursenNonlinearity(
-      shared_ptr<BlockVector<FieldVector<double, 1>> const> mu,
-      shared_ptr<BlockVector<FieldVector<double, 1>> const> normalStress,
-      shared_ptr<BlockVector<FieldVector<double, 1>> const> nodalIntegrals)
+  GlobalLaursenNonlinearity(dataptr mu, dataptr normalStress,
+                            dataptr nodalIntegrals)
       : mu(mu),
         normalStress(normalStress),
         nodalIntegrals(nodalIntegrals),
@@ -64,9 +65,9 @@ class GlobalLaursenNonlinearity
 private:
   shared_ptr<LocalNonlinearity<dim> const> const trivialNonlinearity;
 
-  shared_ptr<BlockVector<FieldVector<double, 1>> const> mu;
-  shared_ptr<BlockVector<FieldVector<double, 1>> const> normalStress;
-  shared_ptr<BlockVector<FieldVector<double, 1>> const> nodalIntegrals;
+  dataptr mu;
+  dataptr normalStress;
+  dataptr nodalIntegrals;
 
   std::vector<shared_ptr<LocalNonlinearity<dim> const>> mutable restrictions;
 };
diff --git a/dune/tectonic/globalruinanonlinearity.hh b/dune/tectonic/globalruinanonlinearity.hh
index 4787a4a01a620c6783165dbae323cb1d5341b6a7..c1eaf3c212d59e5bf0590f9650ce70c8b2245fa5 100644
--- a/dune/tectonic/globalruinanonlinearity.hh
+++ b/dune/tectonic/globalruinanonlinearity.hh
@@ -17,18 +17,15 @@ namespace Dune {
 template <class VectorType, class MatrixType>
 class GlobalRuinaNonlinearity
     : public GlobalNonlinearity<VectorType, MatrixType> {
+private:
+  typedef shared_ptr<BlockVector<FieldVector<double, 1>> const> dataptr;
+
 public:
   using GlobalNonlinearity<VectorType, MatrixType>::dim;
 
-  GlobalRuinaNonlinearity(
-      shared_ptr<BlockVector<FieldVector<double, 1>> const> nodalIntegrals,
-      shared_ptr<BlockVector<FieldVector<double, 1>> const> a,
-      shared_ptr<BlockVector<FieldVector<double, 1>> const> mu,
-      shared_ptr<BlockVector<FieldVector<double, 1>> const> eta,
-      shared_ptr<BlockVector<FieldVector<double, 1>> const> normalStress,
-      shared_ptr<BlockVector<FieldVector<double, 1>> const> b,
-      shared_ptr<BlockVector<FieldVector<double, 1>> const> state,
-      shared_ptr<BlockVector<FieldVector<double, 1>> const> L, double h)
+  GlobalRuinaNonlinearity(dataptr nodalIntegrals, dataptr a, dataptr mu,
+                          dataptr eta, dataptr normalStress, dataptr b,
+                          dataptr state, dataptr L, double h)
       : nodalIntegrals(nodalIntegrals),
         a(a),
         mu(mu),
@@ -67,14 +64,14 @@ class GlobalRuinaNonlinearity
 private:
   shared_ptr<LocalNonlinearity<dim> const> const trivialNonlinearity;
 
-  shared_ptr<BlockVector<FieldVector<double, 1>> const> nodalIntegrals;
-  shared_ptr<BlockVector<FieldVector<double, 1>> const> a;
-  shared_ptr<BlockVector<FieldVector<double, 1>> const> mu;
-  shared_ptr<BlockVector<FieldVector<double, 1>> const> eta;
-  shared_ptr<BlockVector<FieldVector<double, 1>> const> normalStress;
-  shared_ptr<BlockVector<FieldVector<double, 1>> const> b;
-  shared_ptr<BlockVector<FieldVector<double, 1>> const> state;
-  shared_ptr<BlockVector<FieldVector<double, 1>> const> L;
+  dataptr nodalIntegrals;
+  dataptr a;
+  dataptr mu;
+  dataptr eta;
+  dataptr normalStress;
+  dataptr b;
+  dataptr state;
+  dataptr L;
   double const h;
 
   std::vector<shared_ptr<LocalNonlinearity<dim> const>> mutable restrictions;