diff --git a/README.md b/README.md
index d83249845cf63e5623acb8ff1173f506ca65d761..cb504f1334d318258487914b890c3ee9ee382374 100644
--- a/README.md
+++ b/README.md
@@ -41,8 +41,8 @@ git clone https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-meta-info.git
 Finally download and install the parser:
 
 ```sh
-git clone https://gitlab.mpcdf.mpg.de/nomad-lab/parser-cp2k.git
-cd parser-cp2k
+git clone https://gitlab.mpcdf.mpg.de/nomad-lab/parser-cpmd.git
+cd parser-cpmd
 pip install -e .
 ```
 
diff --git a/parser/parser-cpmd/cpmdparser/parser.py b/parser/parser-cpmd/cpmdparser/parser.py
index 55f61725a2315a6ade42c8a4a4e56e0931259f96..41f848f7bb3cb30be71994bf708133231561284e 100644
--- a/parser/parser-cpmd/cpmdparser/parser.py
+++ b/parser/parser-cpmd/cpmdparser/parser.py
@@ -125,4 +125,4 @@ class CPMDParser(ParserInterface):
         except AttributeError:
             logger.exception("A parser class '{}' could not be found in the module '[]'.".format(run_type.class_name, parser_module))
             raise
-        self.main_parser = parser_class(self.parser_context.main_file, self.parser_context)
+        self.main_parser = parser_class(self.parser_context)
diff --git a/parser/parser-cpmd/cpmdparser/versions/cpmd41/commonparser.py b/parser/parser-cpmd/cpmdparser/versions/cpmd41/commonparser.py
index 861480ec77bfafb5c8cebdd39c8feef43b0c0857..fa236cad51a07f969435e6d8495332c6b343d443 100644
--- a/parser/parser-cpmd/cpmdparser/versions/cpmd41/commonparser.py
+++ b/parser/parser-cpmd/cpmdparser/versions/cpmd41/commonparser.py
@@ -261,8 +261,8 @@ class CPMDCommonParser(CommonParser):
         input_filename = section.get_latest_value("x_cpmd_input_filename")
         input_filepath = self.file_service.set_file_id(input_filename, "input")
         if input_filepath is not None:
-            input_parser = CPMDInputParser(input_filepath, self.parser_context)
-            input_parser.parse()
+            input_parser = CPMDInputParser(self.parser_context)
+            input_parser.parse(input_filepath)
         else:
             logger.warning("The input file for the calculation could not be found.")
 
diff --git a/parser/parser-cpmd/cpmdparser/versions/cpmd41/geooptparser.py b/parser/parser-cpmd/cpmdparser/versions/cpmd41/geooptparser.py
index 254d2ca31d93b3aaed95b19c9583da154444b7e7..10fbf41df043ccf99ed38af85f6a01082d78a35f 100644
--- a/parser/parser-cpmd/cpmdparser/versions/cpmd41/geooptparser.py
+++ b/parser/parser-cpmd/cpmdparser/versions/cpmd41/geooptparser.py
@@ -12,10 +12,10 @@ class CPMDGeoOptParser(MainHierarchicalParser):
     """The main parser class that is called for all run types. Parses the CPMD
     output file.
     """
-    def __init__(self, file_path, parser_context):
+    def __init__(self, parser_context):
         """
         """
-        super(CPMDGeoOptParser, self).__init__(file_path, parser_context)
+        super(CPMDGeoOptParser, self).__init__(parser_context)
         self.setup_common_matcher(CPMDCommonParser(parser_context))
         self.n_frames = 0
         self.sampling_method_gid = None
diff --git a/parser/parser-cpmd/cpmdparser/versions/cpmd41/inputparser.py b/parser/parser-cpmd/cpmdparser/versions/cpmd41/inputparser.py
index cd4d73aac753d78d34842e642ba3f45eac04b807..bb2d42681bb002d0caffadb0d4a24d34871aed0d 100644
--- a/parser/parser-cpmd/cpmdparser/versions/cpmd41/inputparser.py
+++ b/parser/parser-cpmd/cpmdparser/versions/cpmd41/inputparser.py
@@ -10,19 +10,19 @@ logger = logging.getLogger("nomad")
 class CPMDInputParser(AbstractBaseParser):
     """Parses the CPMD input file.
     """
-    def __init__(self, file_path, parser_context):
+    def __init__(self, parser_context):
         """
         """
-        super(CPMDInputParser, self).__init__(file_path, parser_context)
+        super(CPMDInputParser, self).__init__(parser_context)
         self.input_tree = None
 
-    def parse(self):
+    def parse(self, filepath):
         self.setup_input_tree(self.parser_context.version_id)
-        self.collect_input()
+        self.collect_input(filepath)
         self.analyze_input()
         self.fill_metadata()
 
-    def collect_input(self):
+    def collect_input(self, filepath):
         """This function will first go through the input file and gather the
         information to the input tree.
 
@@ -33,7 +33,7 @@ class CPMDInputParser(AbstractBaseParser):
         # The input file should be relatively small so we are better off
         # loading it into memory all at once.
         lines = None
-        with open(self.file_path, "r") as fin:
+        with open(filepath, "r") as fin:
             lines = fin.readlines()
 
         # Read the input line by line
diff --git a/parser/parser-cpmd/cpmdparser/versions/cpmd41/mdparser.py b/parser/parser-cpmd/cpmdparser/versions/cpmd41/mdparser.py
index b08a13c216ab0248dd336fa35476f6842aaa1c07..9280786a9001ae111f8ee23d740422cd94f1ff8b 100644
--- a/parser/parser-cpmd/cpmdparser/versions/cpmd41/mdparser.py
+++ b/parser/parser-cpmd/cpmdparser/versions/cpmd41/mdparser.py
@@ -14,10 +14,10 @@ class CPMDMDParser(MainHierarchicalParser):
     """The main parser class that is called for all run types. Parses the CPMD
     output file.
     """
-    def __init__(self, file_path, parser_context):
+    def __init__(self, parser_context):
         """
         """
-        super(CPMDMDParser, self).__init__(file_path, parser_context)
+        super(CPMDMDParser, self).__init__(parser_context)
         self.setup_common_matcher(CPMDCommonParser(parser_context))
         self.sampling_method_gid = None
         self.frame_refs = []
diff --git a/parser/parser-cpmd/cpmdparser/versions/cpmd41/singlepointparser.py b/parser/parser-cpmd/cpmdparser/versions/cpmd41/singlepointparser.py
index 1b4806f7eea505f0c2f61a165d9929dce441576d..279ad999744093a8e13699e7764f95665eebe8d9 100644
--- a/parser/parser-cpmd/cpmdparser/versions/cpmd41/singlepointparser.py
+++ b/parser/parser-cpmd/cpmdparser/versions/cpmd41/singlepointparser.py
@@ -1,7 +1,6 @@
 from __future__ import absolute_import
 from nomadcore.simple_parser import SimpleMatcher as SM
 from nomadcore.baseclasses import MainHierarchicalParser
-# from nomadcore.caching_backend import CachingLevel
 from .commonparser import CPMDCommonParser
 import re
 import logging
@@ -9,15 +8,14 @@ import numpy as np
 LOGGER = logging.getLogger("nomad")
 
 
-#===============================================================================
 class CPMDSinglePointParser(MainHierarchicalParser):
     """The main parser class that is called for all run types. Parses the CPMD
     output file.
     """
-    def __init__(self, file_path, parser_context):
+    def __init__(self, parser_context):
         """
         """
-        super(CPMDSinglePointParser, self).__init__(file_path, parser_context)
+        super(CPMDSinglePointParser, self).__init__(parser_context)
         self.setup_common_matcher(CPMDCommonParser(parser_context))
         self.n_scf_iterations = 0