diff --git a/dune/stuff/functions.hh b/dune/stuff/functions.hh
index 3ff12d3b3404323231bb67a7a8d99478996a9bb8..0a0fe27fc23e5fe930f870e5f07f54a6be7edeec 100644
--- a/dune/stuff/functions.hh
+++ b/dune/stuff/functions.hh
@@ -234,6 +234,13 @@ public:
                                     << ":\n"
                                     << available_as_str());
   } // ... create(...)
+
+  static std::unique_ptr<InterfaceType> create(const Common::Configuration& cfg)
+  {
+    if (!cfg.has_key("type"))
+      DUNE_THROW(Exceptions::wrong_input_given, "Missing 'type' in given cfg (see below)!\n\n" << cfg);
+    return create(cfg.get<std::string>("type"), cfg);
+  }
 }; // class FunctionsProvider
 
 } // namespace Stuff