diff --git a/dumux/experimental/assembly/cclocalassembler.hh b/dumux/experimental/assembly/cclocalassembler.hh
index ea58dfcf7dbaa24bbccfd59195c9c39e6023e837..4b82b8e4d4ec4d46310c9e1d1cda153ed1b67fcf 100644
--- a/dumux/experimental/assembly/cclocalassembler.hh
+++ b/dumux/experimental/assembly/cclocalassembler.hh
@@ -34,15 +34,6 @@
 
 namespace Dumux::Experimental {
 
-#ifndef DOXYGEN
-namespace Detail::CC {
-
-template<class X, class Y>
-using Impl = std::conditional_t<!std::is_same_v<X, void>, X, Y>;
-
-} // end namespace Detail
-#endif // DOXYGEN
-
 /*!
  * \ingroup Assembly
  * \ingroup CCDiscretization
@@ -194,10 +185,10 @@ class CCLocalAssembler;
 template<class TypeTag, class Assembler, class Implementation>
 class CCLocalAssembler<TypeTag, Assembler, DiffMethod::numeric, Implementation>
 : public CCLocalAssemblerBase<TypeTag, Assembler,
-                              Detail::CC::Impl<Implementation, CCLocalAssembler<TypeTag, Assembler, DiffMethod::numeric, Implementation>>>
+                              NonVoidOr<CCLocalAssembler<TypeTag, Assembler, DiffMethod::numeric, Implementation>, Implementation>>
 {
     using ThisType = CCLocalAssembler<TypeTag, Assembler, DiffMethod::numeric, Implementation>;
-    using ParentType = CCLocalAssemblerBase<TypeTag, Assembler, Detail::CC::Impl<Implementation, ThisType>>;
+    using ParentType = CCLocalAssemblerBase<TypeTag, Assembler, NonVoidOr<ThisType, Implementation>>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
diff --git a/dumux/experimental/assembly/cvfelocalassembler.hh b/dumux/experimental/assembly/cvfelocalassembler.hh
index bec9d86816b9f43bfb3d2b2a012ec31a9078cc19..dcb0bb0b5282d52c52763bd092a21716195a2ec5 100644
--- a/dumux/experimental/assembly/cvfelocalassembler.hh
+++ b/dumux/experimental/assembly/cvfelocalassembler.hh
@@ -37,15 +37,6 @@
 
 namespace Dumux::Experimental {
 
-#ifndef DOXYGEN
-namespace Detail::CVFE {
-
-template<class X, class Y>
-using Impl = std::conditional_t<!std::is_same_v<X, void>, X, Y>;
-
-} // end namespace Detail
-#endif // DOXYGEN
-
 /*!
  * \ingroup Assembly
  * \ingroup CVFEDiscretization
@@ -339,10 +330,10 @@ class CVFELocalAssembler;
 template<class TypeTag, class Assembler, class Implementation>
 class CVFELocalAssembler<TypeTag, Assembler, DiffMethod::numeric, Implementation>
 : public CVFELocalAssemblerBase<TypeTag, Assembler,
-                                Detail::CVFE::Impl<Implementation, CVFELocalAssembler<TypeTag, Assembler, DiffMethod::numeric, Implementation>>>
+                                NonVoidOr<CVFELocalAssembler<TypeTag, Assembler, DiffMethod::numeric, Implementation>, Implementation>>
 {
     using ThisType = CVFELocalAssembler<TypeTag, Assembler, DiffMethod::numeric, Implementation>;
-    using ParentType = CVFELocalAssemblerBase<TypeTag, Assembler, Detail::CVFE::Impl<Implementation, ThisType>>;
+    using ParentType = CVFELocalAssemblerBase<TypeTag, Assembler, NonVoidOr<ThisType, Implementation>>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
diff --git a/dumux/experimental/common/typetraits/typetraits.hh b/dumux/experimental/common/typetraits/typetraits.hh
index ad1aad6c4b7744b59b93d8f9a7db233ab86ca82b..e9ab11bd8fcc049b423b2cd1d8eec2cc77795c0c 100644
--- a/dumux/experimental/common/typetraits/typetraits.hh
+++ b/dumux/experimental/common/typetraits/typetraits.hh
@@ -22,6 +22,13 @@ namespace Dumux {
 inline constexpr auto noop = [] (auto...) {};
 using Noop = decltype(noop);
 
+/*!
+ * \brief Helper template to select type T if it is not void
+ *        or fall back to the given default type otherwise.
+ */
+template<typename Default, typename T>
+using NonVoidOr = std::conditional_t<!std::is_void_v<T>, T, Default>;
 
 } // end namespace Dumux
+
 #endif