diff --git a/dune/functions/functionspacebases/pq1nodalbasis.hh b/dune/functions/functionspacebases/pq1nodalbasis.hh
index 3949ad726293fdc0211a21d6dbccc35831c3da21..b05f0de7ec37ee6fc753eeaea0df65f175ed84d4 100644
--- a/dune/functions/functionspacebases/pq1nodalbasis.hh
+++ b/dune/functions/functionspacebases/pq1nodalbasis.hh
@@ -285,6 +285,43 @@ protected:
 
 
 
+namespace BasisBuilder {
+
+namespace Imp {
+
+class PQ1PreBasisFactory
+{
+public:
+  static const std::size_t requiredMultiIndexSize = 1;
+
+  template<class MultiIndex, class GridView>
+  auto makePreBasis(const GridView& gridView) const
+  {
+    return PQ1PreBasis<GridView, MultiIndex>(gridView);
+  }
+
+};
+
+} // end namespace BasisBuilder::Imp
+
+
+
+/**
+ * \brief Create a pre-basis factory that can create a PQ_1 pre-basis
+ *
+ * \ingroup FunctionSpaceBasesImplementations
+ *
+ * \tparam k   The polynomial order of ansatz functions
+ */
+auto pq1Nodal()
+{
+  return Imp::PQ1PreBasisFactory();
+}
+
+} // end namespace BasisBuilder
+
+
+
 /** \brief Nodal basis of a scalar first-order Lagrangian finite element space
  *
  * \ingroup FunctionSpaceBasesImplementations