diff --git a/python/dune/perftool/cgen/clazz.py b/python/dune/perftool/cgen/clazz.py
index 0fa4b5b0aba76343d7bf744cf7b19dd319bdf772..fa00c0a126d16b241278ec15f437b3f32f93049e 100644
--- a/python/dune/perftool/cgen/clazz.py
+++ b/python/dune/perftool/cgen/clazz.py
@@ -36,13 +36,21 @@ class ClassMember(Generable):
         self.member = member
         self.access = access
 
-        assert isinstance(member, Generable)
+        # We only consider a Generable or a list thereof as member
+        from collections import Iterable
+        assert isinstance(member, Generable) or (isinstance(member, Iterable) and all(isinstance(m, Generable) for m in member))
 
     def generate(self):
         yield "\n\n"
         yield "{}:\n".format(access_modifier_string(self.access))
-        for line in self.member.generate():
-            yield line + '\n'
+
+        if isinstance(self.member, Generable):
+            for line in self.member.generate():
+                yield line + '\n'
+        else:
+            for generable in self.member:
+                for line in generable.generate():
+                    yield line + '\n'
 
 
 class Constructor(Generable):
diff --git a/python/dune/perftool/pdelab/localoperator.py b/python/dune/perftool/pdelab/localoperator.py
index bb2cd648a25fbbf45bca1edde7ef40e1cfb50350..f56a7159f3715f00a60aca520a8a3d6f1bf69307 100644
--- a/python/dune/perftool/pdelab/localoperator.py
+++ b/python/dune/perftool/pdelab/localoperator.py
@@ -118,8 +118,8 @@ def generate_kernel(integrand=None, measure=None):
 class AssemblyMethod(ClassMember):
     def __init__(self, signature, kernel):
         from loopy import generate_code
-        from cgen import LiteralLines
-        content = LiteralLines('\n' + '\n'.join(signature) + '\n' + generate_code(kernel)[0])
+        from cgen import LiteralLines, Block
+        content = [LiteralLines('\n' + '\n'.join(signature)), Block([LiteralLines('\n' + generate_code(kernel)[0])])]
         ClassMember.__init__(self, content)