diff --git a/dune/functions/functionspacebases/lagrangedgbasis.hh b/dune/functions/functionspacebases/lagrangedgbasis.hh
index 81689c7186292e3aa042794ba57d18c4fffd45ac..e0816f19cc67d2c0cf35a07269a8e26d6da146e9 100644
--- a/dune/functions/functionspacebases/lagrangedgbasis.hh
+++ b/dune/functions/functionspacebases/lagrangedgbasis.hh
@@ -291,6 +291,46 @@ protected:
 
 
 
+
+namespace BasisBuilder {
+
+namespace Imp {
+
+template<std::size_t k>
+class LagrangeDGPreBasisFactory
+{
+public:
+  static const std::size_t requiredMultiIndexSize = 1;
+
+  template<class MultiIndex, class GridView>
+  auto makePreBasis(const GridView& gridView) const
+  {
+    return LagrangeDGPreBasis<GridView, k, MultiIndex>(gridView);
+  }
+
+};
+
+} // end namespace BasisBuilder::Imp
+
+
+
+/**
+ * \brief Create a pre-basis factory that can create a LagrangeDG pre-basis
+ *
+ * \ingroup FunctionSpaceBasesImplementations
+ *
+ * \tparam k   The polynomial order of the ansatz functions
+ */
+template<std::size_t k>
+auto lagrangeDG()
+{
+  return Imp::LagrangeDGPreBasisFactory<k>();
+}
+
+} // end namespace BasisBuilder
+
+
+
 // *****************************************************************************
 // This is the actual global basis implementation based on the reusable parts.
 // *****************************************************************************