diff --git a/src/caosadvancedtools/cfood.py b/src/caosadvancedtools/cfood.py
index 51a24ab327e03d4be1caa86dac48e96afd65fac9..cf66586316cbe3d70bf5a73b7a6fc4df918dccbb 100644
--- a/src/caosadvancedtools/cfood.py
+++ b/src/caosadvancedtools/cfood.py
@@ -94,7 +94,7 @@ class AbstractCFood(object):
         raise NotImplementedError()
 
     @classmethod
-    def cook(cls, crawled_file):
+    def cook(cls, crawled_file, **kwargs):
         """ possibly checks for existing CFoods whether the match should be
         added or whether a new CFood instance needs to be returned
 
@@ -110,7 +110,7 @@ class AbstractCFood(object):
         None: otherwise
         """
 
-        return cls()
+        return cls(crawled_file, **kwargs)
 
     @classmethod
     def match(cls, string):
@@ -426,8 +426,8 @@ class CMeal(object):
             suitable = True
 
             for group in cls.matching_groups:
-                if (group not in match or
-                        group not in cfood.match or
+                if (group not in match.groupdict() or
+                        group not in cfood.match.groupdict()or
                         match.group(group) == cfood.match.group(group)):
                     suitable = False
 
diff --git a/src/caosadvancedtools/crawler.py b/src/caosadvancedtools/crawler.py
index 0954d257b84b11bbfeab48cf495a38dc9e0ca1fd..d0c58a2fd5b62973dd8ff3b9132ed142f33dc3dd 100644
--- a/src/caosadvancedtools/crawler.py
+++ b/src/caosadvancedtools/crawler.py
@@ -102,9 +102,9 @@ class Crawler(object):
                             Cfood.__class__.__name__,
                             crawled_file.path))
                     try:
-                        cfoods.append(Cfood(crawled_file, access=self.access,
-                                            verbosity=self.verbosity,
-                                            guard=self.guard))
+                        cfoods.append(Cfood.cook(crawled_file, access=self.access,
+                                                 verbosity=self.verbosity,
+                                                 guard=self.guard))
                     except Exception as e:
                         traceback.print_exc()
                         print(e)