diff --git a/dune/fu-tutorial/referenceelementutility.hh b/dune/fu-tutorial/referenceelementutility.hh
index 43e29528f99fea6e4dcabf4d069d7a02970dd1eb..9a48250d7a523b9140c826c7657a5e43470cd6a9 100644
--- a/dune/fu-tutorial/referenceelementutility.hh
+++ b/dune/fu-tutorial/referenceelementutility.hh
@@ -153,8 +153,8 @@ const auto& referenceElement(const Entity& entity)
  *
  * This should (maybe) be a member of ReferenceElement.
  */
-template<class ctype, int dim>
-std::size_t size(const Dune::ReferenceElement<ctype, dim>& referenceElement, DynamicCodim codim)
+template<class ReferenceElementType>
+std::size_t referenceElementSize(const ReferenceElementType& referenceElement, DynamicCodim codim)
 {
   return referenceElement.size(codim);
 }
@@ -166,8 +166,8 @@ std::size_t size(const Dune::ReferenceElement<ctype, dim>& referenceElement, Dyn
  *
  * This should (maybe) be a member of ReferenceElement.
  */
-template<class ctype, int dim>
-Dune::GeometryType type(const Dune::ReferenceElement<ctype, dim>& referenceElement, DynamicSubEntity subEntity)
+template<class ReferenceElementType>
+Dune::GeometryType type(const ReferenceElementType& referenceElement, DynamicSubEntity subEntity)
 {
   return referenceElement.type(subEntity.index(), subEntity.codim());
 }
@@ -179,8 +179,8 @@ Dune::GeometryType type(const Dune::ReferenceElement<ctype, dim>& referenceEleme
  *
  * This should (maybe) be a member of ReferenceElement.
  */
-template<class ctype, int dim>
-std::size_t size(const Dune::ReferenceElement<ctype, dim>& referenceElement, DynamicSubEntity subEntity, DynamicCodim subSubEntityCodim)
+template<class ReferenceElementType>
+std::size_t referenceElementSize(const ReferenceElementType& referenceElement, DynamicSubEntity subEntity, DynamicCodim subSubEntityCodim)
 {
   return referenceElement.size(subEntity.index(), subEntity.codim(), subSubEntityCodim);
 }
@@ -195,8 +195,8 @@ std::size_t size(const Dune::ReferenceElement<ctype, dim>& referenceElement, Dyn
  * functionality is often misunderstood and you normaly
  * need all subsubentities anyway.
  */
-template<class ctype, int dim>
-auto subEntity(const Dune::ReferenceElement<ctype, dim>& referenceElement, DynamicSubEntity se, DynamicSubEntity subSubEntity)
+template<class ReferenceElementType>
+auto subEntity(const ReferenceElementType& referenceElement, DynamicSubEntity se, DynamicSubEntity subSubEntity)
 {
   return subEntity(subSubEntity.codim(), referenceElement.subEntity(se.index(), se.codim(), subSubEntity.index(), subSubEntity.codim()));
 }
@@ -208,11 +208,12 @@ auto subEntity(const Dune::ReferenceElement<ctype, dim>& referenceElement, Dynam
  *
  * This should (maybe) be a member of ReferenceElement.
  */
-template<class ctype, int dim>
-auto subEntities(const Dune::ReferenceElement<ctype, dim>& referenceElement, const DynamicSubEntity subEntityTag, DynamicCodim codim)
+template<class ReferenceElementType>
+auto subEntities(const ReferenceElementType& referenceElement, const DynamicSubEntity subEntityTag, DynamicCodim codim)
 {
-  static const std::size_t maxSubEntityCount = Dune::StaticPower<2,dim>::power;
-  std::size_t subEntityCount = size(referenceElement, subEntityTag, codim);
+  static constexpr int dimension = ReferenceElementType::dimension;
+  static const std::size_t maxSubEntityCount = Dune::StaticPower<2,dimension>::power;
+  std::size_t subEntityCount = referenceElementSize(referenceElement, subEntityTag, codim);
 
   // Todo: This could be replaced by an on-the fly range by doing a
   // transformation to an index range. Unfortunately these range tools
@@ -232,8 +233,8 @@ auto subEntities(const Dune::ReferenceElement<ctype, dim>& referenceElement, con
  *
  * This should (maybe) be a member of ReferenceElement.
  */
-template<class ctype, int dim>
-auto subEntities(const Dune::ReferenceElement<ctype, dim>& referenceElement, DynamicCodim cd)
+template<class ReferenceElementType>
+auto subEntities(const ReferenceElementType& referenceElement, DynamicCodim cd)
 {
   return subEntities(referenceElement, subEntity(codim(0), 0), cd);
 }
@@ -243,10 +244,11 @@ auto subEntities(const Dune::ReferenceElement<ctype, dim>& referenceElement, Dyn
 /**
  * \brief Get index-range of vertices of given subentity within the ReferenceElement
  */
-template<class ctype, int dim>
-auto subVertices(const Dune::ReferenceElement<ctype, dim>& referenceElement, const DynamicSubEntity subEntityTag)
+template<class ReferenceElementType>
+auto subVertices(const ReferenceElementType& referenceElement, const DynamicSubEntity subEntityTag)
 {
-  return subEntities(referenceElement, subEntityTag, codim(dim));
+  static constexpr int dimension = ReferenceElementType::dimension;
+  return subEntities(referenceElement, subEntityTag, codim(dimension));
 }