diff --git a/src/caosadvancedtools/cfood.py b/src/caosadvancedtools/cfood.py
index 149fea52401e54ed6b3dd448c992c7bbc7a5fd91..6c2a1e26c7f28e7db31c36927c0998ccf44819e9 100644
--- a/src/caosadvancedtools/cfood.py
+++ b/src/caosadvancedtools/cfood.py
@@ -10,7 +10,7 @@ from datetime import datetime
 from caosdb.exceptions import TransactionError
 
 
-class CFood(object):
+class AbstractCFood(object):
     def __init__(self, pattern):
         self.pattern = re.compile(pattern)
 
@@ -30,19 +30,10 @@ class CFood(object):
         self.update_identifiables(entities, filename, match)
 
     def create_identifiables(self, filename, match):
-        entities = {}
-        entities["exp"] = db.Record()
-        #import IPython
-        #IPython.embed()
-        entities["exp"].add_parent(name="Experiment")
-        entities["exp"].add_property(name="species", value=match.group)
-
-        return entities
+        raise NotImplementedError()
 
     def update_identifiables(self, entities, filename, match):
-        entities["exp"].add_property(name="date",
-                                     value=datetime.today().isoformat())
-        db.Container().extend(entities.values).update()
+        raise NotImplementedError()
 
     @staticmethod
     def find_existing(entity):
@@ -57,6 +48,22 @@ class CFood(object):
             r = None
         return r
 
+class ExampleCFood(AbstractCFood):
+    def create_identifiables(self, filename, match):
+        entities = {}
+        entities["exp"] = db.Record()
+        #import IPython
+        #IPython.embed()
+        entities["exp"].add_parent(name="Experiment")
+        entities["exp"].add_property(name="species", value=match.group)
+
+        return entities
+
+    def update_identifiables(self, entities, filename, match):
+        entities["exp"].add_property(name="date",
+                                     value=datetime.today().isoformat())
+        db.Container().extend(entities.values).update()
+
 def get_parser():
     parser = argparse.ArgumentParser(description=__doc__,
                                      formatter_class=RawTextHelpFormatter)
@@ -67,4 +74,3 @@ def get_parser():
 if __name__ == "__main__":
     parser = get_parser()
     args = parser.parse_args()
-
diff --git a/unittests/test_cfood.py b/unittests/test_cfood.py
index 4a4aa51f14a2e470d26e92f1ec227c95250003af..48b1249f06073e18ef9fbda6a8f7ab7fac768e93 100644
--- a/unittests/test_cfood.py
+++ b/unittests/test_cfood.py
@@ -2,8 +2,7 @@ import unittest
 from tempfile import NamedTemporaryFile
 
 import caosdb as db
-from caosadvancedtools.cfood import CFood
-
+from caosadvancedtools.cfood import AbstractCFood
 
 
 class CFoodTest(unittest.TestCase):
@@ -11,8 +10,18 @@ class CFoodTest(unittest.TestCase):
         self.exp = db.Record()
         self.exp.add_parent(name="Experiment")
         self.exp.add_property(name="species", value="microunicorn")
-        pass
 
     def test_check_existence(self):
-        assert CFood.find_existing(self.exp) is None
-        pass
+        assert AbstractCFood.find_existing(self.exp) is None
+
+class CFoodTestExist(CFoodTest):
+    def setUp(self):
+        super().setUp()
+        self.exp.insert()
+
+    def test_check_existence(self):
+        res = AbstractCFood.find_existing(self.exp)
+        assert  res.id == self.exp.id
+
+    def tearDown(self):
+        self.exp.delete()