diff --git a/hog/ast.py b/hog/ast.py
index 3f1f97a86dd6e55713267f2f57c8f2afd3b0e8ce..aa03b57f0275742a433c2bae387cde18161bd4f5 100644
--- a/hog/ast.py
+++ b/hog/ast.py
@@ -36,7 +36,7 @@ class Operations:
 
     def to_table(self) -> str:
         d = vars(self)
-        return tabulate.tabulate([d.values()], headers=d.keys())  # type: ignore
+        return tabulate.tabulate([d.values()], headers=list(d.keys()))
 
 
 def count_operations(
diff --git a/hog/external_functions.py b/hog/external_functions.py
index 0180c9cc6ef912980de4ded5eebcc15989212aab..62da4b055fed35625300489ce6486b76eab021ab 100644
--- a/hog/external_functions.py
+++ b/hog/external_functions.py
@@ -21,10 +21,12 @@ class BlendingFTriangle(MultiAssignment):
     def function_name(self):
         return "Blending_F_Triangle"
 
-    def num_input_args(self):
+    @classmethod
+    def num_input_args(cls):
         return 2
 
-    def num_output_args(self):
+    @classmethod
+    def num_output_args(cls):
         return 2
 
     def implementation(self):
@@ -39,10 +41,12 @@ class BlendingFEmbeddedTriangle(MultiAssignment):
     def function_name(self):
         return "Blending_F_EmbeddedTriangle"
 
-    def num_input_args(self):
+    @classmethod
+    def num_input_args(cls):
         return 3
 
-    def num_output_args(self):
+    @classmethod
+    def num_output_args(cls):
         return 3
 
     def implementation(self):
@@ -58,10 +62,12 @@ class BlendingFTetrahedron(MultiAssignment):
     def function_name(self):
         return "Blending_F_Tetrahedron"
 
-    def num_input_args(self):
+    @classmethod
+    def num_input_args(cls):
         return 3
 
-    def num_output_args(self):
+    @classmethod
+    def num_output_args(cls):
         return 3
 
     def implementation(self):