diff --git a/python/dune/perftool/generation/backend.py b/python/dune/perftool/generation/backend.py
index 27356c937f1c8617297736a34e74d540dd0996d2..0e7b7ec2c705bf7f71fa642544f10861257e2352 100644
--- a/python/dune/perftool/generation/backend.py
+++ b/python/dune/perftool/generation/backend.py
@@ -1,4 +1,5 @@
 from dune.perftool.generation.cache import _RegisteredFunction
+from dune.perftool.options import option_switch
 from pytools import Record
 
 
@@ -9,10 +10,12 @@ class FuncProxy(Record):
     def __init__(self, interface, name, func):
         Record.__init__(self, interface=interface, name=name, func=func)
 
+    def __call__(self, *args, **kwargs):
+        return self.func(*args, **kwargs)
+
 
 def register_backend(interface, name, func):
     _backend_mapping.setdefault(interface, {})
-    assert name not in _backend_mapping[interface]
     _backend_mapping[interface][name] = func
 
 
@@ -24,15 +27,15 @@ def backend(interface=None, name='default'):
             # Allow order independence of the generator decorators
             # and the backend decorator by delaying the registration
             func = FuncProxy(interface, name, func)
-        else:
-            register_backend(interface, name, func)
+
+        register_backend(interface, name, func)
 
         return func
 
     return _dec
 
 
-def get_backend(interface=None, selector=None, **kwargs):
+def get_backend(interface=None, selector=option_switch("sumfact"), **kwargs):
     assert interface and selector
 
     select = selector(**kwargs)
diff --git a/python/dune/perftool/options.py b/python/dune/perftool/options.py
index 60f66248d2dee8d521f04cfa55acd3337f70454a..a4c2e21070b45cbe6d3d6273744fb940181399e1 100644
--- a/python/dune/perftool/options.py
+++ b/python/dune/perftool/options.py
@@ -111,3 +111,12 @@ def get_option(key, default=None):
         init_option_dict()
 
         return _option_dict.get(key, default)
+
+
+def option_switch(opt):
+    def _switch():
+        if get_option(opt):
+            return opt
+        else:
+            return "default"
+    return _switch
\ No newline at end of file