diff --git a/dune/gfe/assemblers/surfacecosseratstressassembler.hh b/dune/gfe/assemblers/surfacecosseratstressassembler.hh
index bafe6bf7ac9263b6980e1582030f1e4d09f26ce3..56ea6d0b36eae127f9a12b0ed0315403f514320e 100644
--- a/dune/gfe/assemblers/surfacecosseratstressassembler.hh
+++ b/dune/gfe/assemblers/surfacecosseratstressassembler.hh
@@ -6,7 +6,6 @@
 #include <dune/fufem/boundarypatch.hh>
 
 #include <dune/gfe/linearalgebra.hh>
-#include <dune/gfe/functions/localgeodesicfefunction.hh>
 #include <dune/gfe/spaces/rotation.hh>
 
 #include <dune/matrix-vector/transpose.hh>
@@ -18,10 +17,11 @@ namespace Dune::GFE
 
      \tparam BasisOrderD Basis used for the displacement
      \tparam BasisOrderR Basis used for the rotation
+     \tparam LocalGFEFunctionR Geometric FE function for the rotations
      \tparam TargetSpaceD Target space for the Displacement
      \tparam TargetSpaceR Target space for the Rotation
    */
-  template <class BasisOrderD, class BasisOrderR, class TargetSpaceD, class TargetSpaceR>
+  template <class BasisOrderD, class BasisOrderR, class LocalGFEFunctionR, class TargetSpaceD, class TargetSpaceR>
   class SurfaceCosseratStressAssembler
   {
   public:
@@ -238,9 +238,7 @@ namespace Dune::GFE
           for (std::size_t i=0; i<localConfigurationRot.size(); i++)
             localConfigurationRot[i] = rot[localViewOrderR.index(i)[0]];  //localViewOrderR.index(i) is a multiindex, its first entry is the actual index
 
-          const auto scalarBasisR = Functions::subspaceBasis(basisOrderR_,0);
-          typedef LocalGeodesicFEFunction<decltype(scalarBasisR), TargetSpaceR> LocalGFEFunctionType;
-          LocalGFEFunctionType localGeodesicFEFunction(lFEOrderR,localConfigurationRot);
+          LocalGFEFunctionR localGeodesicFEFunction(lFEOrderR,localConfigurationRot);
 
           auto evaluateAtPoint = [&](FieldVector<double,3> pointGlobal, FieldVector<double,3> pointLocal3d) -> FieldMatrix<double,dim,dim> {
                                    Dune::FieldMatrix<double,dim,dim> nablaTheta;
diff --git a/src/film-on-substrate-stress-plot.cc b/src/film-on-substrate-stress-plot.cc
index 7ccbee584c3e015b47d71a758b6f1f49740f0403..2294456c9a8d5bba7a8640016d8f4ca09409339c 100644
--- a/src/film-on-substrate-stress-plot.cc
+++ b/src/film-on-substrate-stress-plot.cc
@@ -43,6 +43,7 @@
 
 #include <dune/gfe/filereader.hh>
 #include <dune/gfe/assemblers/surfacecosseratstressassembler.hh>
+#include <dune/gfe/functions/localgeodesicfefunction.hh>
 #include <dune/gfe/spaces/rotation.hh>
 
 // grid dimension
@@ -253,7 +254,11 @@ int main (int argc, char *argv[]) try
   /////////////////////////////////////////////////////////////
   int quadOrder = parameterSet.hasKey("quadOrder") ? parameterSet.get<int>("quadOrder") : 4;
 
-  auto stressAssembler = GFE::SurfaceCosseratStressAssembler<decltype(basisOrderD),decltype(basisOrderR), FieldVector<double,dim>, GFE::Rotation<double,dim> >
+  const Functions::LagrangeBasis<GridView,rotationOrder> scalarBasisR(gridView);
+
+  using LocalGFEFunctionR = GFE::LocalGeodesicFEFunction<decltype(scalarBasisR),GFE::Rotation<double,dim> >;
+
+  auto stressAssembler = GFE::SurfaceCosseratStressAssembler<decltype(basisOrderD),decltype(basisOrderR), LocalGFEFunctionR, FieldVector<double,dim>, GFE::Rotation<double,dim> >
                            (basisOrderD, basisOrderR);
 
 
diff --git a/test/surfacecosseratstressassemblertest.cc b/test/surfacecosseratstressassemblertest.cc
index be51c4270318df14f775e8084825ad47147eba4c..7c7aacfa12b166532bda3aabcb812fb65513b965 100644
--- a/test/surfacecosseratstressassemblertest.cc
+++ b/test/surfacecosseratstressassemblertest.cc
@@ -31,6 +31,7 @@
 
 #include <dune/gfe/filereader.hh>
 #include <dune/gfe/assemblers/surfacecosseratstressassembler.hh>
+#include <dune/gfe/functions/localgeodesicfefunction.hh>
 #include <dune/gfe/spaces/rotation.hh>
 
 #include <dune/matrix-vector/transpose.hh>
@@ -237,7 +238,16 @@ int main (int argc, char *argv[])
   /////////////////////////////////////////////////////////////
 
   auto quadOrder = 4;
-  auto stressAssembler = GFE::SurfaceCosseratStressAssembler<decltype(basisOrderD),decltype(basisOrderR), FieldVector<double,dim>, GFE::Rotation<double,dim> >
+
+  const Functions::LagrangeBasis<GridView,rotationOrder> scalarBasisR(gridView);
+
+  using LocalGFEFunctionR = GFE::LocalGeodesicFEFunction<decltype(scalarBasisR),GFE::Rotation<double,dim> >;
+
+  auto stressAssembler = GFE::SurfaceCosseratStressAssembler<decltype(basisOrderD),
+      decltype(basisOrderR),
+      LocalGFEFunctionR,
+      FieldVector<double,dim>,
+      GFE::Rotation<double,dim> >
                            (basisOrderD, basisOrderR);
 
   std::shared_ptr<Elasticity::LocalDensity<dim,ValueType> > elasticDensity;