diff --git a/parser/parser-dftb+/parser_dftb_plus.py b/parser/parser-dftb+/parser_dftb_plus.py
index 5bb7dc307f7128cb609a1e37c4fc104abe6aae01..8f25c71be638a17b0d46415b2c4a4d20fcefdcd0 100644
--- a/parser/parser-dftb+/parser_dftb_plus.py
+++ b/parser/parser-dftb+/parser_dftb_plus.py
@@ -1,7 +1,32 @@
 import setup_paths
+from builtins import object
 from nomadcore.simple_parser import SimpleMatcher as SM, mainFunction
 from nomadcore.local_meta_info import loadJsonFile, InfoKindEl
 import os, sys, json
+import numpy as np
+
+class dftb_plusContext(object):
+    """ context for dftb_plus parser """
+    
+    def __init__(self):
+        self.parser = None
+
+    def initialize_values(self):
+        """allows to reset values if the same superContext is used to parse different files"""
+        pass
+
+    def startedParsing(self, path, parser):
+        """called when parsing starts"""
+        self.parser = parser
+        # allows to reset values if the same superContext is used to parse different files
+        self.initialize_values()
+
+    def onClose_section_molecule_type(self, backend, gIndex, section):
+        
+        atom_charge = section['x_dftbp_charge']
+        if atom_charge is not None:
+           backend.addArrayValues('atom_in_molecule_charge', np.asarray(atom_charge))
+
 
 # description of the input
 mainFileDescription = SM(
@@ -38,7 +63,7 @@ mainFileDescription = SM(
                   sections   = ['section_molecule_type'],
                   subMatchers = [
                       SM(r"\s*Atom\s*Net charge"),
-                      SM(r"\s*(?P<atom>\d+)\s*(?P<atom_in_molecule_charge>[+-]?\d+\.\d+)\s*", repeats = True),
+                      SM(r"\s*(?P<atom>\d+)\s*(?P<x_dftbp_charge>[+-]?\d+\.\d+)\s*", repeats = True),
                                  #SM(r"\s*")
                   ],
              ),
@@ -106,4 +131,5 @@ metaInfoPath = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__f
 metaInfoEnv, warnings = loadJsonFile(filePath = metaInfoPath, dependencyLoader = None, extraArgsHandling = InfoKindEl.ADD_EXTRA_ARGS, uri = None)
 
 if __name__ == "__main__":
-    mainFunction(mainFileDescription, metaInfoEnv, parserInfo)
+    superContext = dftb_plusContext()
+    mainFunction(mainFileDescription, metaInfoEnv, parserInfo, superContext = superContext)