diff --git a/.gitignore b/.gitignore
index 54ab9ec7f635ddd545b88f252592ae2addf041aa..8bd965d0179ba376043932ae0849a63065c0f353 100644
--- a/.gitignore
+++ b/.gitignore
@@ -55,3 +55,5 @@ TAGS
 
 lib/
 env/
+
+*.egg-info/*
\ No newline at end of file
diff --git a/parser/parser-fplo/FploCommon.py b/fploparser/FploCommon.py
similarity index 86%
rename from parser/parser-fplo/FploCommon.py
rename to fploparser/FploCommon.py
index 69d7f9f788c197be1bfd73ef0f4f3207e450ea52..facc4ac6f8f9053eebaf9a5f2d77942d7c5b5f51 100644
--- a/parser/parser-fplo/FploCommon.py
+++ b/fploparser/FploCommon.py
@@ -12,7 +12,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import setup_paths
 import calendar
 import json
 import os
@@ -53,13 +52,13 @@ def re_vec(name, units='', split="\s+"):
 
 # loading metadata from
 # nomad-meta-info/meta_info/nomad_meta_info/fplo.nomadmetainfo.json
-META_INFO = loadJsonFile(
-    filePath=os.path.normpath(os.path.join(
-        os.path.dirname(os.path.abspath(__file__)),
-        "../../../../nomad-meta-info/meta_info/nomad_meta_info/fplo.nomadmetainfo.json")),
-    dependencyLoader=None,
-    extraArgsHandling=InfoKindEl.ADD_EXTRA_ARGS,
-    uri=None)[0]
+# META_INFO = loadJsonFile(
+#     filePath=os.path.normpath(os.path.join(
+#         os.path.dirname(os.path.abspath(__file__)),
+#         "../../../../nomad-meta-info/meta_info/nomad_meta_info/fplo.nomadmetainfo.json")),
+#     dependencyLoader=None,
+#     extraArgsHandling=InfoKindEl.ADD_EXTRA_ARGS,
+#     uri=None)[0]
 
 PARSER_INFO_DEFAULT = {
   "name": "parser_fplo",
diff --git a/parser/parser-fplo/FploInputParser.py b/fploparser/FploInputParser.py
similarity index 99%
rename from parser/parser-fplo/FploInputParser.py
rename to fploparser/FploInputParser.py
index 8504d4b4e09d551d72105145b0a57dd1e516f72d..0d27176c74a17c4fc86ea6b6d616964d838c0414 100755
--- a/parser/parser-fplo/FploInputParser.py
+++ b/fploparser/FploInputParser.py
@@ -25,15 +25,13 @@ This module is implemented as follows:
 TODO:
 4) transform AST to metaInfo backend calls
 """
-import setup_paths
 import re
 import sys
 import os
 import logging
 import json
-import FploCommon as FploC
+from . import FploCommon as FploC
 from nomadcore.match_highlighter import ANSI
-from nomadcore.parser_backend import JsonParseEventsWriterBackend
 from nomadcore.caching_backend import CachingLevel, ActiveBackend
 
 LOGGER = logging.getLogger(__name__)
diff --git a/fploparser/__init__.py b/fploparser/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..6ae5e528d697a2330c7e0ffc9b2124abbbc33c2b
--- /dev/null
+++ b/fploparser/__init__.py
@@ -0,0 +1 @@
+from .parser_fplo_14 import FploParser
\ No newline at end of file
diff --git a/fploparser/metainfo/__init__.py b/fploparser/metainfo/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e77fd93d35a01cdce802746ff98aef70445b4467
--- /dev/null
+++ b/fploparser/metainfo/__init__.py
@@ -0,0 +1,17 @@
+import sys
+from nomad.metainfo import Environment
+from nomad.metainfo.legacy import LegacyMetainfoEnvironment
+import fploparser.metainfo.fplo
+import nomad.datamodel.metainfo.common
+import nomad.datamodel.metainfo.public
+import nomad.datamodel.metainfo.general
+import fploparser.metainfo.fplo_temporaries
+import fploparser.metainfo.fplo_input_autogenerated
+
+m_env = LegacyMetainfoEnvironment()
+m_env.m_add_sub_section(Environment.packages, sys.modules['fploparser.metainfo.fplo'].m_package)  # type: ignore
+m_env.m_add_sub_section(Environment.packages, sys.modules['nomad.datamodel.metainfo.common'].m_package)  # type: ignore
+m_env.m_add_sub_section(Environment.packages, sys.modules['nomad.datamodel.metainfo.public'].m_package)  # type: ignore
+m_env.m_add_sub_section(Environment.packages, sys.modules['nomad.datamodel.metainfo.general'].m_package)  # type: ignore
+m_env.m_add_sub_section(Environment.packages, sys.modules['fploparser.metainfo.fplo_temporaries'].m_package)  # type: ignore
+m_env.m_add_sub_section(Environment.packages, sys.modules['fploparser.metainfo.fplo_input_autogenerated'].m_package)  # type: ignore
diff --git a/fploparser/metainfo/fplo.py b/fploparser/metainfo/fplo.py
new file mode 100644
index 0000000000000000000000000000000000000000..8c602922ae23777330f1a587bfc6fb94a335fa46
--- /dev/null
+++ b/fploparser/metainfo/fplo.py
@@ -0,0 +1,182 @@
+import numpy as np            # pylint: disable=unused-import
+import typing                 # pylint: disable=unused-import
+from nomad.metainfo import (  # pylint: disable=unused-import
+    MSection, MCategory, Category, Package, Quantity, Section, SubSection, SectionProxy,
+    Reference
+)
+from nomad.metainfo.legacy import LegacyDefinition
+
+from nomad.datamodel.metainfo import public
+from nomad.datamodel.metainfo import common
+
+m_package = Package(
+    name='fplo_nomadmetainfo_json',
+    description='None',
+    a_legacy=LegacyDefinition(name='fplo.nomadmetainfo.json'))
+
+
+class section_run(public.section_run):
+
+    m_def = Section(validate=False, extends_base_section=True, a_legacy=LegacyDefinition(name='section_run'))
+
+    x_fplo_program_version_sub = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO sub version
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_program_version_sub'))
+
+    x_fplo_program_compilation_options = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO compilation options
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_program_compilation_options'))
+
+
+class section_system(public.section_system):
+
+    m_def = Section(validate=False, extends_base_section=True, a_legacy=LegacyDefinition(name='section_system'))
+
+    x_fplo_reciprocal_cell = Quantity(
+        type=np.dtype(np.float64),
+        shape=[3, 3],
+        unit='1 / meter',
+        description='''
+        Reciprocal Lattice vectors (in Cartesian coordinates). The first index runs over
+        the $x,y,z$ Cartesian coordinates, and the second index runs over the 3 lattice
+        vectors.
+        ''',
+        categories=[public.configuration_core],
+        a_legacy=LegacyDefinition(name='x_fplo_reciprocal_cell'))
+
+    x_fplo_atom_idx = Quantity(
+        type=np.dtype(np.int32),
+        shape=['number_of_atoms'],
+        description='''
+        FPLO-internal index for each atom
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_atom_idx'))
+
+    x_fplo_atom_wyckoff_idx = Quantity(
+        type=np.dtype(np.int32),
+        shape=['number_of_atoms'],
+        description='''
+        Wyckoff position index of each atom
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_atom_wyckoff_idx'))
+
+    x_fplo_atom_cpa_block = Quantity(
+        type=np.dtype(np.int32),
+        shape=['number_of_atoms'],
+        description='''
+        CPA block of each atom
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_atom_cpa_block'))
+
+    x_fplo_structure_type = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO structure type: Crystal/Molecule
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_structure_type'))
+
+
+class section_method(public.section_method):
+
+    m_def = Section(validate=False, extends_base_section=True, a_legacy=LegacyDefinition(name='section_method'))
+
+    x_fplo_xc_functional_number = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO number xc functional
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_xc_functional_number'))
+
+    x_fplo_xc_functional = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO notation of xc functional
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_xc_functional'))
+
+    x_fplo_dft_plus_u_projection_type = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO notation of DFT+U projection
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_dft_plus_u_projection_type'))
+
+    x_fplo_dft_plus_u_functional = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO notation of DFT+U functional
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_dft_plus_u_functional'))
+
+
+class section_dft_plus_u_orbital(common.section_dft_plus_u_orbital):
+
+    m_def = Section(validate=False, extends_base_section=True, a_legacy=LegacyDefinition(name='section_dft_plus_u_orbital'))
+
+    x_fplo_dft_plus_u_orbital_element = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO: Atom/Orbital dependent DFT+U property: element
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_dft_plus_u_orbital_element'))
+
+    x_fplo_dft_plus_u_orbital_species = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO: Atom/Orbital dependent DFT+U property: species index
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_dft_plus_u_orbital_species'))
+
+    x_fplo_dft_plus_u_orbital_F0 = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO: Atom/Orbital dependent DFT+U property: value F0
+        ''',
+        categories=[public.energy_value],
+        a_legacy=LegacyDefinition(name='x_fplo_dft_plus_u_orbital_F0'))
+
+    x_fplo_dft_plus_u_orbital_F2 = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO: Atom/Orbital dependent DFT+U property: value F2
+        ''',
+        categories=[public.energy_value],
+        a_legacy=LegacyDefinition(name='x_fplo_dft_plus_u_orbital_F2'))
+
+    x_fplo_dft_plus_u_orbital_F4 = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO: Atom/Orbital dependent DFT+U property: value F4
+        ''',
+        categories=[public.energy_value],
+        a_legacy=LegacyDefinition(name='x_fplo_dft_plus_u_orbital_F4'))
+
+    x_fplo_dft_plus_u_orbital_F6 = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO: Atom/Orbital dependent DFT+U property: value F6
+        ''',
+        categories=[public.energy_value],
+        a_legacy=LegacyDefinition(name='x_fplo_dft_plus_u_orbital_F6'))
+
+
+m_package.__init_metainfo__()
diff --git a/fploparser/metainfo/fplo_input_autogenerated.py b/fploparser/metainfo/fplo_input_autogenerated.py
new file mode 100644
index 0000000000000000000000000000000000000000..7a3415b00650622fd3c68fa532c37e0552d54169
--- /dev/null
+++ b/fploparser/metainfo/fplo_input_autogenerated.py
@@ -0,0 +1,2772 @@
+import numpy as np            # pylint: disable=unused-import
+import typing                 # pylint: disable=unused-import
+from nomad.metainfo import (  # pylint: disable=unused-import
+    MSection, MCategory, Category, Package, Quantity, Section, SubSection, SectionProxy,
+    Reference
+)
+from nomad.metainfo.legacy import LegacyDefinition
+
+from nomad.datamodel.metainfo import public
+
+m_package = Package(
+    name='fplo_input_autogenerated_nomadmetainfo_json',
+    description='None',
+    a_legacy=LegacyDefinition(name='fplo.input.autogenerated.nomadmetainfo.json'))
+
+
+class x_fplo_in(MSection):
+    '''
+    FPLO input metainfo, autogenerated
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in'))
+
+    x_fplo_in_header = SubSection(
+        sub_section=SectionProxy('x_fplo_in_header'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.header'))
+
+    x_fplo_in_structure_information = SubSection(
+        sub_section=SectionProxy('x_fplo_in_structure_information'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_information'))
+
+    x_fplo_in_structure_dependend = SubSection(
+        sub_section=SectionProxy('x_fplo_in_structure_dependend'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_dependend'))
+
+    x_fplo_in_mesh = SubSection(
+        sub_section=SectionProxy('x_fplo_in_mesh'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.mesh'))
+
+    x_fplo_in_brillouin = SubSection(
+        sub_section=SectionProxy('x_fplo_in_brillouin'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.brillouin'))
+
+    x_fplo_in_bandstructure_plot = SubSection(
+        sub_section=SectionProxy('x_fplo_in_bandstructure_plot'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot'))
+
+    x_fplo_in_iteration_control = SubSection(
+        sub_section=SectionProxy('x_fplo_in_iteration_control'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.iteration_control'))
+
+    x_fplo_in_forces = SubSection(
+        sub_section=SectionProxy('x_fplo_in_forces'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.forces'))
+
+    x_fplo_in_options = SubSection(
+        sub_section=SectionProxy('x_fplo_in_options'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.options'))
+
+    x_fplo_in_cpa = SubSection(
+        sub_section=SectionProxy('x_fplo_in_cpa'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.cpa'))
+
+    x_fplo_in_numerics = SubSection(
+        sub_section=SectionProxy('x_fplo_in_numerics'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.numerics'))
+
+    x_fplo_in_LSDA_U = SubSection(
+        sub_section=SectionProxy('x_fplo_in_LSDA_U'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.LSDA_U'))
+
+    x_fplo_in_OPC = SubSection(
+        sub_section=SectionProxy('x_fplo_in_OPC'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.OPC'))
+
+    x_fplo_in_Advanced_output = SubSection(
+        sub_section=SectionProxy('x_fplo_in_Advanced_output'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output'))
+
+
+class x_fplo_in_header(MSection):
+    '''
+    FPLO input section x_fplo_in.header
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.header'))
+
+    x_fplo_in_header_compound = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.header.compound
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.header.compound'))
+
+    x_fplo_in_header_version = SubSection(
+        sub_section=SectionProxy('x_fplo_in_header_version'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.header.version'))
+
+    x_fplo_in_header_last_changes = SubSection(
+        sub_section=SectionProxy('x_fplo_in_header_last_changes'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.header.last_changes'))
+
+
+class x_fplo_in_header_version(MSection):
+    '''
+    FPLO input x_fplo_in.header.version
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.header.version'))
+
+    x_fplo_in_header_version_mainversion = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.header.version.mainversion
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.header.version.mainversion'))
+
+    x_fplo_in_header_version_subversion = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.header.version.subversion
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.header.version.subversion'))
+
+
+class x_fplo_in_header_last_changes(MSection):
+    '''
+    FPLO input x_fplo_in.header.last_changes
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.header.last_changes'))
+
+    x_fplo_in_header_last_changes_hostname = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.header.last_changes.hostname
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.header.last_changes.hostname'))
+
+    x_fplo_in_header_last_changes_date = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.header.last_changes.date
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.header.last_changes.date'))
+
+    x_fplo_in_header_last_changes_by = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.header.last_changes.by
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.header.last_changes.by'))
+
+
+class x_fplo_in_structure_information(MSection):
+    '''
+    FPLO input section x_fplo_in.structure_information
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.structure_information'))
+
+    x_fplo_in_structure_information_subgroupgenerators = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_information.subgroupgenerators
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_information.subgroupgenerators'))
+
+    x_fplo_in_structure_information_lattice_constants = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_information.lattice_constants
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_information.lattice_constants'))
+
+    x_fplo_in_structure_information_axis_angles = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_information.axis_angles
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_information.axis_angles'))
+
+    x_fplo_in_structure_information_max_L = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_information.max_L
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_information.max_L'))
+
+    x_fplo_in_structure_information_nsort = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_information.nsort
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_information.nsort'))
+
+    x_fplo_in_structure_information_structure_type = SubSection(
+        sub_section=SectionProxy('x_fplo_in_structure_information_structure_type'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_information.structure_type'))
+
+    x_fplo_in_structure_information_spacegroup = SubSection(
+        sub_section=SectionProxy('x_fplo_in_structure_information_spacegroup'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_information.spacegroup'))
+
+    x_fplo_in_structure_information_lengthunit = SubSection(
+        sub_section=SectionProxy('x_fplo_in_structure_information_lengthunit'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_information.lengthunit'))
+
+    x_fplo_in_structure_information_wyckoff_positions = SubSection(
+        sub_section=SectionProxy('x_fplo_in_structure_information_wyckoff_positions'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_information.wyckoff_positions'))
+
+
+class x_fplo_in_structure_information_structure_type(MSection):
+    '''
+    FPLO input x_fplo_in.structure_information.structure_type
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.structure_information.structure_type'))
+
+    x_fplo_in_structure_information_structure_type_type = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_information.structure_type.type
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_information.structure_type.type'))
+
+    x_fplo_in_structure_information_structure_type_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_information.structure_type.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_information.structure_type.description'))
+
+
+class x_fplo_in_structure_information_spacegroup(MSection):
+    '''
+    FPLO input x_fplo_in.structure_information.spacegroup
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.structure_information.spacegroup'))
+
+    x_fplo_in_structure_information_spacegroup_number = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_information.spacegroup.number
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_information.spacegroup.number'))
+
+    x_fplo_in_structure_information_spacegroup_symbol = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_information.spacegroup.symbol
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_information.spacegroup.symbol'))
+
+
+class x_fplo_in_structure_information_lengthunit(MSection):
+    '''
+    FPLO input x_fplo_in.structure_information.lengthunit
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.structure_information.lengthunit'))
+
+    x_fplo_in_structure_information_lengthunit_type = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_information.lengthunit.type
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_information.lengthunit.type'))
+
+    x_fplo_in_structure_information_lengthunit_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_information.lengthunit.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_information.lengthunit.description'))
+
+
+class x_fplo_in_structure_information_wyckoff_positions(MSection):
+    '''
+    FPLO input x_fplo_in.structure_information.wyckoff_positions
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.structure_information.wyckoff_positions'))
+
+    x_fplo_in_structure_information_wyckoff_positions_element = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_information.wyckoff_positions.element
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_information.wyckoff_positions.element'))
+
+    x_fplo_in_structure_information_wyckoff_positions_tau = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_information.wyckoff_positions.tau
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_information.wyckoff_positions.tau'))
+
+
+class x_fplo_in_structure_dependend(MSection):
+    '''
+    FPLO input section x_fplo_in.structure_dependend
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.structure_dependend'))
+
+    x_fplo_in_structure_dependend_concentrations = SubSection(
+        sub_section=SectionProxy('x_fplo_in_structure_dependend_concentrations'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_dependend.concentrations'))
+
+    x_fplo_in_structure_dependend_initial_spin_split = SubSection(
+        sub_section=SectionProxy('x_fplo_in_structure_dependend_initial_spin_split'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_dependend.initial_spin_split'))
+
+    x_fplo_in_structure_dependend_core_occupation = SubSection(
+        sub_section=SectionProxy('x_fplo_in_structure_dependend_core_occupation'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_dependend.core_occupation'))
+
+    x_fplo_in_structure_dependend_special_sympoints = SubSection(
+        sub_section=SectionProxy('x_fplo_in_structure_dependend_special_sympoints'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_dependend.special_sympoints'))
+
+
+class x_fplo_in_structure_dependend_concentrations(MSection):
+    '''
+    FPLO input x_fplo_in.structure_dependend.concentrations
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.structure_dependend.concentrations'))
+
+    x_fplo_in_structure_dependend_concentrations_atom = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_dependend.concentrations.atom
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_dependend.concentrations.atom'))
+
+    x_fplo_in_structure_dependend_concentrations_concentration = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_dependend.concentrations.concentration
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_dependend.concentrations.concentration'))
+
+
+class x_fplo_in_structure_dependend_initial_spin_split(MSection):
+    '''
+    FPLO input x_fplo_in.structure_dependend.initial_spin_split
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.structure_dependend.initial_spin_split'))
+
+    x_fplo_in_structure_dependend_initial_spin_split_element = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_dependend.initial_spin_split.element
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_dependend.initial_spin_split.element'))
+
+    x_fplo_in_structure_dependend_initial_spin_split_split = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_dependend.initial_spin_split.split
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_dependend.initial_spin_split.split'))
+
+
+class x_fplo_in_structure_dependend_core_occupation(MSection):
+    '''
+    FPLO input x_fplo_in.structure_dependend.core_occupation
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.structure_dependend.core_occupation'))
+
+    x_fplo_in_structure_dependend_core_occupation_sort = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_dependend.core_occupation.sort
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_dependend.core_occupation.sort'))
+
+    x_fplo_in_structure_dependend_core_occupation_state = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_dependend.core_occupation.state
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_dependend.core_occupation.state'))
+
+    x_fplo_in_structure_dependend_core_occupation_spinup = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_dependend.core_occupation.spinup
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_dependend.core_occupation.spinup'))
+
+    x_fplo_in_structure_dependend_core_occupation_spindn = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_dependend.core_occupation.spindn
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_dependend.core_occupation.spindn'))
+
+
+class x_fplo_in_structure_dependend_special_sympoints(MSection):
+    '''
+    FPLO input x_fplo_in.structure_dependend.special_sympoints
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.structure_dependend.special_sympoints'))
+
+    x_fplo_in_structure_dependend_special_sympoints_label = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_dependend.special_sympoints.label
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_dependend.special_sympoints.label'))
+
+    x_fplo_in_structure_dependend_special_sympoints_kpoint = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.structure_dependend.special_sympoints.kpoint
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.structure_dependend.special_sympoints.kpoint'))
+
+
+class x_fplo_in_mesh(MSection):
+    '''
+    FPLO input section x_fplo_in.mesh
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.mesh'))
+
+    x_fplo_in_mesh_radial_mesh = SubSection(
+        sub_section=SectionProxy('x_fplo_in_mesh_radial_mesh'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.mesh.radial_mesh'))
+
+    x_fplo_in_mesh_atom_radial_mesh = SubSection(
+        sub_section=SectionProxy('x_fplo_in_mesh_atom_radial_mesh'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.mesh.atom_radial_mesh'))
+
+
+class x_fplo_in_mesh_radial_mesh(MSection):
+    '''
+    FPLO input x_fplo_in.mesh.radial_mesh
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.mesh.radial_mesh'))
+
+    x_fplo_in_mesh_radial_mesh_nr = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.mesh.radial_mesh.nr
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.mesh.radial_mesh.nr'))
+
+    x_fplo_in_mesh_radial_mesh_rmin = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.mesh.radial_mesh.rmin
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.mesh.radial_mesh.rmin'))
+
+    x_fplo_in_mesh_radial_mesh_rmax = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.mesh.radial_mesh.rmax
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.mesh.radial_mesh.rmax'))
+
+    x_fplo_in_mesh_radial_mesh_rmax_factor = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.mesh.radial_mesh.rmax_factor
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.mesh.radial_mesh.rmax_factor'))
+
+
+class x_fplo_in_mesh_atom_radial_mesh(MSection):
+    '''
+    FPLO input x_fplo_in.mesh.atom_radial_mesh
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.mesh.atom_radial_mesh'))
+
+    x_fplo_in_mesh_atom_radial_mesh_nr = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.mesh.atom_radial_mesh.nr
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.mesh.atom_radial_mesh.nr'))
+
+    x_fplo_in_mesh_atom_radial_mesh_rmin = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.mesh.atom_radial_mesh.rmin
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.mesh.atom_radial_mesh.rmin'))
+
+    x_fplo_in_mesh_atom_radial_mesh_rmax = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.mesh.atom_radial_mesh.rmax
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.mesh.atom_radial_mesh.rmax'))
+
+
+class x_fplo_in_brillouin(MSection):
+    '''
+    FPLO input section x_fplo_in.brillouin
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.brillouin'))
+
+    x_fplo_in_brillouin_bzone_kT = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.brillouin.bzone_kT
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.brillouin.bzone_kT'))
+
+    x_fplo_in_brillouin_nband = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.brillouin.nband
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.brillouin.nband'))
+
+    x_fplo_in_brillouin_bzone_integration = SubSection(
+        sub_section=SectionProxy('x_fplo_in_brillouin_bzone_integration'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.brillouin.bzone_integration'))
+
+    x_fplo_in_brillouin_mp_bzone_integration = SubSection(
+        sub_section=SectionProxy('x_fplo_in_brillouin_mp_bzone_integration'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.brillouin.mp_bzone_integration'))
+
+    x_fplo_in_brillouin_bzone_method = SubSection(
+        sub_section=SectionProxy('x_fplo_in_brillouin_bzone_method'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.brillouin.bzone_method'))
+
+
+class x_fplo_in_brillouin_bzone_integration(MSection):
+    '''
+    FPLO input x_fplo_in.brillouin.bzone_integration
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.brillouin.bzone_integration'))
+
+    x_fplo_in_brillouin_bzone_integration_metal = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.brillouin.bzone_integration.metal
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.brillouin.bzone_integration.metal'))
+
+    x_fplo_in_brillouin_bzone_integration_nkxyz = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.brillouin.bzone_integration.nkxyz
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.brillouin.bzone_integration.nkxyz'))
+
+
+class x_fplo_in_brillouin_mp_bzone_integration(MSection):
+    '''
+    FPLO input x_fplo_in.brillouin.mp_bzone_integration
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.brillouin.mp_bzone_integration'))
+
+    x_fplo_in_brillouin_mp_bzone_integration_ne = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.brillouin.mp_bzone_integration.ne
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.brillouin.mp_bzone_integration.ne'))
+
+    x_fplo_in_brillouin_mp_bzone_integration_range = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.brillouin.mp_bzone_integration.range
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.brillouin.mp_bzone_integration.range'))
+
+    x_fplo_in_brillouin_mp_bzone_integration_width = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.brillouin.mp_bzone_integration.width
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.brillouin.mp_bzone_integration.width'))
+
+    x_fplo_in_brillouin_mp_bzone_integration_norder = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.brillouin.mp_bzone_integration.norder
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.brillouin.mp_bzone_integration.norder'))
+
+
+class x_fplo_in_brillouin_bzone_method(MSection):
+    '''
+    FPLO input x_fplo_in.brillouin.bzone_method
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.brillouin.bzone_method'))
+
+    x_fplo_in_brillouin_bzone_method_type = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.brillouin.bzone_method.type
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.brillouin.bzone_method.type'))
+
+    x_fplo_in_brillouin_bzone_method_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.brillouin.bzone_method.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.brillouin.bzone_method.description'))
+
+
+class x_fplo_in_bandstructure_plot(MSection):
+    '''
+    FPLO input section x_fplo_in.bandstructure_plot
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot'))
+
+    x_fplo_in_bandstructure_plot_bandplot_control = SubSection(
+        sub_section=SectionProxy('x_fplo_in_bandstructure_plot_bandplot_control'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandplot_control'))
+
+    x_fplo_in_bandstructure_plot_bandweight_control = SubSection(
+        sub_section=SectionProxy('x_fplo_in_bandstructure_plot_bandweight_control'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandweight_control'))
+
+
+class x_fplo_in_bandstructure_plot_bandplot_control(MSection):
+    '''
+    FPLO input x_fplo_in.bandstructure_plot.bandplot_control
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandplot_control'))
+
+    x_fplo_in_bandstructure_plot_bandplot_control_bandplot = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.bandstructure_plot.bandplot_control.bandplot
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandplot_control.bandplot'))
+
+    x_fplo_in_bandstructure_plot_bandplot_control_read_sympoints = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.bandstructure_plot.bandplot_control.read_sympoints
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandplot_control.read_sympoints'))
+
+    x_fplo_in_bandstructure_plot_bandplot_control_ndivisions = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.bandstructure_plot.bandplot_control.ndivisions
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandplot_control.ndivisions'))
+
+    x_fplo_in_bandstructure_plot_bandplot_control_emin = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.bandstructure_plot.bandplot_control.emin
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandplot_control.emin'))
+
+    x_fplo_in_bandstructure_plot_bandplot_control_emax = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.bandstructure_plot.bandplot_control.emax
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandplot_control.emax'))
+
+    x_fplo_in_bandstructure_plot_bandplot_control_nptdos = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.bandstructure_plot.bandplot_control.nptdos
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandplot_control.nptdos'))
+
+    x_fplo_in_bandstructure_plot_bandplot_control_plot_idos = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.bandstructure_plot.bandplot_control.plot_idos
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandplot_control.plot_idos'))
+
+    x_fplo_in_bandstructure_plot_bandplot_control_plot_ndos = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.bandstructure_plot.bandplot_control.plot_ndos
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandplot_control.plot_ndos'))
+
+    x_fplo_in_bandstructure_plot_bandplot_control_restrict_bands_to_window = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.bandstructure_plot.bandplot_control.restrict_bands_to_window
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandplot_control.restrict_bands_to_window'))
+
+    x_fplo_in_bandstructure_plot_bandplot_control_coeffout = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.bandstructure_plot.bandplot_control.coeffout
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandplot_control.coeffout'))
+
+
+class x_fplo_in_bandstructure_plot_bandweight_control(MSection):
+    '''
+    FPLO input x_fplo_in.bandstructure_plot.bandweight_control
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandweight_control'))
+
+    x_fplo_in_bandstructure_plot_bandweight_control_bandweights = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.bandstructure_plot.bandweight_control.bandweights
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandweight_control.bandweights'))
+
+    x_fplo_in_bandstructure_plot_bandweight_control_bweight_rot = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.bandstructure_plot.bandweight_control.bweight_rot
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandweight_control.bweight_rot'))
+
+    x_fplo_in_bandstructure_plot_bandweight_control_z_axis = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.bandstructure_plot.bandweight_control.z_axis
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandweight_control.z_axis'))
+
+    x_fplo_in_bandstructure_plot_bandweight_control_x_axis = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.bandstructure_plot.bandweight_control.x_axis
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandweight_control.x_axis'))
+
+    x_fplo_in_bandstructure_plot_bandweight_control_bwdfilename = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.bandstructure_plot.bandweight_control.bwdfilename
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandweight_control.bwdfilename'))
+
+    x_fplo_in_bandstructure_plot_bandweight_control_frelprojection = SubSection(
+        sub_section=SectionProxy('x_fplo_in_bandstructure_plot_bandweight_control_frelprojection'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandweight_control.frelprojection'))
+
+
+class x_fplo_in_bandstructure_plot_bandweight_control_frelprojection(MSection):
+    '''
+    FPLO input x_fplo_in.bandstructure_plot.bandweight_control.frelprojection
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandweight_control.frelprojection'))
+
+    x_fplo_in_bandstructure_plot_bandweight_control_frelprojection_type = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.bandstructure_plot.bandweight_control.frelprojection.type
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandweight_control.frelprojection.type'))
+
+    x_fplo_in_bandstructure_plot_bandweight_control_frelprojection_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input
+        x_fplo_in.bandstructure_plot.bandweight_control.frelprojection.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.bandstructure_plot.bandweight_control.frelprojection.description'))
+
+
+class x_fplo_in_iteration_control(MSection):
+    '''
+    FPLO input section x_fplo_in.iteration_control
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.iteration_control'))
+
+    x_fplo_in_iteration_control_etot_tolerance = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.iteration_control.etot_tolerance
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.iteration_control.etot_tolerance'))
+
+    x_fplo_in_iteration_control_iteration_control = SubSection(
+        sub_section=SectionProxy('x_fplo_in_iteration_control_iteration_control'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.iteration_control.iteration_control'))
+
+    x_fplo_in_iteration_control_iteration_version = SubSection(
+        sub_section=SectionProxy('x_fplo_in_iteration_control_iteration_version'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.iteration_control.iteration_version'))
+
+    x_fplo_in_iteration_control_iteration_convergence_condition = SubSection(
+        sub_section=SectionProxy('x_fplo_in_iteration_control_iteration_convergence_condition'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.iteration_control.iteration_convergence_condition'))
+
+    x_fplo_in_iteration_control_iterationvector_ratio = SubSection(
+        sub_section=SectionProxy('x_fplo_in_iteration_control_iterationvector_ratio'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.iteration_control.iterationvector_ratio'))
+
+
+class x_fplo_in_iteration_control_iteration_control(MSection):
+    '''
+    FPLO input x_fplo_in.iteration_control.iteration_control
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.iteration_control.iteration_control'))
+
+    x_fplo_in_iteration_control_iteration_control_steps = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.iteration_control.iteration_control.steps
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.iteration_control.iteration_control.steps'))
+
+    x_fplo_in_iteration_control_iteration_control_tolerance = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.iteration_control.iteration_control.tolerance
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.iteration_control.iteration_control.tolerance'))
+
+    x_fplo_in_iteration_control_iteration_control_mixing = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.iteration_control.iteration_control.mixing
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.iteration_control.iteration_control.mixing'))
+
+    x_fplo_in_iteration_control_iteration_control_maxdim = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.iteration_control.iteration_control.maxdim
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.iteration_control.iteration_control.maxdim'))
+
+    x_fplo_in_iteration_control_iteration_control_progress = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.iteration_control.iteration_control.progress
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.iteration_control.iteration_control.progress'))
+
+
+class x_fplo_in_iteration_control_iteration_version(MSection):
+    '''
+    FPLO input x_fplo_in.iteration_control.iteration_version
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.iteration_control.iteration_version'))
+
+    x_fplo_in_iteration_control_iteration_version_scheme = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.iteration_control.iteration_version.scheme
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.iteration_control.iteration_version.scheme'))
+
+    x_fplo_in_iteration_control_iteration_version_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.iteration_control.iteration_version.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.iteration_control.iteration_version.description'))
+
+
+class x_fplo_in_iteration_control_iteration_convergence_condition(MSection):
+    '''
+    FPLO input x_fplo_in.iteration_control.iteration_convergence_condition
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.iteration_control.iteration_convergence_condition'))
+
+    x_fplo_in_iteration_control_iteration_convergence_condition_type = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.iteration_control.iteration_convergence_condition.type
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.iteration_control.iteration_convergence_condition.type'))
+
+    x_fplo_in_iteration_control_iteration_convergence_condition_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.iteration_control.iteration_convergence_condition.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.iteration_control.iteration_convergence_condition.description'))
+
+
+class x_fplo_in_iteration_control_iterationvector_ratio(MSection):
+    '''
+    FPLO input x_fplo_in.iteration_control.iterationvector_ratio
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.iteration_control.iterationvector_ratio'))
+
+    x_fplo_in_iteration_control_iterationvector_ratio_U = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.iteration_control.iterationvector_ratio.U
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.iteration_control.iterationvector_ratio.U'))
+
+
+class x_fplo_in_forces(MSection):
+    '''
+    FPLO input section x_fplo_in.forces
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.forces'))
+
+    x_fplo_in_forces_force_in_each_step = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.forces.force_in_each_step
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.forces.force_in_each_step'))
+
+    x_fplo_in_forces_approx_nodndL_ewald = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.forces.approx_nodndL_ewald
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.forces.approx_nodndL_ewald'))
+
+    x_fplo_in_forces_geomopt_sites = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.forces.geomopt_sites
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.forces.geomopt_sites'))
+
+    x_fplo_in_forces_force_iteration_control = SubSection(
+        sub_section=SectionProxy('x_fplo_in_forces_force_iteration_control'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.forces.force_iteration_control'))
+
+    x_fplo_in_forces_force_iteration_version = SubSection(
+        sub_section=SectionProxy('x_fplo_in_forces_force_iteration_version'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.forces.force_iteration_version'))
+
+    x_fplo_in_forces_force_mode = SubSection(
+        sub_section=SectionProxy('x_fplo_in_forces_force_mode'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.forces.force_mode'))
+
+
+class x_fplo_in_forces_force_iteration_control(MSection):
+    '''
+    FPLO input x_fplo_in.forces.force_iteration_control
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.forces.force_iteration_control'))
+
+    x_fplo_in_forces_force_iteration_control_steps = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.forces.force_iteration_control.steps
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.forces.force_iteration_control.steps'))
+
+    x_fplo_in_forces_force_iteration_control_tolerance = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.forces.force_iteration_control.tolerance
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.forces.force_iteration_control.tolerance'))
+
+    x_fplo_in_forces_force_iteration_control_maxdim = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.forces.force_iteration_control.maxdim
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.forces.force_iteration_control.maxdim'))
+
+
+class x_fplo_in_forces_force_iteration_version(MSection):
+    '''
+    FPLO input x_fplo_in.forces.force_iteration_version
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.forces.force_iteration_version'))
+
+    x_fplo_in_forces_force_iteration_version_scheme = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.forces.force_iteration_version.scheme
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.forces.force_iteration_version.scheme'))
+
+    x_fplo_in_forces_force_iteration_version_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.forces.force_iteration_version.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.forces.force_iteration_version.description'))
+
+
+class x_fplo_in_forces_force_mode(MSection):
+    '''
+    FPLO input x_fplo_in.forces.force_mode
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.forces.force_mode'))
+
+    x_fplo_in_forces_force_mode_mode = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.forces.force_mode.mode
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.forces.force_mode.mode'))
+
+    x_fplo_in_forces_force_mode_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.forces.force_mode.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.forces.force_mode.description'))
+
+
+class x_fplo_in_options(MSection):
+    '''
+    FPLO input section x_fplo_in.options
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.options'))
+
+    x_fplo_in_options_ex_field_strength = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.ex_field_strength
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.ex_field_strength'))
+
+    x_fplo_in_options_quantization_axis = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.quantization_axis
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.quantization_axis'))
+
+    x_fplo_in_options_calc_etot = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.calc_etot
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.calc_etot'))
+
+    x_fplo_in_options_spin = SubSection(
+        sub_section=SectionProxy('x_fplo_in_options_spin'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.spin'))
+
+    x_fplo_in_options_xc_potential = SubSection(
+        sub_section=SectionProxy('x_fplo_in_options_xc_potential'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.xc_potential'))
+
+    x_fplo_in_options_relativistic = SubSection(
+        sub_section=SectionProxy('x_fplo_in_options_relativistic'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.relativistic'))
+
+    x_fplo_in_options_nuclear_model = SubSection(
+        sub_section=SectionProxy('x_fplo_in_options_nuclear_model'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.nuclear_model'))
+
+    x_fplo_in_options_charges = SubSection(
+        sub_section=SectionProxy('x_fplo_in_options_charges'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.charges'))
+
+    x_fplo_in_options_spin_pop_type = SubSection(
+        sub_section=SectionProxy('x_fplo_in_options_spin_pop_type'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.spin_pop_type'))
+
+    x_fplo_in_options_options = SubSection(
+        sub_section=SectionProxy('x_fplo_in_options_options'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options'))
+
+    x_fplo_in_options_verbosity_level = SubSection(
+        sub_section=SectionProxy('x_fplo_in_options_verbosity_level'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.verbosity_level'))
+
+    x_fplo_in_options_fsmoment = SubSection(
+        sub_section=SectionProxy('x_fplo_in_options_fsmoment'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.fsmoment'))
+
+
+class x_fplo_in_options_spin(MSection):
+    '''
+    FPLO input x_fplo_in.options.spin
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.options.spin'))
+
+    x_fplo_in_options_spin_mspin = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.spin.mspin
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.spin.mspin'))
+
+    x_fplo_in_options_spin_initial_spin_split = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.spin.initial_spin_split
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.spin.initial_spin_split'))
+
+
+class x_fplo_in_options_xc_potential(MSection):
+    '''
+    FPLO input x_fplo_in.options.xc_potential
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.options.xc_potential'))
+
+    x_fplo_in_options_xc_potential_type = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.xc_potential.type
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.xc_potential.type'))
+
+    x_fplo_in_options_xc_potential_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.xc_potential.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.xc_potential.description'))
+
+
+class x_fplo_in_options_relativistic(MSection):
+    '''
+    FPLO input x_fplo_in.options.relativistic
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.options.relativistic'))
+
+    x_fplo_in_options_relativistic_type = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.relativistic.type
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.relativistic.type'))
+
+    x_fplo_in_options_relativistic_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.relativistic.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.relativistic.description'))
+
+
+class x_fplo_in_options_nuclear_model(MSection):
+    '''
+    FPLO input x_fplo_in.options.nuclear_model
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.options.nuclear_model'))
+
+    x_fplo_in_options_nuclear_model_type = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.nuclear_model.type
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.nuclear_model.type'))
+
+    x_fplo_in_options_nuclear_model_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.nuclear_model.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.nuclear_model.description'))
+
+
+class x_fplo_in_options_charges(MSection):
+    '''
+    FPLO input x_fplo_in.options.charges
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.options.charges'))
+
+    x_fplo_in_options_charges_ionicity = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.charges.ionicity
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.charges.ionicity'))
+
+    x_fplo_in_options_charges_make_vca = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.charges.make_vca
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.charges.make_vca'))
+
+    x_fplo_in_options_charges_chargemode = SubSection(
+        sub_section=SectionProxy('x_fplo_in_options_charges_chargemode'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.charges.chargemode'))
+
+    x_fplo_in_options_charges_vca = SubSection(
+        sub_section=SectionProxy('x_fplo_in_options_charges_vca'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.charges.vca'))
+
+
+class x_fplo_in_options_charges_chargemode(MSection):
+    '''
+    FPLO input x_fplo_in.options.charges.chargemode
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.options.charges.chargemode'))
+
+    x_fplo_in_options_charges_chargemode_type = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.charges.chargemode.type
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.charges.chargemode.type'))
+
+    x_fplo_in_options_charges_chargemode_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.charges.chargemode.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.charges.chargemode.description'))
+
+
+class x_fplo_in_options_charges_vca(MSection):
+    '''
+    FPLO input x_fplo_in.options.charges.vca
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.options.charges.vca'))
+
+    x_fplo_in_options_charges_vca_sort = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.charges.vca.sort
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.charges.vca.sort'))
+
+    x_fplo_in_options_charges_vca_Z = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.charges.vca.Z
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.charges.vca.Z'))
+
+
+class x_fplo_in_options_spin_pop_type(MSection):
+    '''
+    FPLO input x_fplo_in.options.spin_pop_type
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.options.spin_pop_type'))
+
+    x_fplo_in_options_spin_pop_type_type = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.spin_pop_type.type
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.spin_pop_type.type'))
+
+    x_fplo_in_options_spin_pop_type_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.spin_pop_type.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.spin_pop_type.description'))
+
+
+class x_fplo_in_options_options(MSection):
+    '''
+    FPLO input x_fplo_in.options.options
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.options.options'))
+
+    x_fplo_in_options_options_CALC_DOS = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.options.CALC_DOS
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options.CALC_DOS'))
+
+    x_fplo_in_options_options_FULLBZ = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.options.FULLBZ
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options.FULLBZ'))
+
+    x_fplo_in_options_options_CALC_PLASMON_FREQ = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.options.CALC_PLASMON_FREQ
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options.CALC_PLASMON_FREQ'))
+
+    x_fplo_in_options_options_EMPTY_LATTICE_TEST = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.options.EMPTY_LATTICE_TEST
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options.EMPTY_LATTICE_TEST'))
+
+    x_fplo_in_options_options_NO_DOS = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.options.NO_DOS
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options.NO_DOS'))
+
+    x_fplo_in_options_options_PLOT_REALFUNC = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.options.PLOT_REALFUNC
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options.PLOT_REALFUNC'))
+
+    x_fplo_in_options_options_PLOT_BASIS = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.options.PLOT_BASIS
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options.PLOT_BASIS'))
+
+    x_fplo_in_options_options_TEST_LOI = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.options.TEST_LOI
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options.TEST_LOI'))
+
+    x_fplo_in_options_options_TEST_DIAGNO = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.options.TEST_DIAGNO
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options.TEST_DIAGNO'))
+
+    x_fplo_in_options_options_TEST_SYMMETRIZATION = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.options.TEST_SYMMETRIZATION
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options.TEST_SYMMETRIZATION'))
+
+    x_fplo_in_options_options_TEST_HS_SYM = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.options.TEST_HS_SYM
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options.TEST_HS_SYM'))
+
+    x_fplo_in_options_options_PROT_PRINT_BASIS = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.options.PROT_PRINT_BASIS
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options.PROT_PRINT_BASIS'))
+
+    x_fplo_in_options_options_PROT_MAKELATTICE = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.options.PROT_MAKELATTICE
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options.PROT_MAKELATTICE'))
+
+    x_fplo_in_options_options_PROT_STRUCTURE_PRNT = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.options.PROT_STRUCTURE_PRNT
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options.PROT_STRUCTURE_PRNT'))
+
+    x_fplo_in_options_options_PROT_TCI = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.options.PROT_TCI
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options.PROT_TCI'))
+
+    x_fplo_in_options_options_NO_SYMMETRYTEST = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.options.NO_SYMMETRYTEST
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options.NO_SYMMETRYTEST'))
+
+    x_fplo_in_options_options_NO_POTENTIAL = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.options.NO_POTENTIAL
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options.NO_POTENTIAL'))
+
+    x_fplo_in_options_options_NO_CORE = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.options.NO_CORE
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options.NO_CORE'))
+
+    x_fplo_in_options_options_NO_POPANALYSIS = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.options.NO_POPANALYSIS
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options.NO_POPANALYSIS'))
+
+    x_fplo_in_options_options_NO_LOI = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.options.NO_LOI
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options.NO_LOI'))
+
+    x_fplo_in_options_options_NO_BASIS = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.options.NO_BASIS
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options.NO_BASIS'))
+
+    x_fplo_in_options_options_NO_EFCH = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.options.NO_EFCH
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.options.NO_EFCH'))
+
+
+class x_fplo_in_options_verbosity_level(MSection):
+    '''
+    FPLO input x_fplo_in.options.verbosity_level
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.options.verbosity_level'))
+
+    x_fplo_in_options_verbosity_level_type = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.verbosity_level.type
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.verbosity_level.type'))
+
+    x_fplo_in_options_verbosity_level_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.verbosity_level.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.verbosity_level.description'))
+
+
+class x_fplo_in_options_fsmoment(MSection):
+    '''
+    FPLO input x_fplo_in.options.fsmoment
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.options.fsmoment'))
+
+    x_fplo_in_options_fsmoment_moment = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.fsmoment.moment
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.fsmoment.moment'))
+
+    x_fplo_in_options_fsmoment_fsm = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.options.fsmoment.fsm
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.options.fsmoment.fsm'))
+
+
+class x_fplo_in_cpa(MSection):
+    '''
+    FPLO input section x_fplo_in.cpa
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.cpa'))
+
+    x_fplo_in_cpa_cpa_control = SubSection(
+        sub_section=SectionProxy('x_fplo_in_cpa_cpa_control'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_control'))
+
+    x_fplo_in_cpa_cpa_fermi_control = SubSection(
+        sub_section=SectionProxy('x_fplo_in_cpa_cpa_fermi_control'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_fermi_control'))
+
+    x_fplo_in_cpa_cpa_fermi_method = SubSection(
+        sub_section=SectionProxy('x_fplo_in_cpa_cpa_fermi_method'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_fermi_method'))
+
+    x_fplo_in_cpa_cpa_dos = SubSection(
+        sub_section=SectionProxy('x_fplo_in_cpa_cpa_dos'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_dos'))
+
+    x_fplo_in_cpa_cpa_bloch_spectral_density = SubSection(
+        sub_section=SectionProxy('x_fplo_in_cpa_cpa_bloch_spectral_density'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_bloch_spectral_density'))
+
+
+class x_fplo_in_cpa_cpa_control(MSection):
+    '''
+    FPLO input x_fplo_in.cpa.cpa_control
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_control'))
+
+    x_fplo_in_cpa_cpa_control_emin0 = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.cpa.cpa_control.emin0
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_control.emin0'))
+
+    x_fplo_in_cpa_cpa_control_emax0 = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.cpa.cpa_control.emax0
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_control.emax0'))
+
+    x_fplo_in_cpa_cpa_control_nec = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.cpa.cpa_control.nec
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_control.nec'))
+
+    x_fplo_in_cpa_cpa_control_max_se_loops = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.cpa.cpa_control.max_se_loops
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_control.max_se_loops'))
+
+    x_fplo_in_cpa_cpa_control_eimag = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.cpa.cpa_control.eimag
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_control.eimag'))
+
+
+class x_fplo_in_cpa_cpa_fermi_control(MSection):
+    '''
+    FPLO input x_fplo_in.cpa.cpa_fermi_control
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_fermi_control'))
+
+    x_fplo_in_cpa_cpa_fermi_control_efermi0 = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.cpa.cpa_fermi_control.efermi0
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_fermi_control.efermi0'))
+
+    x_fplo_in_cpa_cpa_fermi_control_slop_0 = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.cpa.cpa_fermi_control.slop_0
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_fermi_control.slop_0'))
+
+    x_fplo_in_cpa_cpa_fermi_control_slop_min = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.cpa.cpa_fermi_control.slop_min
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_fermi_control.slop_min'))
+
+    x_fplo_in_cpa_cpa_fermi_control_max_ef_loops = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.cpa.cpa_fermi_control.max_ef_loops
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_fermi_control.max_ef_loops'))
+
+
+class x_fplo_in_cpa_cpa_fermi_method(MSection):
+    '''
+    FPLO input x_fplo_in.cpa.cpa_fermi_method
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_fermi_method'))
+
+    x_fplo_in_cpa_cpa_fermi_method_type = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.cpa.cpa_fermi_method.type
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_fermi_method.type'))
+
+    x_fplo_in_cpa_cpa_fermi_method_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.cpa.cpa_fermi_method.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_fermi_method.description'))
+
+
+class x_fplo_in_cpa_cpa_dos(MSection):
+    '''
+    FPLO input x_fplo_in.cpa.cpa_dos
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_dos'))
+
+    x_fplo_in_cpa_cpa_dos_ne = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.cpa.cpa_dos.ne
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_dos.ne'))
+
+    x_fplo_in_cpa_cpa_dos_eimag = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.cpa.cpa_dos.eimag
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_dos.eimag'))
+
+
+class x_fplo_in_cpa_cpa_bloch_spectral_density(MSection):
+    '''
+    FPLO input x_fplo_in.cpa.cpa_bloch_spectral_density
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_bloch_spectral_density'))
+
+    x_fplo_in_cpa_cpa_bloch_spectral_density_ne = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.cpa.cpa_bloch_spectral_density.ne
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_bloch_spectral_density.ne'))
+
+    x_fplo_in_cpa_cpa_bloch_spectral_density_eimag = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.cpa.cpa_bloch_spectral_density.eimag
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.cpa.cpa_bloch_spectral_density.eimag'))
+
+
+class x_fplo_in_numerics(MSection):
+    '''
+    FPLO input section x_fplo_in.numerics
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.numerics'))
+
+    x_fplo_in_numerics_nfft_ewp_per_site = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.numerics.nfft_ewp_per_site
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.numerics.nfft_ewp_per_site'))
+
+    x_fplo_in_numerics_interpolation = SubSection(
+        sub_section=SectionProxy('x_fplo_in_numerics_interpolation'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.numerics.interpolation'))
+
+    x_fplo_in_numerics_one_center_integrals = SubSection(
+        sub_section=SectionProxy('x_fplo_in_numerics_one_center_integrals'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.numerics.one_center_integrals'))
+
+    x_fplo_in_numerics_coulomb_energy_calc = SubSection(
+        sub_section=SectionProxy('x_fplo_in_numerics_coulomb_energy_calc'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.numerics.coulomb_energy_calc'))
+
+    x_fplo_in_numerics_overlap_density_calc = SubSection(
+        sub_section=SectionProxy('x_fplo_in_numerics_overlap_density_calc'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.numerics.overlap_density_calc'))
+
+    x_fplo_in_numerics_cutoff_tolerances = SubSection(
+        sub_section=SectionProxy('x_fplo_in_numerics_cutoff_tolerances'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.numerics.cutoff_tolerances'))
+
+    x_fplo_in_numerics_ewald_parameter = SubSection(
+        sub_section=SectionProxy('x_fplo_in_numerics_ewald_parameter'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.numerics.ewald_parameter'))
+
+    x_fplo_in_numerics_symtest = SubSection(
+        sub_section=SectionProxy('x_fplo_in_numerics_symtest'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.numerics.symtest'))
+
+
+class x_fplo_in_numerics_interpolation(MSection):
+    '''
+    FPLO input x_fplo_in.numerics.interpolation
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.numerics.interpolation'))
+
+    x_fplo_in_numerics_interpolation_degree = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.numerics.interpolation.degree
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.numerics.interpolation.degree'))
+
+
+class x_fplo_in_numerics_one_center_integrals(MSection):
+    '''
+    FPLO input x_fplo_in.numerics.one_center_integrals
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.numerics.one_center_integrals'))
+
+    x_fplo_in_numerics_one_center_integrals_nr = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.numerics.one_center_integrals.nr
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.numerics.one_center_integrals.nr'))
+
+
+class x_fplo_in_numerics_coulomb_energy_calc(MSection):
+    '''
+    FPLO input x_fplo_in.numerics.coulomb_energy_calc
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.numerics.coulomb_energy_calc'))
+
+    x_fplo_in_numerics_coulomb_energy_calc_nxi = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.numerics.coulomb_energy_calc.nxi
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.numerics.coulomb_energy_calc.nxi'))
+
+    x_fplo_in_numerics_coulomb_energy_calc_neta = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.numerics.coulomb_energy_calc.neta
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.numerics.coulomb_energy_calc.neta'))
+
+
+class x_fplo_in_numerics_overlap_density_calc(MSection):
+    '''
+    FPLO input x_fplo_in.numerics.overlap_density_calc
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.numerics.overlap_density_calc'))
+
+    x_fplo_in_numerics_overlap_density_calc_nr = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.numerics.overlap_density_calc.nr
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.numerics.overlap_density_calc.nr'))
+
+    x_fplo_in_numerics_overlap_density_calc_neta = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.numerics.overlap_density_calc.neta
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.numerics.overlap_density_calc.neta'))
+
+
+class x_fplo_in_numerics_cutoff_tolerances(MSection):
+    '''
+    FPLO input x_fplo_in.numerics.cutoff_tolerances
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.numerics.cutoff_tolerances'))
+
+    x_fplo_in_numerics_cutoff_tolerances_dens = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.numerics.cutoff_tolerances.dens
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.numerics.cutoff_tolerances.dens'))
+
+    x_fplo_in_numerics_cutoff_tolerances_pot = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.numerics.cutoff_tolerances.pot
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.numerics.cutoff_tolerances.pot'))
+
+    x_fplo_in_numerics_cutoff_tolerances_orbital = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.numerics.cutoff_tolerances.orbital
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.numerics.cutoff_tolerances.orbital'))
+
+
+class x_fplo_in_numerics_ewald_parameter(MSection):
+    '''
+    FPLO input x_fplo_in.numerics.ewald_parameter
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.numerics.ewald_parameter'))
+
+    x_fplo_in_numerics_ewald_parameter_cutoff = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.numerics.ewald_parameter.cutoff
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.numerics.ewald_parameter.cutoff'))
+
+    x_fplo_in_numerics_ewald_parameter_eps_r = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.numerics.ewald_parameter.eps_r
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.numerics.ewald_parameter.eps_r'))
+
+    x_fplo_in_numerics_ewald_parameter_eps_g = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.numerics.ewald_parameter.eps_g
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.numerics.ewald_parameter.eps_g'))
+
+
+class x_fplo_in_numerics_symtest(MSection):
+    '''
+    FPLO input x_fplo_in.numerics.symtest
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.numerics.symtest'))
+
+    x_fplo_in_numerics_symtest_tol = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.numerics.symtest.tol
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.numerics.symtest.tol'))
+
+
+class x_fplo_in_LSDA_U(MSection):
+    '''
+    FPLO input section x_fplo_in.LSDA_U
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.LSDA_U'))
+
+    x_fplo_in_LSDA_U_make_lsdau = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.LSDA_U.make_lsdau
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.LSDA_U.make_lsdau'))
+
+    x_fplo_in_LSDA_U_lsdau_dmat_deviation = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.LSDA_U.lsdau_dmat_deviation
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.LSDA_U.lsdau_dmat_deviation'))
+
+    x_fplo_in_LSDA_U_lsdau_projection = SubSection(
+        sub_section=SectionProxy('x_fplo_in_LSDA_U_lsdau_projection'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.LSDA_U.lsdau_projection'))
+
+    x_fplo_in_LSDA_U_lsdau_functional = SubSection(
+        sub_section=SectionProxy('x_fplo_in_LSDA_U_lsdau_functional'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.LSDA_U.lsdau_functional'))
+
+    x_fplo_in_LSDA_U_lsdau_dmat_mode = SubSection(
+        sub_section=SectionProxy('x_fplo_in_LSDA_U_lsdau_dmat_mode'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.LSDA_U.lsdau_dmat_mode'))
+
+    x_fplo_in_LSDA_U_lsdau_defs = SubSection(
+        sub_section=SectionProxy('x_fplo_in_LSDA_U_lsdau_defs'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.LSDA_U.lsdau_defs'))
+
+
+class x_fplo_in_LSDA_U_lsdau_projection(MSection):
+    '''
+    FPLO input x_fplo_in.LSDA_U.lsdau_projection
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.LSDA_U.lsdau_projection'))
+
+    x_fplo_in_LSDA_U_lsdau_projection_type = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.LSDA_U.lsdau_projection.type
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.LSDA_U.lsdau_projection.type'))
+
+    x_fplo_in_LSDA_U_lsdau_projection_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.LSDA_U.lsdau_projection.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.LSDA_U.lsdau_projection.description'))
+
+
+class x_fplo_in_LSDA_U_lsdau_functional(MSection):
+    '''
+    FPLO input x_fplo_in.LSDA_U.lsdau_functional
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.LSDA_U.lsdau_functional'))
+
+    x_fplo_in_LSDA_U_lsdau_functional_type = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.LSDA_U.lsdau_functional.type
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.LSDA_U.lsdau_functional.type'))
+
+    x_fplo_in_LSDA_U_lsdau_functional_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.LSDA_U.lsdau_functional.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.LSDA_U.lsdau_functional.description'))
+
+
+class x_fplo_in_LSDA_U_lsdau_dmat_mode(MSection):
+    '''
+    FPLO input x_fplo_in.LSDA_U.lsdau_dmat_mode
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.LSDA_U.lsdau_dmat_mode'))
+
+    x_fplo_in_LSDA_U_lsdau_dmat_mode_type = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.LSDA_U.lsdau_dmat_mode.type
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.LSDA_U.lsdau_dmat_mode.type'))
+
+    x_fplo_in_LSDA_U_lsdau_dmat_mode_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.LSDA_U.lsdau_dmat_mode.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.LSDA_U.lsdau_dmat_mode.description'))
+
+
+class x_fplo_in_LSDA_U_lsdau_defs(MSection):
+    '''
+    FPLO input x_fplo_in.LSDA_U.lsdau_defs
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.LSDA_U.lsdau_defs'))
+
+    x_fplo_in_LSDA_U_lsdau_defs_sort = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.LSDA_U.lsdau_defs.sort
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.LSDA_U.lsdau_defs.sort'))
+
+    x_fplo_in_LSDA_U_lsdau_defs_state = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.LSDA_U.lsdau_defs.state
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.LSDA_U.lsdau_defs.state'))
+
+    x_fplo_in_LSDA_U_lsdau_defs_f_slater = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.LSDA_U.lsdau_defs.f_slater
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.LSDA_U.lsdau_defs.f_slater'))
+
+
+class x_fplo_in_OPC(MSection):
+    '''
+    FPLO input section x_fplo_in.OPC
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.OPC'))
+
+    x_fplo_in_OPC_make_opc = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.OPC.make_opc
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.OPC.make_opc'))
+
+    x_fplo_in_OPC_opc_projection = SubSection(
+        sub_section=SectionProxy('x_fplo_in_OPC_opc_projection'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.OPC.opc_projection'))
+
+    x_fplo_in_OPC_opc_functional = SubSection(
+        sub_section=SectionProxy('x_fplo_in_OPC_opc_functional'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.OPC.opc_functional'))
+
+    x_fplo_in_OPC_opc_defs = SubSection(
+        sub_section=SectionProxy('x_fplo_in_OPC_opc_defs'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.OPC.opc_defs'))
+
+
+class x_fplo_in_OPC_opc_projection(MSection):
+    '''
+    FPLO input x_fplo_in.OPC.opc_projection
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.OPC.opc_projection'))
+
+    x_fplo_in_OPC_opc_projection_type = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.OPC.opc_projection.type
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.OPC.opc_projection.type'))
+
+    x_fplo_in_OPC_opc_projection_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.OPC.opc_projection.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.OPC.opc_projection.description'))
+
+
+class x_fplo_in_OPC_opc_functional(MSection):
+    '''
+    FPLO input x_fplo_in.OPC.opc_functional
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.OPC.opc_functional'))
+
+    x_fplo_in_OPC_opc_functional_type = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.OPC.opc_functional.type
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.OPC.opc_functional.type'))
+
+    x_fplo_in_OPC_opc_functional_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.OPC.opc_functional.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.OPC.opc_functional.description'))
+
+
+class x_fplo_in_OPC_opc_defs(MSection):
+    '''
+    FPLO input x_fplo_in.OPC.opc_defs
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.OPC.opc_defs'))
+
+    x_fplo_in_OPC_opc_defs_sort = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.OPC.opc_defs.sort
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.OPC.opc_defs.sort'))
+
+    x_fplo_in_OPC_opc_defs_state = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.OPC.opc_defs.state
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.OPC.opc_defs.state'))
+
+
+class x_fplo_in_Advanced_output(MSection):
+    '''
+    FPLO input section x_fplo_in.Advanced_output
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output'))
+
+    x_fplo_in_Advanced_output_ldossites = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.ldossites
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.ldossites'))
+
+    x_fplo_in_Advanced_output_grids_active = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids_active
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids_active'))
+
+    x_fplo_in_Advanced_output_grids_stop_after = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids_stop_after
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids_stop_after'))
+
+    x_fplo_in_Advanced_output_grids = SubSection(
+        sub_section=SectionProxy('x_fplo_in_Advanced_output_grids'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids'))
+
+    x_fplo_in_Advanced_output_topological_insulator = SubSection(
+        sub_section=SectionProxy('x_fplo_in_Advanced_output_topological_insulator'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.topological_insulator'))
+
+    x_fplo_in_Advanced_output_optics = SubSection(
+        sub_section=SectionProxy('x_fplo_in_Advanced_output_optics'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.optics'))
+
+
+class x_fplo_in_Advanced_output_grids(MSection):
+    '''
+    FPLO input x_fplo_in.Advanced_output.grids
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids'))
+
+    x_fplo_in_Advanced_output_grids_direction1 = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.direction1
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.direction1'))
+
+    x_fplo_in_Advanced_output_grids_direction2 = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.direction2
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.direction2'))
+
+    x_fplo_in_Advanced_output_grids_direction3 = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.direction3
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.direction3'))
+
+    x_fplo_in_Advanced_output_grids_origin = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.origin
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.origin'))
+
+    x_fplo_in_Advanced_output_grids_subdivision = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.subdivision
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.subdivision'))
+
+    x_fplo_in_Advanced_output_grids_file = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.file
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.file'))
+
+    x_fplo_in_Advanced_output_grids_InclPeriodicPoints = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.InclPeriodicPoints
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.InclPeriodicPoints'))
+
+    x_fplo_in_Advanced_output_grids_createOpenDX = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.createOpenDX
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.createOpenDX'))
+
+    x_fplo_in_Advanced_output_grids_scfwavefnctwindow = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.scfwavefnctwindow
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.scfwavefnctwindow'))
+
+    x_fplo_in_Advanced_output_grids_basis = SubSection(
+        sub_section=SectionProxy('x_fplo_in_Advanced_output_grids_basis'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.basis'))
+
+    x_fplo_in_Advanced_output_grids_quantities = SubSection(
+        sub_section=SectionProxy('x_fplo_in_Advanced_output_grids_quantities'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.quantities'))
+
+    x_fplo_in_Advanced_output_grids_outputdata = SubSection(
+        sub_section=SectionProxy('x_fplo_in_Advanced_output_grids_outputdata'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.outputdata'))
+
+    x_fplo_in_Advanced_output_grids_energywindows = SubSection(
+        sub_section=SectionProxy('x_fplo_in_Advanced_output_grids_energywindows'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.energywindows'))
+
+    x_fplo_in_Advanced_output_grids_kresolved = SubSection(
+        sub_section=SectionProxy('x_fplo_in_Advanced_output_grids_kresolved'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.kresolved'))
+
+
+class x_fplo_in_Advanced_output_grids_basis(MSection):
+    '''
+    FPLO input x_fplo_in.Advanced_output.grids.basis
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.basis'))
+
+    x_fplo_in_Advanced_output_grids_basis_type = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.basis.type
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.basis.type'))
+
+    x_fplo_in_Advanced_output_grids_basis_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.basis.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.basis.description'))
+
+
+class x_fplo_in_Advanced_output_grids_quantities(MSection):
+    '''
+    FPLO input x_fplo_in.Advanced_output.grids.quantities
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.quantities'))
+
+    x_fplo_in_Advanced_output_grids_quantities_type = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.quantities.type
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.quantities.type'))
+
+    x_fplo_in_Advanced_output_grids_quantities_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.quantities.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.quantities.description'))
+
+
+class x_fplo_in_Advanced_output_grids_outputdata(MSection):
+    '''
+    FPLO input x_fplo_in.Advanced_output.grids.outputdata
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.outputdata'))
+
+    x_fplo_in_Advanced_output_grids_outputdata_type = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.outputdata.type
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.outputdata.type'))
+
+    x_fplo_in_Advanced_output_grids_outputdata_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.outputdata.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.outputdata.description'))
+
+
+class x_fplo_in_Advanced_output_grids_energywindows(MSection):
+    '''
+    FPLO input x_fplo_in.Advanced_output.grids.energywindows
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.energywindows'))
+
+    x_fplo_in_Advanced_output_grids_energywindows_name = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.energywindows.name
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.energywindows.name'))
+
+    x_fplo_in_Advanced_output_grids_energywindows_sections = SubSection(
+        sub_section=SectionProxy('x_fplo_in_Advanced_output_grids_energywindows_sections'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.energywindows.sections'))
+
+
+class x_fplo_in_Advanced_output_grids_energywindows_sections(MSection):
+    '''
+    FPLO input x_fplo_in.Advanced_output.grids.energywindows.sections
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.energywindows.sections'))
+
+    x_fplo_in_Advanced_output_grids_energywindows_sections_emin = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.energywindows.sections.emin
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.energywindows.sections.emin'))
+
+    x_fplo_in_Advanced_output_grids_energywindows_sections_emax = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.energywindows.sections.emax
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.energywindows.sections.emax'))
+
+    x_fplo_in_Advanced_output_grids_energywindows_sections_de = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.energywindows.sections.de
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.energywindows.sections.de'))
+
+    x_fplo_in_Advanced_output_grids_energywindows_sections_spin = SubSection(
+        sub_section=SectionProxy('x_fplo_in_Advanced_output_grids_energywindows_sections_spin'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.energywindows.sections.spin'))
+
+
+class x_fplo_in_Advanced_output_grids_energywindows_sections_spin(MSection):
+    '''
+    FPLO input x_fplo_in.Advanced_output.grids.energywindows.sections.spin
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.energywindows.sections.spin'))
+
+    x_fplo_in_Advanced_output_grids_energywindows_sections_spin_type = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.energywindows.sections.spin.type
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.energywindows.sections.spin.type'))
+
+    x_fplo_in_Advanced_output_grids_energywindows_sections_spin_description = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.energywindows.sections.spin.description
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.energywindows.sections.spin.description'))
+
+
+class x_fplo_in_Advanced_output_grids_kresolved(MSection):
+    '''
+    FPLO input x_fplo_in.Advanced_output.grids.kresolved
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.kresolved'))
+
+    x_fplo_in_Advanced_output_grids_kresolved_name = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.kresolved.name
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.kresolved.name'))
+
+    x_fplo_in_Advanced_output_grids_kresolved_kpoint = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.kresolved.kpoint
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.kresolved.kpoint'))
+
+    x_fplo_in_Advanced_output_grids_kresolved_bandindices = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.kresolved.bandindices
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.kresolved.bandindices'))
+
+    x_fplo_in_Advanced_output_grids_kresolved_energywindow = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.grids.kresolved.energywindow
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.grids.kresolved.energywindow'))
+
+
+class x_fplo_in_Advanced_output_topological_insulator(MSection):
+    '''
+    FPLO input x_fplo_in.Advanced_output.topological_insulator
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.topological_insulator'))
+
+    x_fplo_in_Advanced_output_topological_insulator_active = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.topological_insulator.active
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.topological_insulator.active'))
+
+
+class x_fplo_in_Advanced_output_optics(MSection):
+    '''
+    FPLO input x_fplo_in.Advanced_output.optics
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.optics'))
+
+    x_fplo_in_Advanced_output_optics_active = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.optics.active
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.optics.active'))
+
+    x_fplo_in_Advanced_output_optics_jointdos = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.optics.jointdos
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.optics.jointdos'))
+
+    x_fplo_in_Advanced_output_optics_bandoutput = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.optics.bandoutput
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.optics.bandoutput'))
+
+    x_fplo_in_Advanced_output_optics_stopafter = Quantity(
+        type=bool,
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.optics.stopafter
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.optics.stopafter'))
+
+    x_fplo_in_Advanced_output_optics_energy = SubSection(
+        sub_section=SectionProxy('x_fplo_in_Advanced_output_optics_energy'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.optics.energy'))
+
+
+class x_fplo_in_Advanced_output_optics_energy(MSection):
+    '''
+    FPLO input x_fplo_in.Advanced_output.optics.energy
+    '''
+
+    m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.optics.energy'))
+
+    x_fplo_in_Advanced_output_optics_energy_ne = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.optics.energy.ne
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.optics.energy.ne'))
+
+    x_fplo_in_Advanced_output_optics_energy_emin = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.optics.energy.emin
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.optics.energy.emin'))
+
+    x_fplo_in_Advanced_output_optics_energy_emax = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        FPLO input x_fplo_in.Advanced_output.optics.energy.emax
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_in.Advanced_output.optics.energy.emax'))
+
+
+class section_method(public.section_method):
+
+    m_def = Section(validate=False, extends_base_section=True, a_legacy=LegacyDefinition(name='section_method'))
+
+    x_fplo_in = SubSection(
+        sub_section=SectionProxy('x_fplo_in'),
+        repeats=True,
+        a_legacy=LegacyDefinition(name='x_fplo_in'))
+
+
+m_package.__init_metainfo__()
diff --git a/fploparser/metainfo/fplo_temporaries.py b/fploparser/metainfo/fplo_temporaries.py
new file mode 100644
index 0000000000000000000000000000000000000000..19dfc1f36d755de9a0a0fadfb3e674a930c3e5d7
--- /dev/null
+++ b/fploparser/metainfo/fplo_temporaries.py
@@ -0,0 +1,303 @@
+import numpy as np            # pylint: disable=unused-import
+import typing                 # pylint: disable=unused-import
+from nomad.metainfo import (  # pylint: disable=unused-import
+    MSection, MCategory, Category, Package, Quantity, Section, SubSection, SectionProxy,
+    Reference
+)
+from nomad.metainfo.legacy import LegacyDefinition
+
+from nomad.datamodel.metainfo import public
+
+m_package = Package(
+    name='fplo_temporaries_nomadmetainfo_json',
+    description='None',
+    a_legacy=LegacyDefinition(name='fplo.temporaries.nomadmetainfo.json'))
+
+
+class section_run(public.section_run):
+
+    m_def = Section(validate=False, extends_base_section=True, a_legacy=LegacyDefinition(name='section_run'))
+
+    x_fplo_t_program_version_main = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        temporary: FPLO main version
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_program_version_main'))
+
+    x_fplo_t_program_version_release = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        temporary: FPLO release number
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_program_version_release'))
+
+    x_fplo_t_run_hosts = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        temporary: FPLO run hosts
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_run_hosts'))
+
+
+class section_system(public.section_system):
+
+    m_def = Section(validate=False, extends_base_section=True, a_legacy=LegacyDefinition(name='section_system'))
+
+    x_fplo_t_vec_a_x = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        Temporary storage for direct lattice vectors, x-component
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_vec_a_x'))
+
+    x_fplo_t_vec_a_y = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        Temporary storage for direct lattice vectors, y-component
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_vec_a_y'))
+
+    x_fplo_t_vec_a_z = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        Temporary storage for direct lattice vectors, z-component
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_vec_a_z'))
+
+    x_fplo_t_vec_b_x = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        Temporary storage for reciprocal lattice vectors, x-component
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_vec_b_x'))
+
+    x_fplo_t_vec_b_y = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        Temporary storage for reciprocal lattice vectors, y-component
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_vec_b_y'))
+
+    x_fplo_t_vec_b_z = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        Temporary storage for reciprocal lattice vectors, z-component
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_vec_b_z'))
+
+    x_fplo_t_atom_positions_x = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        Temporary storage for atom positions, x-component
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_atom_positions_x'))
+
+    x_fplo_t_atom_positions_y = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        Temporary storage for atom positions, y-component
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_atom_positions_y'))
+
+    x_fplo_t_atom_positions_z = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        Temporary storage for atom positions, z-component
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_atom_positions_z'))
+
+    x_fplo_t_atom_idx = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        Temporary storage for FPLO atom index
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_atom_idx'))
+
+    x_fplo_t_atom_labels = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        Temporary storage for FPLO atom labels
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_atom_labels'))
+
+    x_fplo_t_atom_wyckoff_idx = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        Temporary storage for FPLO Wyckoff position index of each atom
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_atom_wyckoff_idx'))
+
+    x_fplo_t_atom_cpa_block = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        Temporary storage for FPLO CPA block of each atom
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_atom_cpa_block'))
+
+
+class section_method(public.section_method):
+
+    m_def = Section(validate=False, extends_base_section=True, a_legacy=LegacyDefinition(name='section_method'))
+
+    x_fplo_t_relativity_method = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        Temporary storage for FPLO relativistic method
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_relativity_method'))
+
+    x_fplo_t_dft_plus_u_species_subshell_species = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        Temporary storage for FPLO per species/(n,l)subshell DFT+U species
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_dft_plus_u_species_subshell_species'))
+
+    x_fplo_t_dft_plus_u_species_subshell_element = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        Temporary storage for FPLO per species/(n,l)subshell DFT+U element
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_dft_plus_u_species_subshell_element'))
+
+    x_fplo_t_dft_plus_u_species_subshell_subshell = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        Temporary storage for FPLO per species/(n,l)subshell DFT+U (n,l)subshell
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_dft_plus_u_species_subshell_subshell'))
+
+    x_fplo_t_dft_plus_u_species_subshell_F0 = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        Temporary storage for FPLO per species/(n,l)subshell DFT+U F0
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_dft_plus_u_species_subshell_F0'))
+
+    x_fplo_t_dft_plus_u_species_subshell_F2 = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        Temporary storage for FPLO per species/(n,l)subshell DFT+U F2
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_dft_plus_u_species_subshell_F2'))
+
+    x_fplo_t_dft_plus_u_species_subshell_F4 = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        Temporary storage for FPLO per species/(n,l)subshell DFT+U F4
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_dft_plus_u_species_subshell_F4'))
+
+    x_fplo_t_dft_plus_u_species_subshell_F6 = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        Temporary storage for FPLO per species/(n,l)subshell DFT+U F6
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_dft_plus_u_species_subshell_F6'))
+
+    x_fplo_t_dft_plus_u_species_subshell_U = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        Temporary storage for FPLO per species/(n,l)subshell DFT+U U
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_dft_plus_u_species_subshell_U'))
+
+    x_fplo_t_dft_plus_u_species_subshell_J = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        description='''
+        Temporary storage for FPLO per species/(n,l)subshell DFT+U J
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_dft_plus_u_species_subshell_J'))
+
+    x_fplo_t_dft_plus_u_site_index = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        Temporary storage for FPLO per site DFT+U index
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_dft_plus_u_site_index'))
+
+    x_fplo_t_dft_plus_u_site_element = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        Temporary storage for FPLO per site DFT+U element
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_dft_plus_u_site_element'))
+
+    x_fplo_t_dft_plus_u_site_species = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        Temporary storage for FPLO per site DFT+U species
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_dft_plus_u_site_species'))
+
+    x_fplo_t_dft_plus_u_site_subshell = Quantity(
+        type=str,
+        shape=[],
+        description='''
+        Temporary storage for FPLO per site DFT+U (n,l)subshell
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_dft_plus_u_site_subshell'))
+
+    x_fplo_t_dft_plus_u_site_ubi1 = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        Temporary storage for FPLO per site DFT+U ubi1
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_dft_plus_u_site_ubi1'))
+
+    x_fplo_t_dft_plus_u_site_ubi2 = Quantity(
+        type=np.dtype(np.int32),
+        shape=[],
+        description='''
+        Temporary storage for FPLO per site DFT+U ubi2
+        ''',
+        a_legacy=LegacyDefinition(name='x_fplo_t_dft_plus_u_site_ubi2'))
+
+
+class section_scf_iteration(public.section_scf_iteration):
+
+    m_def = Section(validate=False, extends_base_section=True, a_legacy=LegacyDefinition(name='section_scf_iteration'))
+
+    x_fplo_t_energy_reference_fermi_iteration = Quantity(
+        type=np.dtype(np.float64),
+        shape=[],
+        unit='joule',
+        description='''
+        Temporary storage for FPLO Fermi energy in iteration
+        ''',
+        categories=[public.energy_type_reference, public.energy_value],
+        a_legacy=LegacyDefinition(name='x_fplo_t_energy_reference_fermi_iteration'))
+
+
+m_package.__init_metainfo__()
diff --git a/parser/parser-fplo/parser_fplo_14.py b/fploparser/parser_fplo_14.py
similarity index 96%
rename from parser/parser-fplo/parser_fplo_14.py
rename to fploparser/parser_fplo_14.py
index 76c8d0a1e9ad78af7ffc6ee32dc0a4c1bcf2f73f..59313835138ef35065b15a3b7b20631b97512cbc 100755
--- a/parser/parser-fplo/parser_fplo_14.py
+++ b/fploparser/parser_fplo_14.py
@@ -13,7 +13,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import setup_paths
 from nomadcore.simple_parser import mainFunction, SimpleMatcher as SM, CachingLevel
 from nomadcore.local_meta_info import loadJsonFile, InfoKindEl
 import os
@@ -24,12 +23,12 @@ import logging
 import nomadcore.unit_conversion.unit_conversion as unit_conversion
 import math
 import numpy as np
-import FploCommon as FploC
+from . import FploCommon as FploC
 import calendar
 from nomadcore.parser_backend import valueForStrValue
-from FploCommon import RE_f, RE_i, cRE_f, cRE_i
+from .FploCommon import RE_f, RE_i, cRE_f, cRE_i
 from nomadcore.parser_backend import valueForStrValue
-import FploInputParser
+from . import FploInputParser
 
 
 LOGGER = logging.getLogger(__name__)
@@ -77,10 +76,10 @@ FPLO_DFT_PLUS_U_FUNCTIONAL = {
 
 class ParserFplo14(object):
     """main place to keep the parser status, open ancillary files,..."""
-    def __init__(self):
+    def __init__(self, metaInfoEnv):
         self.parserInfo = FploC.PARSER_INFO_DEFAULT.copy()
         self.cachingLevelForMetaName = {}
-        for name in FploC.META_INFO.infoKinds:
+        for name in metaInfoEnv.infoKinds:
             # set all temporaries to caching-only
             if name.startswith('x_fplo_t_'):
                 self.cachingLevelForMetaName[name] = CachingLevel.Cache
@@ -98,7 +97,7 @@ class ParserFplo14(object):
 
     def parse(self):
         self.coverageIgnore = re.compile(r"^(?:" + r"|".join(self.coverageIgnoreList) + r")$")
-        mainFunction(self.mainFileDescription(), FploC.META_INFO, self.parserInfo,
+        mainFunction(self.mainFileDescription(), metaInfoEnv, self.parserInfo,
                      cachingLevelForMetaName=self.cachingLevelForMetaName,
                      superContext=self)
 
@@ -695,6 +694,27 @@ class ParserFplo14(object):
                 backend.addValue(key, value)
         backend.closeSection(section_name, gIndex)
 
-if __name__ == "__main__":
-    parser = ParserFplo14()
-    parser.parse()
+
+class FploParser():
+    """ A proper class envolop for running this parser from within python. """
+    def __init__(self, backend, **kwargs):
+        self.backend_factory = backend
+
+    def parse(self, mainfile):
+        from unittest.mock import patch
+        logging.info('fplo parser started')
+        logging.getLogger('nomadcore').setLevel(logging.WARNING)
+        backend = self.backend_factory("fplo.nomadmetainfo.json")
+        parserInfo = {'name': 'fplo-parser', 'version': '1.0'}
+        context = ParserFplo14(backend.metaInfoEnv())
+
+        with patch.object(sys, 'argv', ['<exe>', '--uri', 'nmd://uri', mainfile]):
+            mainFunction(
+                context.mainFileDescription(),
+                None,
+                parserInfo=FploC.PARSER_INFO_DEFAULT.copy(),
+                cachingLevelForMetaName=context.cachingLevelForMetaName,
+                superContext=context,
+                superBackend=backend)
+
+        return backend
\ No newline at end of file
diff --git a/parser/parser-fplo/setup_paths.py b/parser/parser-fplo/setup_paths.py
deleted file mode 100644
index f4ceb89a1da21a0694b4e088ff52ed21444e4bc1..0000000000000000000000000000000000000000
--- a/parser/parser-fplo/setup_paths.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2015-2016 Fawzi Mohamed
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-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/setup.py b/setup.py
new file mode 100644
index 0000000000000000000000000000000000000000..ec5e940c01e46182e9a14c3b97ddd8a9deef48dc
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,34 @@
+# Copyright 2015-2018 Berk Onat
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+from setuptools import setup, find_packages
+
+
+def main():
+    setup(
+        name='fploparser',
+        version='0.1',
+        description='NOMAD parser implementation for FPLO.',
+        license='APACHE 2.0',
+        package_dir={'': './'},
+        packages=find_packages(),
+        install_requires=[
+            'nomadcore',
+            'nomad'
+        ],
+    )
+
+
+if __name__ == '__main__':
+    main()
diff --git a/src/main/scala/eu/nomad_lab/parsers/FploParser.scala b/src/main/scala/eu/nomad_lab/parsers/FploParser.scala
deleted file mode 100644
index cb714f2d950ffaf7f33be9335145522a79f91603..0000000000000000000000000000000000000000
--- a/src/main/scala/eu/nomad_lab/parsers/FploParser.scala
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright 2016-2018 Henning Glawe, Fawzi Mohamed
- * 
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- * 
- *     http://www.apache.org/licenses/LICENSE-2.0
- * 
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- */
-
-package eu.nomad_lab.parsers
-
-import eu.{ nomad_lab => lab }
-import eu.nomad_lab.{ JsonUtils, DefaultPythonInterpreter }
-import org.{ json4s => jn }
-import scala.collection.breakOut
-
-object FploParser extends SimpleExternalParserGenerator(
-  name = "FploParser",
-  parserInfo = jn.JObject(
-    ("name" -> jn.JString("FploParser")) ::
-      ("parserId" -> jn.JString("FploParser" + lab.FploVersionInfo.version)) ::
-      ("versionInfo" -> jn.JObject(
-        ("nomadCoreVersion" -> jn.JObject(lab.NomadCoreVersionInfo.toMap.map {
-          case (k, v) => k -> jn.JString(v.toString)
-        }(breakOut): List[(String, jn.JString)])) ::
-          (lab.FploVersionInfo.toMap.map {
-            case (key, value) =>
-              (key -> jn.JString(value.toString))
-          }(breakOut): List[(String, jn.JString)])
-      )) :: Nil
-  ),
-  mainFileTypes = Seq("text/.*"),
-  mainFileRe = """\s*\|\s*FULL-POTENTIAL LOCAL-ORBITAL MINIMUM BASIS BANDSTRUCTURE CODE\s*\|\s*\n""".r,
-  cmd = Seq(DefaultPythonInterpreter.pythonExe(), "${envDir}/parsers/fplo/parser/parser-fplo/parser_fplo_14.py",
-    "--uri", "${mainFileUri}", "${mainFilePath}"),
-  resList = Seq(
-    "parser-fplo/FploCommon.py",
-    "parser-fplo/FploInputParser.py",
-    "parser-fplo/parser_fplo_14.py",
-    "parser-fplo/setup_paths.py",
-    "nomad_meta_info/public.nomadmetainfo.json",
-    "nomad_meta_info/common.nomadmetainfo.json",
-    "nomad_meta_info/meta_types.nomadmetainfo.json",
-    "nomad_meta_info/fplo.nomadmetainfo.json",
-    "nomad_meta_info/fplo.temporaries.nomadmetainfo.json",
-    "nomad_meta_info/fplo.input.autogenerated.nomadmetainfo.json"
-  ) ++ DefaultPythonInterpreter.commonFiles(),
-  dirMap = Map(
-    "parser-fplo" -> "parsers/fplo/parser/parser-fplo",
-    "nomad_meta_info" -> "nomad-meta-info/meta_info/nomad_meta_info",
-    "python" -> "python-common/common/python/nomadcore"
-  ) ++ DefaultPythonInterpreter.commonDirMapping(),
-  metaInfoEnv = Some(lab.meta.KnownMetaInfoEnvs.fplo)
-)
diff --git a/src/test/scala/eu/nomad_lab/parsers/FploParserSpec.scala b/src/test/scala/eu/nomad_lab/parsers/FploParserSpec.scala
deleted file mode 100644
index d4d8ce745fcacd01284a07e0c4880ee41b888f95..0000000000000000000000000000000000000000
--- a/src/test/scala/eu/nomad_lab/parsers/FploParserSpec.scala
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright 2016-2018 Henning Glawe, Fawzi Mohamed
- * 
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- * 
- *     http://www.apache.org/licenses/LICENSE-2.0
- * 
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- */
-
-package eu.nomad_lab.parsers
-
-import org.specs2.mutable.Specification
-
-/**
- * FPLO output Test files:
- *
- * parsers/fplo/test/examples/dhcp_gd/out
- * parsers/fplo/test/examples/hcp_ti/out
- *
- */
-
-object FploParserSpec extends Specification {
-  "FploParserTest" >> {
-    "test1 (dhcp Gd) with json-events" >> {
-      ParserRun.parse(FploParser, "parsers/fplo/test/examples/dhcp_gd/out", "json-events") must_== ParseResult.ParseSuccess
-    }
-    "test1 (dhcp Gd) with json" >> {
-      ParserRun.parse(FploParser, "parsers/fplo/test/examples/dhcp_gd/out", "json") must_== ParseResult.ParseSuccess
-    }
-    "test2 (hcp Ti) with json-events" >> {
-      ParserRun.parse(FploParser, "parsers/fplo/test/examples/hcp_ti/out", "json-events") must_== ParseResult.ParseSuccess
-    }
-    "test2 (hcp Ti) with json" >> {
-      ParserRun.parse(FploParser, "parsers/fplo/test/examples/hcp_ti/out", "json") must_== ParseResult.ParseSuccess
-    }
-  }
-}