diff --git a/parser/.DS_Store b/parser/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..89eb9969aee1ee3a5473b17f3b7ba299bca52d8c
Binary files /dev/null and b/parser/.DS_Store differ
diff --git a/parser/parser-dftb+/parser_dftb+.py b/parser/parser-dftb+/parser_dftb+.py
new file mode 100644
index 0000000000000000000000000000000000000000..0795d0d8c7b9b829e9018c20ed592076330793cd
--- /dev/null
+++ b/parser/parser-dftb+/parser_dftb+.py
@@ -0,0 +1,34 @@
+import setup_paths
+from nomadcore.simple_parser import SimpleMatcher, mainFunction
+from nomadcore.local_meta_info import loadJsonFile, InfoKindEl
+import os, sys, json
+
+# description of the input
+mainFileDescription = SimpleMatcher(name = 'root',
+              weak = True,
+              startReStr = "",
+              subMatchers = [
+  SimpleMatcher(name = 'newRun',
+                startReStr = r"\s*# SampleParser #\s*",
+                repeats = True,
+                required = True,
+                forwardMatch = True,
+                sections   = ['section_run'],
+                subMatchers = [
+    SimpleMatcher(name = 'header',
+                  startReStr = r"\s*# SampleParser #\s*")
+                ])
+              ])
+
+# loading metadata from nomad-meta-info/meta_info/nomad_meta_info/fhi_aims.nomadmetainfo.json
+
+parserInfo = {
+  "name": "sample_parser",
+  "version": "1.0"
+}
+
+metaInfoPath = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)),"../../../../nomad-meta-info/meta_info/nomad_meta_info/sample_parser.nomadmetainfo.json"))
+metaInfoEnv, warnings = loadJsonFile(filePath = metaInfoPath, dependencyLoader = None, extraArgsHandling = InfoKindEl.ADD_EXTRA_ARGS, uri = None)
+
+if __name__ == "__main__":
+    mainFunction(mainFileDescription, metaInfoEnv, parserInfo)
diff --git a/parser/parser-dftb+/setup_paths.py b/parser/parser-dftb+/setup_paths.py
new file mode 100644
index 0000000000000000000000000000000000000000..e0a0fb009256a0d4056e81c12e82d15bfd3ea7c4
--- /dev/null
+++ b/parser/parser-dftb+/setup_paths.py
@@ -0,0 +1,6 @@
+import sys, os, os.path
+baseDir = os.path.dirname(os.path.abspath(__file__))
+commonDir = os.path.normpath(os.path.join(baseDir,"../../../../python-common/common/python"))
+
+if not commonDir in sys.path:
+    sys.path.insert(0, commonDir)
diff --git a/test/.DS_Store b/test/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..65267a919194138c52ad60b7390d4d1bbf7c55b0
Binary files /dev/null and b/test/.DS_Store differ
diff --git a/test/examples/README.md b/test/examples/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..aee68a4b42fbe40eef7063285ab0f6a905d4d89c
--- /dev/null
+++ b/test/examples/README.md
@@ -0,0 +1 @@
+sample files to test the parser