diff --git a/Python_CLI/README.md b/Python_CLI/README.md
deleted file mode 100644
index 8992cc8b75ff20629ef14400c592a5855b75b8d4..0000000000000000000000000000000000000000
--- a/Python_CLI/README.md
+++ /dev/null
@@ -1,176 +0,0 @@
-# lamec_ml: job script generator
-
-*currently in prototype stage.*
-
-Automatically generate module statements based on software dependencies.
-Current support:
-
-+ **DEEP**
-    - DDP
-    - HeAT
-    - DeepSpeed 
-    - Horovod
-    - TensorFlow
-+ **JURECA**
-    - DDP
-    - DeepSpeed
-    - HeAT
-    - Horovod
-    - RayTune
-+ **JUWELS**
-    - DDP
-+ **LUMI**
-    - DDP
-+ **VEGA**
-    - Basilisk
-
-## Requirements
-
-TODO.
-
-## Installation
-
-TODO.
-
-## lamec_ml usage
-
-```
-./lamec_ml --help
-```
-
-displays the command line interface:
-
-```
-usage: ./lamec_ml [-h] <access token> {eval,gen} ...
-
-positional arguments:
-  {eval,gen}
-    eval      evaluate directives in a script
-    gen       generate a module block
-
-options:
-  -h, --help  show this help message and exit
-```
-
-## Gen sub-command
-
-```
-./lamec_ml gen --help
-```
-
-displays the command line interface for the `gen` sub-command:
-
-```
-usage: ./lamec_ml gen [-h] <access token> [-o OUTPUT] system software [software ...]
-
-positional arguments:
-  access token          access token
-  system                name of system
-  software              list of software
-
-options:
-  -h, --help            show this help message and exit
-  -o OUTPUT, --output OUTPUT
-                        write to file
-```
-
-The `gen` sub-command allows users to generate module statements based on `system` and `software`.
-
-```
-./lamec_ml gen <access token> deep ddp heat
-```
-
-outputs
-
-```
-#MODULES BEGIN deep ddp,heat
-ml --force purge
-ml use $OTHERSTAGES
-ml Stages/2022 GCC/11.2.0 OpenMPI/4.1.2 cuDNN/8.3.1.22-CUDA-11.5 NCCL/2.11.4-CUDA-11.5 Python/3.9.6
-#MODULES END
-```
-
-The `gen` sub-command generates a *module block* which opens with `#MODULES BEGIN system software` and closes with `#MODULES END`.
-These are called directives and can be further manipulated with the `eval` sub-command.
-
-## Eval sub-command
-
-The `eval` sub-command evaluates directives in a script by parsing the module directives.
-
-```
-./lamec_ml eval --help
-```
-
-displays the command line interface for the `eval` sub-command
-
-```
-usage: ./lamec_ml eval [-h] <access token> [--add-software ADD_SOFTWARE [ADD_SOFTWARE ...]] [--remove-software REMOVE_SOFTWARE] [--alt-system ALT_SYSTEM] [-o OUTPUT]
-                  script
-
-positional arguments:
-  script                script containing directives to be evaluated
-
-options:
-  -h, --help            show this help message and exit
-  --add-software ADD_SOFTWARE [ADD_SOFTWARE ...]
-                        add new software
-  --remove-software REMOVE_SOFTWARE
-                        remove software
-  --alt-system ALT_SYSTEM
-                        use an alternative system
-  -o OUTPUT, --output OUTPUT
-                        write to file
-```
-
-If we have the following script called `myscript.sh`
-
-```
-#SBATCH...
-
-#MODULES BEGIN jureca raytune
-ml --force purge
-ml Stages/2022 GCC/11.2.0 OpenMPI/4.1.2 PyTorch/1.11-CUDA-11.5 torchvision/0.12.0-CUDA-11.5
-#MODULES END
-```
-
-then
-
-```
-./lamec_ml eval <access token> --add-software=ddp myscript.sh
-```
-
-outputs
-
-```
-#MODULES BEGIN jureca raytune,ddp
-ml --force purge
-ml Stages/2022 GCC/11.2.0 OpenMPI/4.1.2 PyTorch/1.11-CUDA-11.5 torchvision/0.12.0-CUDA-11.5 NVHPC/22.3 ParaStationMPI/5.5.0-1-mt NCCL/2.12.7-1-CUDA-11.5 cuDNN/8.3.1.22-CUDA-11.5 Python/3.9.6 libaio/0.3.112 HDF5/1.12.1-serial mpi-settings/CUDA
-#MODULES END
-```
-
-which can be written directly to a file using the `-o` option. The `--remove-software` and `--alt-system` work the same way.
-
-Additionally, users can simply add a module directive into their script themselves
-
-```
-#SBATCH...
-
-#MODULES BEGIN jureca raytune
-#MODULES END
-```
-
-and
-
-```
-./lamec_ml eval <access token> myscript.sh
-```
-
-will evaluate the directives
-
-```
-#MODULES BEGIN deep ddp
-ml --force purge
-ml use $OTHERSTAGES
-ml Stages/2022 GCC/11.2.0 OpenMPI/4.1.2 cuDNN/8.3.1.22-CUDA-11.5 NCCL/2.11.4-CUDA-11.5 Python/3.9.6
-#MODULES END
-```
diff --git a/Python_CLI/lamec_ml b/Python_CLI/lamec_ml
deleted file mode 100755
index d67cc930b18e2fa410a4bdb16f38e8d68b12ce1e..0000000000000000000000000000000000000000
--- a/Python_CLI/lamec_ml
+++ /dev/null
@@ -1,280 +0,0 @@
-#!/usr/bin/env python3
-
-# need to: pip install --upgrade python-gitlab
-
-import gitlab
-import sys
-import json
-
-class Module:
-    """
-    Global variables
-    """
-    BEGIN = '#MODULES BEGIN '
-    END = '#MODULES END'
-
-def read_access_to_repository():
-    return gitlab \
-            .Gitlab(url='https://gitlab.jsc.fz-juelich.de') \
-            .projects \
-            .get('CoE-RAISE/FZJ/lamec-oa')
-
-def fetch_startscript(system, software, repo):
-    # TODO: make a pull request to standardize the naming convention
-    #
-    # if using DEEP and DDP the path should be:
-    #       
-    #   deep/ddp_startscript.sh 
-    #
-    # I assume that python-gitlab throws an exception if the path doesn't exist.
-
-    path = None
-    system = system.lower()
-    software = software.lower()
-
-    if system == 'deep':
-        if software == 'ddp':
-            path = 'scripts/Deep_DDP/DDP_startscript_deep.sh'
-        elif software == 'deepspeed':
-            path = 'scripts/Deep_DeepSpeed/DS_startscript_deep.sh'
-        elif software == 'heat':
-            path = 'scripts/Deep_HeAT/HeAT_startscript_deep.sh'
-        elif software == 'horovod':
-            path = 'scripts/Deep_Horovod/Hor_startscript_deep.sh'
-        elif software == 'tensorflow':
-            path = 'scripts/Deep_TensorFlow/TF_startscript_deep.sh'
-    elif system == 'jureca':
-        if software == 'ddp':
-            path = 'scripts/Jureca_DDP/DDP_startscript.sh'
-        elif software == 'deepspeed':
-            path = 'scripts/Jureca_DeepSpeed/DS_startscript_deep.sh'
-        elif software == 'heat':
-            path = 'scripts/Jureca_HeAT/HeAT_startscript_deep.sh'
-        elif software == 'horovod':
-            path = 'scripts/Jureca_Horovod/Hor_startscript_deep.sh'
-        elif software == 'graphcore':
-            path = 'scripts/Jureca_Graphcore/GC_startscript.sh'
-        elif software == 'raytune':
-            path = 'scripts/Jureca_RayTune/jureca_run_ray.sh'
-    elif system == 'juwels':
-        if software == 'ddp':
-            path = 'scripts/Juwels_DDP/env_batch.sh'
-    elif system == 'lumi':
-        if software == 'ddp':
-            path = 'scripts/LUMI_DDP/env_startscript.sh'
-    elif system == 'vega':
-        if software == 'basilisk':
-            path = 'scripts/Vega_ Basilisk/basilisk_pde.sh'
-
-
-    # Software is not supported
-    if path is None:
-        print('\'%s\' is not supported for \'%s\'' % \
-                (software, system), file=sys.stderr)
-        sys.exit(1)
-
-    return repo.files.get(file_path=path, ref='main').decode().decode('utf-8')
-
-def new_module_commands():
-    return {'purge': set(), 'use': set(), 'modules': list()}
-
-def parse_module_commands(startscript: str, module_commands: dict):
-
-    def is_module_keyword(token: str):
-        return token == 'module' or token == 'ml'
-
-    lines = startscript.splitlines()
-    for line in lines:
-        tokens = line.split()
-        if len(tokens) != 0 and is_module_keyword(tokens[0]):
-            if 'purge' in tokens:
-                module_commands['purge'].add(line.strip())
-            elif 'use' in tokens:
-                module_commands['use'].add(line.strip())
-            else:
-                for t in tokens:
-                    if not is_module_keyword(t):
-                        if t not in module_commands['modules']:
-                            module_commands['modules'].append(t)
-
-def generate_module_statements(system, software, repo):
-    module_commands = new_module_commands()
-
-    startscript = fetch_startscript(system, software, repo)
-    parse_module_commands(startscript, module_commands)
-
-    module_statements = ''
-    for purge in module_commands['purge']:
-        module_statements += (purge + '\n')
-
-    for use in module_commands['use']:
-        module_statements += (use + '\n')
-
-    module_statements += 'ml'
-    for module in module_commands['modules']:
-        module_statements += (' ' + module)
-    module_statements += '\n'
-
-    return module_statements
-
-def generate_module_block(system, software, repo):
-    module_block = Module.BEGIN
-    module_block += (system + ' ' + software + '\n')
-    module_block += generate_module_statements(system, software, repo)
-    module_block += (Module.END + '\n\n')
-    return module_block
-
-def eval_module_directives(args, repo):
-    has_begin = False
-    has_end = False
-    lines = args.script.split('\n')
-    for line in lines:
-        if Module.BEGIN in line:
-            has_begin = True
-        if Module.END in line:
-            has_end = True
-
-    # file doesn't contain a valid module block
-    if not (has_begin and has_end):
-        return args.script
-
-    script = ''
-    skip_line = False
-    for line in lines:
-        if Module.BEGIN in line:
-            #TODO: handle error when there is no software specified.
-            system, software = line.strip().replace(Module.BEGIN, '').split(' ')
-            script += generate_module_block(system, software, repo)
-            skip_line = True
-        elif Module.END in line:
-            skip_line = False
-        else:
-            if not skip_line:
-                script += (line + '\n')
-
-    return script
-
-def update_command(args):
-    repo = read_access_to_repository()
-    script = eval_module_directives(args, repo)
-    print(script, end='')
-   
-def generate_param_block(args):    
-    if args.system == 'jureca':
-        partition = 'dc-gpu'
-        gpus_pernode = 4
-    elif args.system == 'juwels':
-        partition = 'dc-gpu'
-        gpus_pernode = 4
-    elif args.system == 'deep':
-        partition = 'dc-gpu'
-        gpus_pernode = 1
-    else:
-        partition = ''
-        gpus_pernode = 1
-        
-    if args.software == 'ddp':
-        ntask_pernode = 1
-    else:
-        ntask_pernode = gpus_pernode
-        
-    param_block = '#!/bin/bash\n'
-    param_block += '#SBATCH --job-name=job\n' + '#SBATCH --output=job.out\n' + '#SBATCH --error=job.err\n'
-    param_block += '#SBATCH --account=' + str(args.account) + '\n'
-    param_block += '#SBATCH --partition=' + partition + '\n'
-    param_block += '#SBATCH --nodes=' + str(args.nodes) + '\n'
-    param_block += '#SBATCH --gpus-per-node=' + str(gpus_pernode) + '\n'
-    param_block += '#SBATCH --ntasks-per-node=' + str(ntask_pernode) + '\n'
-    param_block += '#SBATCH --cpus-per-task=1' + '\n'
-    param_block += '#SBATCH --exclusive' + '\n'
-    param_block += '#SBATCH --gres=gpu:' + str(gpus_pernode) + '\n\n'
-    
-    return param_block
-    
-def generate_env_block(system, software, repo):
-    #environment variable, export 1.CUDA_VISIBLE_DEVICES
-    #source python venv
-    env_block = ''
-    startscript = fetch_startscript(system, software, repo)
-    lines = startscript.splitlines()
-    for line in lines:
-        tokens = line.split()
-        if len(tokens) > 1  and tokens[0] == 'export' and 'CUDA_VISIBLE_DEVICES' in tokens[1]:
-            env_block += line.strip()
-    
-    env_block += '\n'
-    if system == 'jureca' and software == 'ddp':
-        env_block += 'source your/env_path/bin/activate\n'
-    elif system == 'deep' and software == 'ddp':
-        env_block += 'source your/env_path/bin/activate\n'
-    elif system == 'juwels':
-        env_block += 'source your/env_path/bin/activate\n'    
-    else:
-        env_block += 'source your/env_path/bin/activate\n'
-        
-    return env_block
-    
-def generate_launch_block(exe, system, software, repo):
-    system = system.lower()
-    launch_block = '\n'
-    def keyword_exist(tokens=list()):
-        keywords=['srun','nnodes','nproc_per_node','rdzv']
-        result = False
-        for kw in keywords:
-            result = True in (kw in item for item in tokens)
-            if result == True:
-                break
-
-        return result
-        
-    software = software.lower()
-    if software == 'ddp':
-        startscript = fetch_startscript(system, software, repo)        
-        lines = startscript.splitlines()        
-        for line in lines:
-            tokens = line.split()
-            if len(tokens)!=0 and '#' not in tokens[0] and keyword_exist(tokens):
-                launch_block +=line + '\n'
-    launch_block += (exe +'"')
-    launch_block += '\n'
-    return launch_block
-
-def create_command(args):
-    repo = read_access_to_repository()
-    param_block = generate_param_block(args)
-    module_block = generate_module_block(args.system, args.software, repo)
-    env_block = generate_env_block(args.system, args.software, repo)
-    launch_block = generate_launch_block(args.exe, args.system, args.software, repo)
-    outp = param_block + module_block + env_block + launch_block
-    print(outp, end='')
-
-class Args(object):
-
-    def __init__(self, argv):
-
-        if len(argv) == 1:
-            data = sys.stdin
-            args = json.load(data)
-        else:
-            args = json.loads(argv[1])
-
-        for arg in args:
-            setattr(self, arg, args[arg])
-
-        if args['which'] == "create":
-            args['software'].lower()
-            args['system'].lower()
-
-def main():
-
-    args = Args(sys.argv)
-
-    if args.which == 'create':
-        create_command(args)
-    elif args.which == 'update':
-        update_command(args)
-
-    sys.exit(0)
-
-if __name__ == '__main__':
-    main()
diff --git a/Python_CLI/old_lamec_ml b/Python_CLI/old_lamec_ml
deleted file mode 100644
index b13b8051bf1ae9e0b4f260d78bea3ed96342b67c..0000000000000000000000000000000000000000
--- a/Python_CLI/old_lamec_ml
+++ /dev/null
@@ -1,333 +0,0 @@
-#!/usr/bin/env python3
-
-# need to: pip install --upgrade python-gitlab
-
-import gitlab
-import sys, socket
-import argparse
-
-class Module:
-    """
-    Global variables
-    """
-    BEGIN = '#MODULES BEGIN '
-    END = '#MODULES END'
-
-def read_access_to_repository():
-    return gitlab \
-            .Gitlab(url='https://gitlab.jsc.fz-juelich.de') \
-            .projects \
-            .get('CoE-RAISE/FZJ/lamec-oa')
-            
-def fetch_startscript(system: str, software: str, repo: str) -> str:
-    # TODO: make a pull request to standardize the naming convention
-    #
-    # if using DEEP and DDP the path should be:
-    #       
-    #   deep/ddp_startscript.sh 
-    #
-    # I assume that python-gitlab throws an exception if the path doesn't exist.
-
-    path = None
-    software = software.lower()
-    system = system.lower()
-
-    if system == 'deep':
-        if software == 'ddp':
-            path = 'scripts/Deep_DDP/DDP_startscript_deep.sh'
-        elif software == 'deepspeed':
-            path = 'scripts/Deep_DeepSpeed/DS_startscript_deep.sh'
-        elif software == 'heat':
-            path = 'scripts/Deep_HeAT/HeAT_startscript_deep.sh'
-        elif software == 'horovod':
-            path = 'scripts/Deep_Horovod/Hor_startscript_deep.sh'
-        elif software == 'tensorflow':
-            path = 'scripts/Deep_TensorFlow/TF_startscript_deep.sh'
-    elif system == 'jureca':
-        if software == 'ddp':
-            path = 'scripts/Jureca_DDP/DDP_startscript.sh'
-        elif software == 'deepspeed':
-            path = 'scripts/Jureca_DeepSpeed/DS_startscript_deep.sh'
-        elif software == 'heat':
-            path = 'scripts/Jureca_HeAT/HeAT_startscript_deep.sh'
-        elif software == 'horovod':
-            path = 'scripts/Jureca_Horovod/Hor_startscript_deep.sh'
-        elif software == 'graphcore':
-            path = 'scripts/Jureca_Graphcore/GC_startscript.sh'
-        elif software == 'raytune':
-            path = 'scripts/Jureca_RayTune/jureca_run_ray.sh'
-    elif system == 'juwels':
-        if software == 'ddp':
-            path = 'scripts/Juwels_DDP/env_batch.sh'
-    elif system == 'lumi':
-        if software == 'ddp':
-            path = 'scripts/LUMI_DDP/env_startscript.sh'
-    elif system == 'vega':
-        if software == 'basilisk':
-            path = 'scripts/Vega_ Basilisk/basilisk_pde.sh'
-    # Software is not supported
-    if path is None:
-        print('\'%s\' is not supported for \'%s\'' % \
-                (software, system), file=sys.stderr)
-        sys.exit(1)
-
-    return repo.files.get(file_path=path, ref='main').decode().decode('utf-8')
-
-def new_module_commands():
-    return {'purge': set(), 'use': set(), 'modules': list()}
-
-def parse_module_commands(startscript: str, module_commands: dict):
-
-    def is_module_keyword(token: str):
-        return token == 'module' or token == 'ml'
-
-    lines = startscript.splitlines()
-    for line in lines:
-        tokens = line.split()
-        if len(tokens) != 0 and is_module_keyword(tokens[0]):
-            if 'purge' in tokens:
-                module_commands['purge'].add(line.strip())
-            elif 'use' in tokens:
-                module_commands['use'].add(line.strip())
-            else:
-                for t in tokens:
-                    if not is_module_keyword(t):
-                        if t not in module_commands['modules']:
-                            module_commands['modules'].append(t)
-
-def generate_module_statements(system: str, software=list()):
-    repo = read_access_to_repository()
-    module_commands = new_module_commands()
-
-    for sw in software:
-        startscript = fetch_startscript(system, sw, repo)
-        parse_module_commands(startscript, module_commands)
-
-    module_statements = ''
-    for purge in module_commands['purge']:
-        module_statements += (purge + '\n')
-
-    for use in module_commands['use']:
-        module_statements += (use + '\n')
-
-    module_statements += 'ml'
-    for module in module_commands['modules']:
-        module_statements += (' ' + module)
-    module_statements += '\n'
-
-    return module_statements
-
-def generate_module_block(system: str, software=list()):
-    module_block = Module.BEGIN
-    module_block += (system + ' ')
-    n = len(software) - 1
-    for i, s in enumerate(software):
-        if i != n:
-            module_block += (s + ',')
-        else:
-            module_block += (s + '\n')
-    module_block += generate_module_statements(system, software)
-    module_block += (Module.END + '\n\n')
-    return module_block
-
-def eval_module_directives(script: str, add_software=[], remove_software=[], alt_system=None):
-    has_begin = False
-    has_end = False
-    with open(script, 'r') as f:
-        lines = f.readlines()
-        for line in lines:
-            if Module.BEGIN in line:
-                has_begin = True
-            if Module.END in line:
-                has_end = True
-
-    if not (has_begin and has_end):
-        return
-
-    module_block = ''
-    skip_line = False
-    for line in lines:
-        if Module.BEGIN in line:
-            #TODO: handle error when there is no software specified.
-            system, software = line.strip().replace(Module.BEGIN, '').split(' ')
-            if alt_system:
-                system = alt_system
-            software = software.split(',')
-            for s in add_software:
-                if s not in software:
-                    software.append(s)
-            software = [s for s in software if s not in remove_software]
-            module_block += generate_module_block(system, software)
-            skip_line = True
-        elif Module.END in line:
-            skip_line = False
-        else:
-            if not skip_line:
-                module_block += line
-
-    return module_block
-
-def eval_command(args):
-    alt_system = None
-    add_software = list()
-    remove_software = list()
-    if args.alt_system:
-        alt_system = args.alt_system
-    if args.add_software:
-        add_software = args.add_software
-    if args.remove_software:
-        remove_software = args.remove_software
-    module_block = eval_module_directives(args.script, add_software, remove_software, alt_system)
-    if args.output:
-        with open(args.output, 'w') as f:
-            f.write(module_block)
-    else:
-        print(module_block, end='')
-   
-def generate_param_block(args):
-    partition = args.partition
-    if args.system == 'jureca':
-        gpus_pernode = 4
-    elif args.system == 'juwels':
-        gpus_pernode = 4
-    elif args.system == 'deep':
-        gpus_pernode = 1
-    else:
-        gpus_pernode = 1
-        
-    if args.software == 'ddp':
-        ntask_pernode = 1
-    else:
-        ntask_pernode = gpus_pernode
-        
-    param_block = '#!/bin/bash\n'
-    param_block += '#SBATCH --job-name=job\n' + '#SBATCH --output=job.out\n' + '#SBATCH --error=job.err\n'
-    param_block += '#SBATCH --account=' + str(args.account) + '\n'
-    param_block += '#SBATCH --partition=' + partition + '\n'
-    param_block += '#SBATCH --nodes=' + str(args.nnode) + '\n'
-    param_block += '#SBATCH --gpus-per-node=' + str(gpus_pernode) + '\n'
-    param_block += '#SBATCH --ntasks-per-node=' + str(ntask_pernode) + '\n'
-    param_block += '#SBATCH --cpus-per-task=1' + '\n'
-    param_block += '#SBATCH --exclusive' + '\n'
-    param_block += '#SBATCH --gres=gpu:' + str(gpus_pernode) + '\n\n'
-    
-    return param_block
-    
-def generate_env_block(system: str, software=list()):
-    #environment variable, export 1.CUDA_VISIBLE_DEVICES
-    #source python venv
-    repo = read_access_to_repository()
-    sw = software[0]  #for now!!!
-    env_block = ''
-    startscript = fetch_startscript(system, sw, repo)
-    lines = startscript.splitlines()
-    for line in lines:
-        tokens = line.split()
-        if len(tokens) > 1  and tokens[0] == 'export' and 'CUDA_VISIBLE_DEVICES' in tokens[1]:
-            env_block += line.strip()
-    
-    env_block += '\n'
-    if system == 'jureca' and sw == 'ddp':
-        env_block += 'source your/env_path/bin/activate\n'
-    elif system == 'deep' and sw == 'ddp':
-        env_block += 'source your/env_path/bin/activate\n'
-    elif system == 'juwels':
-        env_block += 'source your/env_path/bin/activate\n'
-    else:
-        env_block += 'source your/env_path/bin/activate\n'
-        
-    return env_block
-    
-def generate_launch_block(exe:str,system: str, software=list()):
-    system = system.lower()
-    repo = read_access_to_repository()
-    launch_block = '\n'
-    def keyword_exist(tokens=list()):
-        keywords=['srun','nnodes','nproc_per_node','rdzv']
-        result = False
-        for kw in keywords:
-            result = True in (kw in item for item in tokens)
-            if result == True:
-                break
-
-        return result
-        
-    for sw in software:
-        sw = sw.lower()
-        if sw == 'ddp':
-            startscript = fetch_startscript(system, sw, repo)        
-            lines = startscript.splitlines()        
-            for line in lines:
-                tokens = line.split()
-                if len(tokens)!=0 and '#' not in tokens[0] and keyword_exist(tokens):
-                    launch_block +=line + '\n'
-            launch_block += exe +'"'
-        else:    #!!!
-            launch_block += 'srun ' + exe
-    
-    #!!!launch_block += exe +'"'
-    launch_block += '\n'
-    return launch_block
-
-def gen_command(args):
-    module_block = generate_module_block(args.system, args.software)
-    
-    param_block = generate_param_block(args)
-    env_block = generate_env_block(args.system, args.software)
-    launch_block=generate_launch_block(args.exe,args.system, args.software)        
-    outp = param_block + module_block + env_block + launch_block
-    
-    if args.output:
-        with open(args.output, 'w') as f:
-            f.write(outp)
-    else:
-        print(outp, end='')
-
-def main():
-    
-    cli = argparse.ArgumentParser(prog=sys.argv[0])
-
-    sub = cli.add_subparsers()
-
-    cli_eval = sub.add_parser('eval', help='evaluate directives in a script')
-    cli_gene = sub.add_parser('gen', help='generate a module block')
-
-    cli_eval.set_defaults(which='eval')
-    cli_gene.set_defaults(which='gen')
-
-    cli_eval.add_argument('script', help='script containing directives to be evaluated')
-    cli_eval.add_argument('--add-software', help='add new software', nargs='+')
-    cli_eval.add_argument('--remove-software', help='remove software')
-    cli_eval.add_argument('--alt-system', help='use an alternative system')
-    cli_eval.add_argument('-o', '--output', help='write to file')
-
-    cli_gene.add_argument('-a','--account', default=' ', help='') #!!!
-    cli_gene.add_argument('--wall_time', default='00:10:00', help='')
-    cli_gene.add_argument('-n','--nnode', default=' ', help='fill in number of nodes')#!!!
-    cli_gene.add_argument('-e','--exe', default='exe.py', help='') #!!!
-
-    cli_gene.add_argument('-sys','--system', help='name of system')
-    cli_gene.add_argument('-par','--partition', help='name of partition')
-    cli_gene.add_argument('-sw','--software', help='list of software', nargs='+')
-    cli_gene.add_argument('-o', '--output', help='write to file')
-
-    args = cli.parse_args()
-    
-    if args.software[0] == 'Pytorch-DDP':
-        args.software[0] = 'ddp'
-    
-    args.software[0] = args.software[0].lower()
-    args.system = args.system.lower()
-
-    if args.system == None:  #!!!
-        args.system = socket.gethostname().split('.')[-1] 
-
-    if args.which == 'eval':
-        eval_command(args)
-    elif args.which == 'gen':
-        gen_command(args)
-
-    sys.exit(0)
-
-if __name__ == '__main__':
-    main()
diff --git a/README.md b/README.md
index 8b137891791fe96927ad78e64b0aad7bded08bdc..e12c122b6d6613affbf24ac544b70ee33ef82e7c 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,4 @@
+# **L**oad **A**I **M**odules, **E**nvironment and **C**ontainers API
 
+LAMEC is a medium for HPC developers and researchers to share their
+jobscripts and configurations of popular frameworks and libraries.
diff --git a/clang_payload.json b/clang_payload.json
new file mode 100644
index 0000000000000000000000000000000000000000..08b44df10e9f3fdb95065cd199a40e8351eb66ca
--- /dev/null
+++ b/clang_payload.json
@@ -0,0 +1,8 @@
+{
+    "system": "deep",
+    "software": "clang",
+    "executable": "main",
+    "partition": "dp-esb",
+    "job_name": "xyz",
+    "account": "clang_user"
+}
diff --git a/Python_CLI/examples/README.md b/examples/README.md
similarity index 100%
rename from Python_CLI/examples/README.md
rename to examples/README.md
diff --git a/Python_CLI/examples/create_example b/examples/create_example
similarity index 100%
rename from Python_CLI/examples/create_example
rename to examples/create_example
diff --git a/Python_CLI/examples/create_example.json b/examples/create_example.json
similarity index 60%
rename from Python_CLI/examples/create_example.json
rename to examples/create_example.json
index 2dcf4899bf69a004c6a12902069d015d7f7314c3..310ba13a7e1b7ef163c847b87794e4fe057cfc0f 100644
--- a/Python_CLI/examples/create_example.json
+++ b/examples/create_example.json
@@ -1,9 +1,8 @@
 {
-    "which": "create",
     "account": "johndoe@johndoe.com",
-    "time": "00:10:00",
     "nodes": "1",
+    "partition": "dp-esb",
     "system": "deep",
     "software": "ddp",
-    "exe": "test.py"
+    "executable": "test.py"
 }
diff --git a/Python_CLI/examples/mock_cli b/examples/mock_cli
similarity index 100%
rename from Python_CLI/examples/mock_cli
rename to examples/mock_cli
diff --git a/Python_CLI/examples/update_example b/examples/update_example
similarity index 100%
rename from Python_CLI/examples/update_example
rename to examples/update_example
diff --git a/Python_CLI/examples/update_example.json b/examples/update_example.json
similarity index 100%
rename from Python_CLI/examples/update_example.json
rename to examples/update_example.json
diff --git a/index.php b/index.php
new file mode 100644
index 0000000000000000000000000000000000000000..1e976691749d5ded8c4aed9b41b42f235f601535
--- /dev/null
+++ b/index.php
@@ -0,0 +1,416 @@
+<?php
+	// For testing purposes, output all PHP errors
+	ini_set('display_errors', 1);
+	ini_set('display_startup_errors', 1);
+	error_reporting(E_ALL);
+	
+	//
+	// Read configuration data from JSON file
+	// (TBD get output from LAMEC)
+	//
+	$filename = "lamec_config_new.json";
+	$config_json = file_get_contents($filename);
+	// Remove line breaks so the JSON can be embedded as a string in the JS code
+	$config_json_str = json_encode($config_json);
+?>
+<!doctype html>
+<html>
+<head>
+	<meta charset="utf-8">
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<title>Load AI Modules, Environments, and Containers (LAMEC) API</title>
+	<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
+	<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>
+	<script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
+	
+	<script>
+		window.onload = function() {
+			// All configuration settings from LAMEC
+			var json_config = JSON.parse(<?=$config_json_str?>);
+			
+			// Default html container name for fields
+			defaultFieldPosition = $("#formFields")
+
+  		  	//
+		 	// Set up the form dynamically with all fields from the
+			// LAMEC configuration
+			// 
+		 	$.each(json_config.fields, function(key, field) {
+				//
+				// Add the header for the field, containing the field name
+				// and a description of the field
+				//
+				addFieldHeaderElement(field.name, field.desc);
+				
+				//
+				// Add an empty field element as specified in the JSON data.
+				// Check for the special case where field type is string, but there is
+				// a restriction of type 'option', in that case the field is SELECT.
+				//
+				fieldType = field.type;
+				if(fieldType == 'string' && field.restriction && field.restriction.type == 'option') {
+					fieldType = 'select';
+				}
+				addFieldElement(field.name, fieldType);
+				
+				//
+				// Process the settings for the field that was created above and add
+				// the settings as a data attribute to each form field for later use.
+				//
+				if(field.restriction) {
+					$("#" + field.name).data("restriction", field.restriction);
+				}
+				if(field.scope) {
+					$("#" + field.name).data("scope", field.scope);
+				}
+				if(field.default) {
+					$("#" + field.name).data("default", field.default);
+				}
+				
+				//
+				// Check if there is documentation available for this field, and if there is then
+				// add it as a data attribute to the relevant form field for later reference,
+				// then add the html element.
+				//
+				if(json_config.documentation && json_config.documentation[field.name]) {
+					$("#" + field.name).data("documentation", json_config.documentation[field.name]);
+					addDocumentationElement(field.name);
+				}
+				
+				//
+				// Process this field's data and update the form element accordingly,
+				// taking into account all restrictions, dependencies and scope.
+				//
+				setFieldAttributes(field.name);
+			});
+			
+			
+			//
+			// Adds the html header for a field.
+			//
+			function addFieldHeaderElement(fieldName, fieldDescription, fieldPosition = defaultFieldPosition) {
+				new_field = '<div class="mt-4" ';
+				new_field += 'id="' + fieldName + 'Header" ';
+				new_field += '><label for="';
+				new_field += fieldName;
+				new_field += '" class="form-label"><b>';
+				new_field += fieldName[0].toUpperCase() + fieldName.slice(1).replace(/_/g, ' ');
+				new_field += '</b></label><div id="';
+				new_field += fieldName;
+				new_field += 'Help" class="form-text mt-0 mb-1">';
+				new_field += fieldDescription;
+				new_field += '</div></div>';
+				fieldPosition.append(new_field);
+			}
+
+			//
+			// Adds an empty field element.
+			//
+			function addFieldElement(fieldName, fieldType, fieldPosition = defaultFieldPosition) {
+				new_field = '<div class="my-0" ';
+				new_field += 'id="' + fieldName + 'Element">';
+				if(fieldType == 'select') {
+					new_field += '<select class="form-select" ';
+				}
+				else if(fieldType == 'number') {
+					new_field += '<input class="form-control" type="number" ';
+				}
+				else if(fieldType == 'string') {
+					new_field += '<input class="form-control" type="text" ';
+				}
+
+				new_field += 'id="' + fieldName + '" ';
+				new_field += 'name="' + fieldName + '" ';
+				new_field += 'aria-describedby="' + fieldName + 'Help" >';
+
+				if(fieldType == 'select') {
+					new_field += '</select>';
+				}
+				new_field += '</div>';
+				fieldPosition.append(new_field);
+			}
+
+			//
+			// Add an html documentation element.
+			//
+			function addDocumentationElement(fieldName, fieldPosition = defaultFieldPosition) {
+				new_field = '<div class="mt-1 mb-0" id="' + fieldName + '-documentation">';
+				new_field += '<small class="text-body-secondary">';
+				new_field += '<span id="' + fieldName + '-name"></span> ';
+				new_field += '<a id="' + fieldName + '-documentation-url" href="#" target="_blank">documentation</a> ';
+				new_field += '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="currentColor" class="bi bi-box-arrow-up-right" viewBox="0 0 16 16">';
+				new_field += '<path fill-rule="evenodd" d="M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5z"/>';
+				new_field += '<path fill-rule="evenodd" d="M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0v-5z"/>';
+				new_field += '</svg></small></div>';
+				fieldPosition.append(new_field);
+			}
+
+			//
+			// Process the field's data and update the form element accordingly,
+			// taking into account all restrictions, dependencies and scope.
+			//
+			function setFieldAttributes(fieldName) {
+				fieldElement = $("#" + fieldName);
+				
+				if(fieldElement.data("scope")) {
+					//
+					// The field has a specific scope, show or hide
+					// the field accordingly.
+					//
+					if(isFieldWithinScope(fieldElement.data("scope"))) {
+						$("#" + fieldName + "Header").show();
+						$("#" + fieldName + "Element").show();
+					}
+					else {
+						$("#" + fieldName + "Header").hide();
+						$("#" + fieldName + "Element").hide();						
+					}
+				}
+
+				restriction = fieldElement.data("restriction");
+				if(restriction) {
+					//
+					// Process the field's restrictions.
+					//
+					restrictionType = restriction.type;
+					
+					//
+					// The field is a select field, delete all options present
+					// and then repopulate the field, taking into account restrictions
+					// and dependencies.
+					//
+					if(restrictionType == 'option') {
+						$("#" + fieldName).length = 0;
+					}
+					
+					if(restriction.value.depends_on) {
+						dependantFields = restriction.value.depends_on.fields;
+						dependantResolution = restriction.value.depends_on.resolution;
+						
+						$.each(dependantResolution, function(index, resolution) {
+							// Track the number of resolutions that are met
+							resolutionCount = 0;
+							for(i=0; i<resolution.key.length; i++) {
+								if(resolution.key[i] == document.getElementById(dependantFields[i]).value) {
+									// one resolution met
+									resolutionCount++;
+								}
+								else {
+									// a resolution not met, skip to next
+									// continue
+									return(true);
+								}
+							}
+
+							if(resolutionCount == i) {
+								// All dependant resolutions met
+								if(restrictionType == 'range') {
+									fieldElement.attr("min", resolution.value[0]);
+									fieldElement.attr("max", resolution.value[1]);
+									fieldElement.val(resolution.value[0]);
+								}
+								else if(restrictionType == 'option') {
+									populateFieldElementOptions(fieldName, resolution.value);
+								}
+								// As all resolutions were met, no need to search further.
+								// break
+								return(false);
+							}
+						});
+					}
+					else {
+						if(restrictionType == 'option') {
+							populateFieldElementOptions(fieldName, restriction.value);
+						}
+						else if (restrictionType == 'range'){
+							fieldElement.attr("min", restriction.value[0]);
+							fieldElement.attr("max", restriction.value[1]);
+							fieldElement.val(restriction.value[0]);
+						}
+					}
+				}
+				
+				// Set defaut field value, if defined.
+				if(fieldElement.data("default")) {
+					fieldElement.val(fieldElement.data("default"));
+				}
+				
+				if(fieldElement.data("documentation")) {
+					// Show documentation if selected option has documentation available
+					updateDocumentation(fieldName);
+				}
+			}
+
+			//
+			// Method to update link to documentation for selected option
+			//
+			function updateDocumentation(fieldName) {
+				let documentationFound = false;
+				$.each($("#" + fieldName).data("documentation"), function(key, val) {
+					if(document.getElementById(fieldName).value == key) {
+						$("#" + fieldName + "-name").text(key);
+						$("#" + fieldName + "-documentation-url").attr("href", val);
+						documentationFound = true;
+						// break
+						return(false);
+					}
+				});
+				if(documentationFound) {
+					$("#" + fieldName + "-documentation").show();
+				}
+				else {
+					$("#" + fieldName + "-documentation").hide();
+				}
+			}
+			
+			//
+			// Method to pupolate the options of a select element
+			//
+			function populateFieldElementOptions(fieldName, fieldValues) {
+				sel_element = document.getElementById(fieldName);
+				sel_element.length = 0;
+				$.each(fieldValues, function(key, val) {
+					sel_element.options[sel_element.options.length] = new Option(val, val);
+				});
+			}
+
+			//
+			// Method to check if a field is within scope.
+			//
+  		  	function isFieldWithinScope(fieldScope) {
+				let isWithinScope = false;
+				if(fieldScope) {
+					$.each(fieldScope, function(key, scope) {
+						$.each(scope.values, function(key, vals) {
+							let matchedVals = 0;
+							for(i = 0; i < vals.length; i++) {
+								if(vals[i] == document.getElementById(scope.fields[i]).value) {
+									matchedVals++;
+								}
+								else {
+									continue;
+								}
+							}
+							if(matchedVals == vals.length) {
+								isWithinScope = true;
+								return(false);
+							}
+						})
+					});
+					return(isWithinScope);
+				}
+				return(false);
+  		  	}
+			
+			//
+			// Catch all changes to select elements and update other fields accordingly,
+			// based on the rules of dependencies, scope and available documentation
+			//
+			$(".form-select").on('change', function() {
+				changedField = this.name;
+
+				// If field has documentation data, then it needs updating
+				if($("#" + changedField).data("documentation")) {
+					updateDocumentation(changedField);
+				}
+
+			 	$.each(json_config.fields, function(key, field) {
+					if(field.scope) {
+						setFieldAttributes(field.name);
+					}
+					else if(field.restriction && field.restriction.value && field.restriction.value.depends_on) {
+						$.each(field.restriction.value.depends_on.fields, function(key, val) {
+							if(val == changedField) {
+								// Update the field, according to set dependencies
+								setFieldAttributes(field.name);
+							}
+						});
+					}
+				});
+				
+			});
+		}
+	</script>
+	<style>
+		.form-control::placeholder {
+			color: var(--bs-dark-bg-subtle);
+		}
+	</style>
+</head>
+<body>
+	<nav class="navbar">
+	    <div class="container justify-content-center mt-3">
+	        <a class="navbar-brand" href="https://www.coe-raise.eu">
+	            <img src="/2021-01-Logo-RGB-RAISE_standard.png"
+	                 height="160"
+	                 alt="RAISE Logo"
+	                 loading="lazy" />
+	        </a>
+	    </div>
+	</nav>
+	<div class="container my-5" style="max-width: 980px;">
+		<div class="container justify-content-center">
+			<h1 class="display-6" style="text-align:center; color: rgb(4,132,196);">Load AI Modules, Environments, and Containers (LAMEC) API</h1>
+		</div>
+		<br><br>
+		<?php
+			if(isset( $_POST['Submit'])) {
+				// Convert JSON confid settings to array
+				// $config = json_decode($config_json, true);
+				// Can be used if user input has to be verified
+
+
+				//
+				// Create JSON payload to pass on to LAMEC
+				//
+				$payload = array();
+				foreach($_POST as $key => $val) {
+					if($val != "") {
+						$payload[$key] = $val;
+					}
+				}
+				$json_payload = json_encode($payload);
+				
+				// putenv('PYTHONPATH="/var/www/apps/jsc/lamec"');
+				$Phrase = "./lamec '$json_payload'";
+				// $command = escapeshellcmd($Phrase);
+				$output = shell_exec($Phrase);
+		?>
+		<div class="mb-3">
+			<label for="output" class="form-label"><b>Your start script:</b></label>
+			<textarea rows="20" class="form-control"><?=$output?></textarea>
+		</div>		
+		<?php
+			}
+			else {
+		?>
+		<form action="index.php", method="post">
+			<div id="formFields"></div>
+			<button type="submit" name="Submit" class="btn btn-primary mt-5">Create start script</button>
+		</form> 
+		<?php
+			}
+		?>
+		<br>
+	</div>
+	<div class="container-fluid" style="background-color: rgb(158,196,243);">
+		<div class="container justify-content-center" style="max-width: 980px; text-align:center;">
+			<!-- If we want to show the menu links in the footer...
+			<ul class="nav justify-content-center pt-1 pb-3 mb-3">
+				<li class="nav-item px-4">
+					<a href="https://www.coe-raise.eu/contact" class="nav-link text-body-secondary">Contact</a>
+				</li>
+				<li class="nav-item px-4">
+					<a href="https://www.coe-raise.eu/imprint" class="nav-link text-body-secondary">Imprint</a>
+				</li>
+				<li class="nav-item px-4">
+					<a href="https://www.coe-raise.eu/privacy-policy" class="nav-link text-body-secondary">Privacy Policy</a>
+				</li>
+			</ul>
+			-->
+			<div class="py-3">The CoE RAISE project have received funding from the European Union’s Horizon 2020 – Research and Innovation Framework Programme H2020-INFRAEDI-2019-1 under grant agreement no. 951733</div>
+			<div class="py-2">&copy;2021 CoE RAISE.</div>
+		</div>
+	</div>
+</body>
+</html>
diff --git a/lamec b/lamec
new file mode 100755
index 0000000000000000000000000000000000000000..9a44603560d663c346400a52d8c0358a88f16dbf
--- /dev/null
+++ b/lamec
@@ -0,0 +1,228 @@
+#!/usr/bin/env python3
+
+import sys
+import json
+import os
+
+scriptpath = f'{sys.path[0]}/scripts'
+
+def get_placeholders(template):
+    placeholders = []
+    pattern = re.compile(r'%.[a-zA-Z0-9_:-]+%')
+    for x in re.findall(pattern, template):
+        p = x.replace('%', '')
+        if p not in placeholders:
+            placeholders.append(p)
+    return placeholders
+
+def get_template(system, software):
+    template_path = f'{scriptpath}/{system}/{software}/template.sh'
+    with open(template_path, 'r') as f:
+        return f.read()
+
+def expand_template(data):
+    template = get_template(data['environment']['system'],
+            data['environment']['software'])
+    for key in data['environment']:
+        template = template.replace(f'%{key}%', data['environment'][key])
+    return template
+
+def get_configuration(system, software):
+    configpath = f'{scriptpath}/{system}/{software}/config.json'
+    sysinfopath = f'{scriptpath}/{system}/sysinfo.json'
+
+    try:
+        with open(configpath, 'r') as f:
+            data = json.load(f)
+    except:
+        data = {'environment': {}}
+    data['environment']['system'] = system
+    data['environment']['software'] = software
+
+    try:
+        with open(sysinfopath, 'r') as f:
+            data['sysinfo'] = json.load(f)
+    except:
+        pass
+
+    placeholders = get_placeholders(get_template(system, software))
+    for p in placeholders:
+        if p not in data['environment']:
+            data['environment'][p] = None
+    return data
+
+def get_setup(request):
+    config = get_configuration(request['environment']['system'],
+            request['environment']['software'])
+    config['environment'].update(request['environment'])
+    config['jobscript'] = expand_template(config)
+    del config['sysinfo']
+    del config['environment']
+    return config
+class Module:
+    """
+    Global variables
+    """
+    BEGIN = '#MODULES BEGIN '
+    END = '#MODULES END'
+
+def new_module_commands():
+    return {'purge': set(), 'use': set(), 'modules': list()}
+
+def parse_module_commands(args, module_commands):
+
+    def is_module_keyword(token: str):
+        return token == 'module' or token == 'ml'
+
+    lines = args['startscript'].splitlines()
+    for line in lines:
+        tokens = line.split()
+        if len(tokens) != 0 and is_module_keyword(tokens[0]):
+            if 'purge' in tokens:
+                module_commands['purge'].add(line.strip())
+            elif 'use' in tokens:
+                module_commands['use'].add(line.strip())
+            else:
+                for t in tokens:
+                    if not is_module_keyword(t):
+                        if t not in module_commands['modules']:
+                            module_commands['modules'].append(t)
+
+def generate_module_statements(args):
+    module_commands = new_module_commands()
+
+    parse_module_commands(args, module_commands)
+
+    module_statements = ''
+    for purge in module_commands['purge']:
+        module_statements += (purge + '\n')
+
+    for use in module_commands['use']:
+        module_statements += (use + '\n')
+
+    module_statements += 'ml'
+    for module in module_commands['modules']:
+        module_statements += (' ' + module)
+    module_statements += '\n'
+
+    return module_statements
+
+def generate_module_block(args):
+    module_block = Module.BEGIN
+    module_block += (args['system'] + ' ' + args['software'] + '\n')
+    module_block += generate_module_statements(args)
+    module_block += (Module.END + '\n\n')
+    return module_block
+
+def generate_param_block(args):    
+    if args['system'] == 'jureca':
+        partition = 'dc-gpu'
+        gpus_pernode = 4
+    elif args['system'] == 'juwels':
+        partition = 'dc-gpu'
+        gpus_pernode = 4
+    elif args['system'] == 'deep':
+        partition = 'dc-gpu'
+        gpus_pernode = 1
+    else:
+        partition = ''
+        gpus_pernode = 1
+        
+    if args['software'] == 'ddp':
+        ntask_pernode = 1
+    else:
+        ntask_pernode = gpus_pernode
+        
+    param_block = '#!/bin/bash\n'
+    param_block += ('#SBATCH --job-name=job\n'
+            + '#SBATCH --output=job.out\n'
+            + '#SBATCH --error=job.err\n')
+    param_block += '#SBATCH --account=' + str(args['account']) + '\n'
+    param_block += '#SBATCH --partition=' + partition + '\n'
+    param_block += '#SBATCH --nodes=' + str(args['nodes']) + '\n'
+    param_block += '#SBATCH --gpus-per-node=' + str(gpus_pernode) + '\n'
+    param_block += '#SBATCH --ntasks-per-node=' + str(ntask_pernode) + '\n'
+    param_block += '#SBATCH --cpus-per-task=1' + '\n'
+    param_block += '#SBATCH --exclusive' + '\n'
+    param_block += '#SBATCH --gres=gpu:' + str(gpus_pernode) + '\n\n'
+    
+    return param_block
+    
+def generate_env_block(args):
+    #environment variable, export 1.CUDA_VISIBLE_DEVICES
+    #source python venv
+    env_block = ''
+    lines = args['startscript'].splitlines()
+    for line in lines:
+        tokens = line.split()
+        if (len(tokens) > 1  and tokens[0] == 'export'
+                and 'CUDA_VISIBLE_DEVICES' in tokens[1]):
+            env_block += line.strip()
+    
+    env_block += '\n'
+    if args['system'] == 'jureca' and args['software'] == 'ddp':
+        env_block += 'source your/env_path/bin/activate\n'
+    elif args['system'] == 'deep' and args['software'] == 'ddp':
+        env_block += 'source your/env_path/bin/activate\n'
+    elif args['system'] == 'juwels':
+        env_block += 'source your/env_path/bin/activate\n'    
+    else:
+        env_block += 'source your/env_path/bin/activate\n'
+        
+    return env_block
+    
+def generate_launch_block(args):
+    launch_block = '\n'
+    def keyword_exist(tokens=list()):
+        keywords=['srun','nnodes','nproc_per_node','rdzv']
+        result = False
+        for kw in keywords:
+            result = True in (kw in item for item in tokens)
+            if result == True:
+                break
+
+        return result
+        
+    if args['software'] == 'ddp':
+        lines = args['startscript'].splitlines()        
+        for line in lines:
+            tokens = line.split()
+            if len(tokens)!=0 and '#' not in tokens[0] and keyword_exist(tokens):
+                launch_block +=line + '\n'
+    launch_block += (args['executable'] +'"')
+    launch_block += '\n'
+    return launch_block
+
+def parse(args):
+    param_block = generate_param_block(args)
+    module_block = generate_module_block(args)
+    env_block = generate_env_block(args)
+    launch_block = generate_launch_block(args)
+    outp = param_block + module_block + env_block + launch_block
+    print(outp, end='')
+
+def expand(args):
+    for key in args:
+        args['template'] = args['template'].replace(f'%{key}%', args[key])
+    return args['template']
+
+def main():
+    if len(sys.argv) == 1:
+        args = json.load(sys.stdin)
+    else:
+        args = json.loads(sys.argv[1])
+
+    path = os.path.join('scripts', f"{args['system']}_{args['software']}")
+    with open(os.path.join(path, 'lamec.json'), 'r') as f:
+        config = json.load(f)
+        if 'startscript' in config:
+            with open(os.path.join(path, config['startscript']), 'r') as f:
+                args['startscript'] = f.read()
+            parse(args)
+        elif 'template' in config:
+            with open(os.path.join(path, config['template']), 'r') as f:
+                args['template'] = f.read()
+            print(expand(args), end='')
+
+if __name__ == '__main__':
+    main()
diff --git a/lamec_config_new.json b/lamec_config_new.json
new file mode 100644
index 0000000000000000000000000000000000000000..8f62c02165e863f793039399f573dd99dd1cdc60
--- /dev/null
+++ b/lamec_config_new.json
@@ -0,0 +1,304 @@
+{
+    "fields": [
+        {
+            "name": "system",
+            "type": "string",
+            "desc": "Select the computing system on which you want to submit your job.",
+            "restriction": {
+                "type": "option",
+                "value": [
+                    "deep",
+                    "jureca",
+                    "juwels",
+                    "lumi",
+                    "vega"
+                ]
+            }
+        },
+        {
+            "name": "software",
+            "type": "string",
+            "desc": "Select the software that your job depends on.",
+            "restriction": {
+                "type": "option",
+                "value": {
+                    "depends_on": {
+                        "fields": ["system"],
+                        "resolution": [
+                            {
+                                "key": ["deep"],
+                                "value": [
+                                    "ddp",
+                                    "deepspeed",
+                                    "heat",
+                                    "horovod",
+                                    "tensorflow",
+                                    "clang"
+                                ]
+                            },
+                            {
+                                "key": ["jureca"],
+                                "value": [
+                                    "ddp",
+                                    "deepspeed",
+                                    "graphcore",
+                                    "heat",
+                                    "horovod",
+                                    "libtorch"
+                                ]
+                            },
+                            {
+                                "key": ["lumi"],
+                                "value": ["ddp"]
+                            },
+                            {
+                                "key": ["vega"],
+                                "value": ["basilisk"]
+                            }
+                        ]
+                    }
+                }
+            }
+        },
+        {
+            "name": "partition",
+            "desc": "Specify the partition for your job.",
+            "type": "string",
+            "restriction": {
+                "type": ["option"],
+                "value": {
+                    "depends_on": {
+                        "fields": ["system"],
+                        "resolution": [
+                            {
+                                "key": ["deep"],
+                                "value": [
+                                    "dp-esb",
+                                    "dp-dam"
+                                ]
+                            },
+                            {
+                                "key": ["jureca"],
+                                "value": [
+                                    "dc-cpu",
+                                    "dc-gpu",
+                                    "dc-cpu-bigmem",
+                                    "dc-gpu-devel",
+                                    "dc-cpu-devel",
+                                    "dc-gpu-devel"
+                                ]
+                            },
+                            {
+                                "key": ["juwels"],
+                                "value": [
+                                    "batch",
+                                    "mem192",
+                                    "devel",
+                                    "gpus",
+                                    "develgpus",
+                                    "booster",
+                                    "develbooster"
+                                ]
+                            },
+                            {
+                                "key": ["lumi"],
+                                "value": [
+                                    "standard-g",
+                                    "standard",
+                                    "dev-g",
+                                    "debug",
+                                    "small-g",
+                                    "small",
+                                    "largemem"
+                                ]
+                            },
+                            {
+                                "key": ["vega"],
+                                "value": [
+                                    "dev",
+                                    "cpu",
+                                    "longcpu",
+                                    "gpu",
+                                    "largemem"
+                                ]
+                            }
+                        ]
+                    }
+                }
+            }
+        },
+        {
+            "name": "nodes",
+            "desc": "Specify the number of nodes.",
+            "type": "number",
+            "restriction": {
+                "type": ["range"],
+                "value": {
+                    "depends_on": {
+                        "fields": ["system", "partition"],
+                        "resolution": [
+                            {
+                                "key": ["deep", "dp-esb"],
+                                "value": [1, 75]
+                            },
+                            {
+                                "key": ["deep", "dp-dam"],
+                                "value": [1, 16]
+                            },
+                            {
+                                "key": ["jureca", "dc-cpu"],
+                                "value": [1, 128]
+                            },
+                            {
+                                "key": ["jureca", "dc-gpu"],
+                                "value": [1, 24]
+                            },
+                            {
+                                "key": ["jureca", "dc-cpu-bigmem"],
+                                "value": [1, 48]
+                            },
+                            {
+                                "key": ["jureca", "dc-cpu-devel"],
+                                "value": [1, 4]
+                            },
+                            {
+                                "key": ["jureca", "dc-gpu-devel"],
+                                "value": [1, 4]
+                            },
+                            {
+                                "key": ["juwels", "batch"],
+                                "value": [1, 1024]
+                            },
+                            {
+                                "key": ["juwels", "mem192"],
+                                "value": [1, 64]
+                            },
+                            {
+                                "key": ["juwels", "devel"],
+                                "value": [1, 8]
+                            },
+                            {
+                                "key": ["juwels", "gpus"],
+                                "value": [1, 46]
+                            },
+                            {
+                                "key": ["juwels", "develgpus"],
+                                "value": [1, 2]
+                            },
+                            {
+                                "key": ["juwels", "booster"],
+                                "value": [1, 384]
+                            },
+                            {
+                                "key": ["juwels", "develbooster"],
+                                "value": [1, 4]
+                            },
+                            {
+                                "key": ["lumi", "standard-g"],
+                                "value": [1, 1024]
+                            },
+                            {
+                                "key": ["lumi", "standard"],
+                                "value": [1, 512]
+                            },
+                            {
+                                "key": ["lumi", "dev-g"],
+                                "value": [1, 32]
+                            },
+                            {
+                                "key": ["lumi", "debug"],
+                                "value": [1, 4]
+                            },
+                            {
+                                "key": ["lumi", "small-g"],
+                                "value": [1, 4]
+                            },
+                            {
+                                "key": ["lumi", "small"],
+                                "value": [1, 4]
+                            },
+                            {
+                                "key": ["lumi", "largemem"],
+                                "value": [1, 1]
+                            },
+                            {
+                                "key": ["vega", "dev"],
+                                "value": [1, 8]
+                            },
+                            {
+                                "key": ["vega", "cpu"],
+                                "value": [1, 960]
+                            },
+                            {
+                                "key": ["vega", "longcpu"],
+                                "value": [1, 6]
+                            },
+                            {
+                                "key": ["vega", "gpu"],
+                                "value": [1, 60]
+                            },
+                            {
+                                "key": ["vega", "largemem"],
+                                "value": [1, 192]
+                            }
+                        ]
+                    }
+                }
+            },
+            "default": 1
+        },
+        {
+            "name": "account",
+            "type": "string",
+            "desc": "Specify the account for your job."
+        },
+        {
+            "name": "executable",
+            "type": "string",
+            "desc": "Specify an executable for your job.",
+            "default": "app"
+        },
+        {
+            "name": "dummy1",
+            "type": "string",
+            "desc": "Dummy field for testing, only shown when system is 'deep'.",
+            "scope": [
+                {
+                    "fields": ["system"],
+                    "values": [
+                        ["deep"]
+                    ]
+                }
+            ]
+        },
+        {
+            "name": "dummy2",
+            "type": "string",
+            "desc": "Only shown when system is 'jureca' or 'deep' and software is 'ddp'.",
+            "scope": [
+                {
+                    "fields": ["system", "software"],
+                    "values": [
+                        ["deep", "ddp"],
+                        ["jureca", "ddp"]
+                    ]
+                }
+            ]
+        }
+    ],
+    "documentation": {
+        "system": {
+            "jureca": "https://apps.fz-juelich.de/jsc/hps/jureca/index.html",
+            "deep": "https://deeptrac.zam.kfa-juelich.de:8443/trac/wiki/Public/User_Guide",
+            "juwels": "https://apps.fz-juelich.de/jsc/hps/juwels/index.html",
+            "lumi": "https://docs.lumi-supercomputer.eu/software/",
+            "vega": "https://doc.vega.izum.si"
+        },
+        "software": {
+            "ddp": "https://pytorch.org/tutorials/intermediate/ddp_tutorial.html",
+            "horovod": "https://horovod.readthedocs.io/en/stable/",
+            "deepspeed": "https://deepspeed.readthedocs.io/en/latest/",
+            "heat": "https://heat.readthedocs.io/en/stable/"
+        }
+    }
+}
diff --git a/scripts/Vega_ Basilisk/.gitkeep b/scripts/Vega_ Basilisk/.gitkeep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/scripts/CTEAMD_DDP/DDP_startscript.sh b/scripts/cteamd_ddp/DDP_startscript.sh
similarity index 100%
rename from scripts/CTEAMD_DDP/DDP_startscript.sh
rename to scripts/cteamd_ddp/DDP_startscript.sh
diff --git a/scripts/CTEAMD_DDP/README.md b/scripts/cteamd_ddp/README.md
similarity index 100%
rename from scripts/CTEAMD_DDP/README.md
rename to scripts/cteamd_ddp/README.md
diff --git a/scripts/CTEAMD_DDP/createENV.sh b/scripts/cteamd_ddp/createENV.sh
similarity index 100%
rename from scripts/CTEAMD_DDP/createENV.sh
rename to scripts/cteamd_ddp/createENV.sh
diff --git a/scripts/CTEAMD_DDP/installWheels.sh b/scripts/cteamd_ddp/installWheels.sh
similarity index 100%
rename from scripts/CTEAMD_DDP/installWheels.sh
rename to scripts/cteamd_ddp/installWheels.sh
diff --git a/scripts/cteamd_ddp/lamec.json b/scripts/cteamd_ddp/lamec.json
new file mode 100644
index 0000000000000000000000000000000000000000..b01e2a42779523237355d264b672d08662d78d79
--- /dev/null
+++ b/scripts/cteamd_ddp/lamec.json
@@ -0,0 +1 @@
+{"startscript": "DDP_startscript.sh"}
diff --git a/scripts/CTEAMD_DDP/reqs.txt b/scripts/cteamd_ddp/reqs.txt
similarity index 100%
rename from scripts/CTEAMD_DDP/reqs.txt
rename to scripts/cteamd_ddp/reqs.txt
diff --git a/scripts/CTEAMD_DeepSpeed/DS_config.json b/scripts/cteamd_deepspeed/DS_config.json
similarity index 100%
rename from scripts/CTEAMD_DeepSpeed/DS_config.json
rename to scripts/cteamd_deepspeed/DS_config.json
diff --git a/scripts/CTEAMD_DeepSpeed/DS_startscript.sh b/scripts/cteamd_deepspeed/DS_startscript.sh
similarity index 100%
rename from scripts/CTEAMD_DeepSpeed/DS_startscript.sh
rename to scripts/cteamd_deepspeed/DS_startscript.sh
diff --git a/scripts/CTEAMD_DeepSpeed/README.md b/scripts/cteamd_deepspeed/README.md
similarity index 100%
rename from scripts/CTEAMD_DeepSpeed/README.md
rename to scripts/cteamd_deepspeed/README.md
diff --git a/scripts/CTEAMD_DeepSpeed/createENV.sh b/scripts/cteamd_deepspeed/createENV.sh
similarity index 100%
rename from scripts/CTEAMD_DeepSpeed/createENV.sh
rename to scripts/cteamd_deepspeed/createENV.sh
diff --git a/scripts/CTEAMD_DeepSpeed/installWheels.sh b/scripts/cteamd_deepspeed/installWheels.sh
similarity index 100%
rename from scripts/CTEAMD_DeepSpeed/installWheels.sh
rename to scripts/cteamd_deepspeed/installWheels.sh
diff --git a/scripts/cteamd_deepspeed/lamec.json b/scripts/cteamd_deepspeed/lamec.json
new file mode 100644
index 0000000000000000000000000000000000000000..3e0d85e0a5b7492fde2b3c0322f2aaf6e278f440
--- /dev/null
+++ b/scripts/cteamd_deepspeed/lamec.json
@@ -0,0 +1 @@
+{"startscript": "DS_startscript.sh"}
\ No newline at end of file
diff --git a/scripts/CTEAMD_DeepSpeed/reqs.txt b/scripts/cteamd_deepspeed/reqs.txt
similarity index 100%
rename from scripts/CTEAMD_DeepSpeed/reqs.txt
rename to scripts/cteamd_deepspeed/reqs.txt
diff --git a/scripts/CTEAMD_HeAT/HeAT_startscript.sh b/scripts/cteamd_heat/HeAT_startscript.sh
similarity index 100%
rename from scripts/CTEAMD_HeAT/HeAT_startscript.sh
rename to scripts/cteamd_heat/HeAT_startscript.sh
diff --git a/scripts/CTEAMD_HeAT/README.md b/scripts/cteamd_heat/README.md
similarity index 100%
rename from scripts/CTEAMD_HeAT/README.md
rename to scripts/cteamd_heat/README.md
diff --git a/scripts/CTEAMD_HeAT/createENV.sh b/scripts/cteamd_heat/createENV.sh
similarity index 100%
rename from scripts/CTEAMD_HeAT/createENV.sh
rename to scripts/cteamd_heat/createENV.sh
diff --git a/scripts/CTEAMD_HeAT/installWheels.sh b/scripts/cteamd_heat/installWheels.sh
similarity index 100%
rename from scripts/CTEAMD_HeAT/installWheels.sh
rename to scripts/cteamd_heat/installWheels.sh
diff --git a/scripts/cteamd_heat/lamec.json b/scripts/cteamd_heat/lamec.json
new file mode 100644
index 0000000000000000000000000000000000000000..b86e1f1ef931afeb1d76b2d40e9086fb3b6383f9
--- /dev/null
+++ b/scripts/cteamd_heat/lamec.json
@@ -0,0 +1 @@
+{"startscript": "HeAT_startscript.sh"}
\ No newline at end of file
diff --git a/scripts/CTEAMD_HeAT/reqs.txt b/scripts/cteamd_heat/reqs.txt
similarity index 100%
rename from scripts/CTEAMD_HeAT/reqs.txt
rename to scripts/cteamd_heat/reqs.txt
diff --git a/scripts/CTEAMD_Horovod/Hor_startscript.sh b/scripts/cteamd_horovod/Hor_startscript.sh
similarity index 100%
rename from scripts/CTEAMD_Horovod/Hor_startscript.sh
rename to scripts/cteamd_horovod/Hor_startscript.sh
diff --git a/scripts/CTEAMD_Horovod/README.md b/scripts/cteamd_horovod/README.md
similarity index 100%
rename from scripts/CTEAMD_Horovod/README.md
rename to scripts/cteamd_horovod/README.md
diff --git a/scripts/CTEAMD_Horovod/createENV.sh b/scripts/cteamd_horovod/createENV.sh
similarity index 100%
rename from scripts/CTEAMD_Horovod/createENV.sh
rename to scripts/cteamd_horovod/createENV.sh
diff --git a/scripts/CTEAMD_Horovod/installWheels.sh b/scripts/cteamd_horovod/installWheels.sh
similarity index 100%
rename from scripts/CTEAMD_Horovod/installWheels.sh
rename to scripts/cteamd_horovod/installWheels.sh
diff --git a/scripts/cteamd_horovod/lamec.json b/scripts/cteamd_horovod/lamec.json
new file mode 100644
index 0000000000000000000000000000000000000000..89f780bbf3e44e34add22eb330141a39fcd6aadd
--- /dev/null
+++ b/scripts/cteamd_horovod/lamec.json
@@ -0,0 +1 @@
+{"startscript": "Hor_startscript.sh"}
\ No newline at end of file
diff --git a/scripts/CTEAMD_Horovod/reqs.txt b/scripts/cteamd_horovod/reqs.txt
similarity index 100%
rename from scripts/CTEAMD_Horovod/reqs.txt
rename to scripts/cteamd_horovod/reqs.txt
diff --git a/Python_CLI/.gitkeep b/scripts/cyclone_basilisk/.gitkeep
similarity index 100%
rename from Python_CLI/.gitkeep
rename to scripts/cyclone_basilisk/.gitkeep
diff --git a/scripts/Cyclone_basilisk/basilisk_cfd.sh b/scripts/cyclone_basilisk/basilisk_cfd.sh
similarity index 100%
rename from scripts/Cyclone_basilisk/basilisk_cfd.sh
rename to scripts/cyclone_basilisk/basilisk_cfd.sh
diff --git a/scripts/cyclone_basilisk/lamec.json b/scripts/cyclone_basilisk/lamec.json
new file mode 100644
index 0000000000000000000000000000000000000000..1064dc7fa865bf41c2bb546218a75c84d3972532
--- /dev/null
+++ b/scripts/cyclone_basilisk/lamec.json
@@ -0,0 +1 @@
+{"startscript": "basilisk_cfd.sh"}
\ No newline at end of file
diff --git a/scripts/Cyclone_Horovod/.gitkeep b/scripts/cyclone_horovod/.gitkeep
similarity index 100%
rename from scripts/Cyclone_Horovod/.gitkeep
rename to scripts/cyclone_horovod/.gitkeep
diff --git a/scripts/Cyclone_Horovod/FNO_launch.sh b/scripts/cyclone_horovod/FNO_launch.sh
similarity index 100%
rename from scripts/Cyclone_Horovod/FNO_launch.sh
rename to scripts/cyclone_horovod/FNO_launch.sh
diff --git a/scripts/cyclone_horovod/lamec.json b/scripts/cyclone_horovod/lamec.json
new file mode 100644
index 0000000000000000000000000000000000000000..212f4d1f2a70bf54baf8e81fe5a1a044522ed4b0
--- /dev/null
+++ b/scripts/cyclone_horovod/lamec.json
@@ -0,0 +1 @@
+{"startscript": "FNO_launch.sh"}
\ No newline at end of file
diff --git a/scripts/deep_clang/clang_script.sh b/scripts/deep_clang/clang_script.sh
new file mode 100644
index 0000000000000000000000000000000000000000..088a5dcbbb16ad60dfcbac19569029c8ea5476de
--- /dev/null
+++ b/scripts/deep_clang/clang_script.sh
@@ -0,0 +1,13 @@
+#!/usr/bin/env bash
+#SBATCH --account=%account%
+#SBATCH --partition=%partition%
+#SBATCH --nodes=%nodes%
+#SBATCH --time=0:00:10
+
+%undefined%
+
+PROGNAME="%executable%"
+
+ml Stages/Devel-2019a Clang/10.0.1
+
+clang "$PROGNAME".c -o "$PROGNAME"
diff --git a/scripts/deep_clang/lamec.json b/scripts/deep_clang/lamec.json
new file mode 100644
index 0000000000000000000000000000000000000000..1b2ee6452ebcf6a48f7ed802436a32496ec222dc
--- /dev/null
+++ b/scripts/deep_clang/lamec.json
@@ -0,0 +1 @@
+{"template": "clang_script.sh"}
diff --git a/scripts/Deep_DDP/DDP_startscript_deep.sh b/scripts/deep_ddp/DDP_startscript_deep.sh
similarity index 100%
rename from scripts/Deep_DDP/DDP_startscript_deep.sh
rename to scripts/deep_ddp/DDP_startscript_deep.sh
diff --git a/scripts/Deep_DDP/README.md b/scripts/deep_ddp/README.md
similarity index 100%
rename from scripts/Deep_DDP/README.md
rename to scripts/deep_ddp/README.md
diff --git a/scripts/Deep_DDP/conda_torch.sh b/scripts/deep_ddp/conda_torch.sh
similarity index 100%
rename from scripts/Deep_DDP/conda_torch.sh
rename to scripts/deep_ddp/conda_torch.sh
diff --git a/scripts/Deep_DDP/createEnv.sh b/scripts/deep_ddp/createEnv.sh
similarity index 100%
rename from scripts/Deep_DDP/createEnv.sh
rename to scripts/deep_ddp/createEnv.sh
diff --git a/scripts/deep_ddp/lamec.json b/scripts/deep_ddp/lamec.json
new file mode 100644
index 0000000000000000000000000000000000000000..8e4595add2c83b22847dd952abab945a614dedab
--- /dev/null
+++ b/scripts/deep_ddp/lamec.json
@@ -0,0 +1 @@
+{"startscript": "DDP_startscript_deep.sh"}
\ No newline at end of file
diff --git a/scripts/Deep_DDP/reqs.txt b/scripts/deep_ddp/reqs.txt
similarity index 100%
rename from scripts/Deep_DDP/reqs.txt
rename to scripts/deep_ddp/reqs.txt
diff --git a/scripts/Deep_DeepSpeed/DS_config.json b/scripts/deep_deepspeed/DS_config.json
similarity index 100%
rename from scripts/Deep_DeepSpeed/DS_config.json
rename to scripts/deep_deepspeed/DS_config.json
diff --git a/scripts/Deep_DeepSpeed/DS_startscript_deep.sh b/scripts/deep_deepspeed/DS_startscript_deep.sh
similarity index 100%
rename from scripts/Deep_DeepSpeed/DS_startscript_deep.sh
rename to scripts/deep_deepspeed/DS_startscript_deep.sh
diff --git a/scripts/Deep_DeepSpeed/README.md b/scripts/deep_deepspeed/README.md
similarity index 100%
rename from scripts/Deep_DeepSpeed/README.md
rename to scripts/deep_deepspeed/README.md
diff --git a/scripts/Deep_DeepSpeed/createEnv.sh b/scripts/deep_deepspeed/createEnv.sh
similarity index 100%
rename from scripts/Deep_DeepSpeed/createEnv.sh
rename to scripts/deep_deepspeed/createEnv.sh
diff --git a/scripts/deep_deepspeed/lamec.json b/scripts/deep_deepspeed/lamec.json
new file mode 100644
index 0000000000000000000000000000000000000000..b1572ed4b5ac84409ff6cb91e575344301c84b95
--- /dev/null
+++ b/scripts/deep_deepspeed/lamec.json
@@ -0,0 +1 @@
+{"startscript": "DS_startscript_deep.sh"}
\ No newline at end of file
diff --git a/scripts/Deep_DeepSpeed/reqs.txt b/scripts/deep_deepspeed/reqs.txt
similarity index 100%
rename from scripts/Deep_DeepSpeed/reqs.txt
rename to scripts/deep_deepspeed/reqs.txt
diff --git a/scripts/Deep_HeAT/HeAT_startscript_deep.sh b/scripts/deep_heat/HeAT_startscript_deep.sh
similarity index 100%
rename from scripts/Deep_HeAT/HeAT_startscript_deep.sh
rename to scripts/deep_heat/HeAT_startscript_deep.sh
diff --git a/scripts/Deep_HeAT/README.md b/scripts/deep_heat/README.md
similarity index 100%
rename from scripts/Deep_HeAT/README.md
rename to scripts/deep_heat/README.md
diff --git a/scripts/Deep_HeAT/createEnv.sh b/scripts/deep_heat/createEnv.sh
similarity index 100%
rename from scripts/Deep_HeAT/createEnv.sh
rename to scripts/deep_heat/createEnv.sh
diff --git a/scripts/Deep_HeAT/example_mnist_heat.py b/scripts/deep_heat/example_mnist_heat.py
similarity index 100%
rename from scripts/Deep_HeAT/example_mnist_heat.py
rename to scripts/deep_heat/example_mnist_heat.py
diff --git a/scripts/deep_heat/lamec.json b/scripts/deep_heat/lamec.json
new file mode 100644
index 0000000000000000000000000000000000000000..d1bf1b27df9fd3984cd046733eeccea2901e07b3
--- /dev/null
+++ b/scripts/deep_heat/lamec.json
@@ -0,0 +1 @@
+{"startscript": "HeAT_startscript_deep.sh"}
\ No newline at end of file
diff --git a/scripts/Deep_HeAT/reqs.txt b/scripts/deep_heat/reqs.txt
similarity index 100%
rename from scripts/Deep_HeAT/reqs.txt
rename to scripts/deep_heat/reqs.txt
diff --git a/scripts/Deep_Horovod/Hor_startscript_deep.sh b/scripts/deep_horovod/Hor_startscript_deep.sh
similarity index 100%
rename from scripts/Deep_Horovod/Hor_startscript_deep.sh
rename to scripts/deep_horovod/Hor_startscript_deep.sh
diff --git a/scripts/Deep_Horovod/README.md b/scripts/deep_horovod/README.md
similarity index 100%
rename from scripts/Deep_Horovod/README.md
rename to scripts/deep_horovod/README.md
diff --git a/scripts/Deep_Horovod/createEnv.sh b/scripts/deep_horovod/createEnv.sh
similarity index 100%
rename from scripts/Deep_Horovod/createEnv.sh
rename to scripts/deep_horovod/createEnv.sh
diff --git a/scripts/deep_horovod/lamec.json b/scripts/deep_horovod/lamec.json
new file mode 100644
index 0000000000000000000000000000000000000000..4aff71d30c25f064280724e030d6fd813c4c4c5d
--- /dev/null
+++ b/scripts/deep_horovod/lamec.json
@@ -0,0 +1 @@
+{"startscript": "Hor_startscript_deep.sh"}
\ No newline at end of file
diff --git a/scripts/Deep_Horovod/pytorch_mnist.py b/scripts/deep_horovod/pytorch_mnist.py
similarity index 100%
rename from scripts/Deep_Horovod/pytorch_mnist.py
rename to scripts/deep_horovod/pytorch_mnist.py
diff --git a/scripts/Deep_Horovod/pytorch_synthetic_benchmark.py b/scripts/deep_horovod/pytorch_synthetic_benchmark.py
similarity index 100%
rename from scripts/Deep_Horovod/pytorch_synthetic_benchmark.py
rename to scripts/deep_horovod/pytorch_synthetic_benchmark.py
diff --git a/scripts/Deep_Horovod/reqs.txt b/scripts/deep_horovod/reqs.txt
similarity index 100%
rename from scripts/Deep_Horovod/reqs.txt
rename to scripts/deep_horovod/reqs.txt
diff --git a/scripts/Deep_TensorFlow/Create_Jupyter_deepv.ipynb b/scripts/deep_tensorflow/Create_Jupyter_deepv.ipynb
similarity index 100%
rename from scripts/Deep_TensorFlow/Create_Jupyter_deepv.ipynb
rename to scripts/deep_tensorflow/Create_Jupyter_deepv.ipynb
diff --git a/scripts/Deep_TensorFlow/README.md b/scripts/deep_tensorflow/README.md
similarity index 100%
rename from scripts/Deep_TensorFlow/README.md
rename to scripts/deep_tensorflow/README.md
diff --git a/scripts/Deep_TensorFlow/TF_startscript_deep.sh b/scripts/deep_tensorflow/TF_startscript_deep.sh
similarity index 100%
rename from scripts/Deep_TensorFlow/TF_startscript_deep.sh
rename to scripts/deep_tensorflow/TF_startscript_deep.sh
diff --git a/scripts/Deep_TensorFlow/createEnv_TF.sh b/scripts/deep_tensorflow/createEnv_TF.sh
similarity index 100%
rename from scripts/Deep_TensorFlow/createEnv_TF.sh
rename to scripts/deep_tensorflow/createEnv_TF.sh
diff --git a/scripts/Deep_TensorFlow/jupyterAddKernel.sh b/scripts/deep_tensorflow/jupyterAddKernel.sh
similarity index 100%
rename from scripts/Deep_TensorFlow/jupyterAddKernel.sh
rename to scripts/deep_tensorflow/jupyterAddKernel.sh
diff --git a/scripts/Deep_TensorFlow/jupyterCreateKernel.sh b/scripts/deep_tensorflow/jupyterCreateKernel.sh
similarity index 100%
rename from scripts/Deep_TensorFlow/jupyterCreateKernel.sh
rename to scripts/deep_tensorflow/jupyterCreateKernel.sh
diff --git a/scripts/deep_tensorflow/lamec.json b/scripts/deep_tensorflow/lamec.json
new file mode 100644
index 0000000000000000000000000000000000000000..8c582bbd9f2365d3a43ac8c11f538f5b2a79c694
--- /dev/null
+++ b/scripts/deep_tensorflow/lamec.json
@@ -0,0 +1 @@
+{"startscript": "TF_startscript_deep.sh"}
\ No newline at end of file
diff --git a/scripts/Deep_TensorFlow/tensorflow2_synthetic_benchmark.py b/scripts/deep_tensorflow/tensorflow2_synthetic_benchmark.py
similarity index 100%
rename from scripts/Deep_TensorFlow/tensorflow2_synthetic_benchmark.py
rename to scripts/deep_tensorflow/tensorflow2_synthetic_benchmark.py
diff --git a/scripts/Jureca_DDP/DDP_startscript.sh b/scripts/jureca_ddp/DDP_startscript.sh
similarity index 100%
rename from scripts/Jureca_DDP/DDP_startscript.sh
rename to scripts/jureca_ddp/DDP_startscript.sh
diff --git a/scripts/Jureca_DDP/DDP_startscript_container.sh b/scripts/jureca_ddp/DDP_startscript_container.sh
similarity index 100%
rename from scripts/Jureca_DDP/DDP_startscript_container.sh
rename to scripts/jureca_ddp/DDP_startscript_container.sh
diff --git a/scripts/Jureca_DDP/README.md b/scripts/jureca_ddp/README.md
similarity index 100%
rename from scripts/Jureca_DDP/README.md
rename to scripts/jureca_ddp/README.md
diff --git a/scripts/Jureca_DDP/createContainer.sh b/scripts/jureca_ddp/createContainer.sh
similarity index 100%
rename from scripts/Jureca_DDP/createContainer.sh
rename to scripts/jureca_ddp/createContainer.sh
diff --git a/scripts/Jureca_DDP/createEnv.sh b/scripts/jureca_ddp/createEnv.sh
similarity index 100%
rename from scripts/Jureca_DDP/createEnv.sh
rename to scripts/jureca_ddp/createEnv.sh
diff --git a/scripts/Jureca_DDP/createEnv_MPI.sh b/scripts/jureca_ddp/createEnv_MPI.sh
similarity index 100%
rename from scripts/Jureca_DDP/createEnv_MPI.sh
rename to scripts/jureca_ddp/createEnv_MPI.sh
diff --git a/scripts/Jureca_DDP/fixed_torch_run.py b/scripts/jureca_ddp/fixed_torch_run.py
similarity index 100%
rename from scripts/Jureca_DDP/fixed_torch_run.py
rename to scripts/jureca_ddp/fixed_torch_run.py
diff --git a/scripts/jureca_ddp/lamec.json b/scripts/jureca_ddp/lamec.json
new file mode 100644
index 0000000000000000000000000000000000000000..a36ad5345ea21cdae8672d53fd40e52ea1cada36
--- /dev/null
+++ b/scripts/jureca_ddp/lamec.json
@@ -0,0 +1 @@
+{"startscript": "DDP_startscript.sh"}
\ No newline at end of file
diff --git a/scripts/Jureca_DDP/reqs.txt b/scripts/jureca_ddp/reqs.txt
similarity index 100%
rename from scripts/Jureca_DDP/reqs.txt
rename to scripts/jureca_ddp/reqs.txt
diff --git a/scripts/Jureca_DeepSpeed/DS_config.json b/scripts/jureca_deepspeed/DS_config.json
similarity index 100%
rename from scripts/Jureca_DeepSpeed/DS_config.json
rename to scripts/jureca_deepspeed/DS_config.json
diff --git a/scripts/Jureca_DeepSpeed/DS_startscript_deep.sh b/scripts/jureca_deepspeed/DS_startscript_deep.sh
similarity index 100%
rename from scripts/Jureca_DeepSpeed/DS_startscript_deep.sh
rename to scripts/jureca_deepspeed/DS_startscript_deep.sh
diff --git a/scripts/Jureca_DeepSpeed/README.md b/scripts/jureca_deepspeed/README.md
similarity index 100%
rename from scripts/Jureca_DeepSpeed/README.md
rename to scripts/jureca_deepspeed/README.md
diff --git a/scripts/Jureca_DeepSpeed/createEnv.sh b/scripts/jureca_deepspeed/createEnv.sh
similarity index 100%
rename from scripts/Jureca_DeepSpeed/createEnv.sh
rename to scripts/jureca_deepspeed/createEnv.sh
diff --git a/scripts/jureca_deepspeed/lamec.json b/scripts/jureca_deepspeed/lamec.json
new file mode 100644
index 0000000000000000000000000000000000000000..b1572ed4b5ac84409ff6cb91e575344301c84b95
--- /dev/null
+++ b/scripts/jureca_deepspeed/lamec.json
@@ -0,0 +1 @@
+{"startscript": "DS_startscript_deep.sh"}
\ No newline at end of file
diff --git a/scripts/Jureca_DeepSpeed/reqs.txt b/scripts/jureca_deepspeed/reqs.txt
similarity index 100%
rename from scripts/Jureca_DeepSpeed/reqs.txt
rename to scripts/jureca_deepspeed/reqs.txt
diff --git a/scripts/Jureca_Graphcore/GC_pytorch_mnist.py b/scripts/jureca_graphcore/GC_pytorch_mnist.py
similarity index 100%
rename from scripts/Jureca_Graphcore/GC_pytorch_mnist.py
rename to scripts/jureca_graphcore/GC_pytorch_mnist.py
diff --git a/scripts/Jureca_Graphcore/GC_startscript.sh b/scripts/jureca_graphcore/GC_startscript.sh
similarity index 100%
rename from scripts/Jureca_Graphcore/GC_startscript.sh
rename to scripts/jureca_graphcore/GC_startscript.sh
diff --git a/scripts/Jureca_Graphcore/README.md b/scripts/jureca_graphcore/README.md
similarity index 100%
rename from scripts/Jureca_Graphcore/README.md
rename to scripts/jureca_graphcore/README.md
diff --git a/scripts/jureca_graphcore/lamec.json b/scripts/jureca_graphcore/lamec.json
new file mode 100644
index 0000000000000000000000000000000000000000..fe05ab67e3c1cffe3df4c751ceec2acfbf9c46b7
--- /dev/null
+++ b/scripts/jureca_graphcore/lamec.json
@@ -0,0 +1 @@
+{"startscript": "GC_startscript.sh"}
\ No newline at end of file
diff --git a/scripts/Jureca_HeAT/HeAT_startscript_deep.sh b/scripts/jureca_heat/HeAT_startscript_deep.sh
similarity index 100%
rename from scripts/Jureca_HeAT/HeAT_startscript_deep.sh
rename to scripts/jureca_heat/HeAT_startscript_deep.sh
diff --git a/scripts/Jureca_HeAT/README.md b/scripts/jureca_heat/README.md
similarity index 100%
rename from scripts/Jureca_HeAT/README.md
rename to scripts/jureca_heat/README.md
diff --git a/scripts/Jureca_HeAT/createEnv.sh b/scripts/jureca_heat/createEnv.sh
similarity index 100%
rename from scripts/Jureca_HeAT/createEnv.sh
rename to scripts/jureca_heat/createEnv.sh
diff --git a/scripts/jureca_heat/lamec.json b/scripts/jureca_heat/lamec.json
new file mode 100644
index 0000000000000000000000000000000000000000..d1bf1b27df9fd3984cd046733eeccea2901e07b3
--- /dev/null
+++ b/scripts/jureca_heat/lamec.json
@@ -0,0 +1 @@
+{"startscript": "HeAT_startscript_deep.sh"}
\ No newline at end of file
diff --git a/scripts/Jureca_HeAT/reqs.txt b/scripts/jureca_heat/reqs.txt
similarity index 100%
rename from scripts/Jureca_HeAT/reqs.txt
rename to scripts/jureca_heat/reqs.txt
diff --git a/scripts/Jureca_Horovod/Hor_startscript_deep.sh b/scripts/jureca_horovod/Hor_startscript_deep.sh
similarity index 100%
rename from scripts/Jureca_Horovod/Hor_startscript_deep.sh
rename to scripts/jureca_horovod/Hor_startscript_deep.sh
diff --git a/scripts/Jureca_Horovod/README.md b/scripts/jureca_horovod/README.md
similarity index 100%
rename from scripts/Jureca_Horovod/README.md
rename to scripts/jureca_horovod/README.md
diff --git a/scripts/Jureca_Horovod/createEnv.sh b/scripts/jureca_horovod/createEnv.sh
similarity index 100%
rename from scripts/Jureca_Horovod/createEnv.sh
rename to scripts/jureca_horovod/createEnv.sh
diff --git a/scripts/jureca_horovod/lamec.json b/scripts/jureca_horovod/lamec.json
new file mode 100644
index 0000000000000000000000000000000000000000..4aff71d30c25f064280724e030d6fd813c4c4c5d
--- /dev/null
+++ b/scripts/jureca_horovod/lamec.json
@@ -0,0 +1 @@
+{"startscript": "Hor_startscript_deep.sh"}
\ No newline at end of file
diff --git a/scripts/Jureca_Horovod/reqs.txt b/scripts/jureca_horovod/reqs.txt
similarity index 100%
rename from scripts/Jureca_Horovod/reqs.txt
rename to scripts/jureca_horovod/reqs.txt
diff --git a/scripts/Jureca_LibTorch/MNIST/CMakeLists.txt b/scripts/jureca_libtorch/MNIST/CMakeLists.txt
similarity index 100%
rename from scripts/Jureca_LibTorch/MNIST/CMakeLists.txt
rename to scripts/jureca_libtorch/MNIST/CMakeLists.txt
diff --git a/scripts/Jureca_LibTorch/MNIST/LibTorch_startscript.sh b/scripts/jureca_libtorch/MNIST/LibTorch_startscript.sh
similarity index 100%
rename from scripts/Jureca_LibTorch/MNIST/LibTorch_startscript.sh
rename to scripts/jureca_libtorch/MNIST/LibTorch_startscript.sh
diff --git a/scripts/Jureca_LibTorch/MNIST/compile.sh b/scripts/jureca_libtorch/MNIST/compile.sh
similarity index 100%
rename from scripts/Jureca_LibTorch/MNIST/compile.sh
rename to scripts/jureca_libtorch/MNIST/compile.sh
diff --git a/scripts/Jureca_LibTorch/MNIST/download_mnist.py b/scripts/jureca_libtorch/MNIST/download_mnist.py
similarity index 100%
rename from scripts/Jureca_LibTorch/MNIST/download_mnist.py
rename to scripts/jureca_libtorch/MNIST/download_mnist.py
diff --git a/scripts/Jureca_LibTorch/MNIST/mnist.cpp b/scripts/jureca_libtorch/MNIST/mnist.cpp
similarity index 100%
rename from scripts/Jureca_LibTorch/MNIST/mnist.cpp
rename to scripts/jureca_libtorch/MNIST/mnist.cpp
diff --git a/scripts/Jureca_LibTorch/README.md b/scripts/jureca_libtorch/README.md
similarity index 100%
rename from scripts/Jureca_LibTorch/README.md
rename to scripts/jureca_libtorch/README.md
diff --git a/scripts/Jureca_LibTorch/TorchVision/compile_jpeg.sh b/scripts/jureca_libtorch/TorchVision/compile_jpeg.sh
similarity index 100%
rename from scripts/Jureca_LibTorch/TorchVision/compile_jpeg.sh
rename to scripts/jureca_libtorch/TorchVision/compile_jpeg.sh
diff --git a/scripts/Jureca_LibTorch/TorchVision/compile_png.sh b/scripts/jureca_libtorch/TorchVision/compile_png.sh
similarity index 100%
rename from scripts/Jureca_LibTorch/TorchVision/compile_png.sh
rename to scripts/jureca_libtorch/TorchVision/compile_png.sh
diff --git a/scripts/Jureca_LibTorch/TorchVision/compile_torchvision.sh b/scripts/jureca_libtorch/TorchVision/compile_torchvision.sh
similarity index 100%
rename from scripts/Jureca_LibTorch/TorchVision/compile_torchvision.sh
rename to scripts/jureca_libtorch/TorchVision/compile_torchvision.sh
diff --git a/scripts/jureca_libtorch/lamec.json b/scripts/jureca_libtorch/lamec.json
new file mode 100644
index 0000000000000000000000000000000000000000..a8d025c21fcf84b3dfc1fc34d94547f4aaa9e5b1
--- /dev/null
+++ b/scripts/jureca_libtorch/lamec.json
@@ -0,0 +1 @@
+{"startscript": "MNIST/LibTorch_startscript.sh"}
\ No newline at end of file
diff --git a/scripts/Cyclone_basilisk/.gitkeep b/scripts/jureca_raytune/.gitkeep
similarity index 100%
rename from scripts/Cyclone_basilisk/.gitkeep
rename to scripts/jureca_raytune/.gitkeep
diff --git a/scripts/Jureca_RayTune/README.md b/scripts/jureca_raytune/README.md
similarity index 100%
rename from scripts/Jureca_RayTune/README.md
rename to scripts/jureca_raytune/README.md
diff --git a/scripts/Jureca_RayTune/.gitkeep b/scripts/jureca_raytune/RayTune+DDP/.gitkeep
similarity index 100%
rename from scripts/Jureca_RayTune/.gitkeep
rename to scripts/jureca_raytune/RayTune+DDP/.gitkeep
diff --git a/scripts/Jureca_RayTune/RayTune+DDP/cifar_tune.py b/scripts/jureca_raytune/RayTune+DDP/cifar_tune.py
similarity index 100%
rename from scripts/Jureca_RayTune/RayTune+DDP/cifar_tune.py
rename to scripts/jureca_raytune/RayTune+DDP/cifar_tune.py
diff --git a/scripts/Jureca_RayTune/RayTune+DDP/create_env.sh b/scripts/jureca_raytune/RayTune+DDP/create_env.sh
similarity index 100%
rename from scripts/Jureca_RayTune/RayTune+DDP/create_env.sh
rename to scripts/jureca_raytune/RayTune+DDP/create_env.sh
diff --git a/scripts/Jureca_RayTune/RayTune+DDP/jureca_ray_ddp_startscript.sh b/scripts/jureca_raytune/RayTune+DDP/jureca_ray_ddp_startscript.sh
similarity index 100%
rename from scripts/Jureca_RayTune/RayTune+DDP/jureca_ray_ddp_startscript.sh
rename to scripts/jureca_raytune/RayTune+DDP/jureca_ray_ddp_startscript.sh
diff --git a/scripts/Jureca_RayTune/RayTune+DDP/.gitkeep b/scripts/jureca_raytune/Ray_2.4/.gitkeep
similarity index 100%
rename from scripts/Jureca_RayTune/RayTune+DDP/.gitkeep
rename to scripts/jureca_raytune/Ray_2.4/.gitkeep
diff --git a/scripts/Jureca_RayTune/Ray_2.4/.gitkeep b/scripts/jureca_raytune/Ray_2.4/ASHA/.gitkeep
similarity index 100%
rename from scripts/Jureca_RayTune/Ray_2.4/.gitkeep
rename to scripts/jureca_raytune/Ray_2.4/ASHA/.gitkeep
diff --git a/scripts/Jureca_RayTune/Ray_2.4/ASHA/cifar_tune_asha.py b/scripts/jureca_raytune/Ray_2.4/ASHA/cifar_tune_asha.py
similarity index 100%
rename from scripts/Jureca_RayTune/Ray_2.4/ASHA/cifar_tune_asha.py
rename to scripts/jureca_raytune/Ray_2.4/ASHA/cifar_tune_asha.py
diff --git a/scripts/Jureca_RayTune/Ray_2.4/ASHA/jureca_ray_startscript.sh b/scripts/jureca_raytune/Ray_2.4/ASHA/jureca_ray_startscript.sh
similarity index 100%
rename from scripts/Jureca_RayTune/Ray_2.4/ASHA/jureca_ray_startscript.sh
rename to scripts/jureca_raytune/Ray_2.4/ASHA/jureca_ray_startscript.sh
diff --git a/scripts/Jureca_RayTune/Ray_2.4/ASHA/.gitkeep b/scripts/jureca_raytune/Ray_2.4/BOHB/.gitkeep
similarity index 100%
rename from scripts/Jureca_RayTune/Ray_2.4/ASHA/.gitkeep
rename to scripts/jureca_raytune/Ray_2.4/BOHB/.gitkeep
diff --git a/scripts/Jureca_RayTune/Ray_2.4/BOHB/cifar_tune_bohb.py b/scripts/jureca_raytune/Ray_2.4/BOHB/cifar_tune_bohb.py
similarity index 100%
rename from scripts/Jureca_RayTune/Ray_2.4/BOHB/cifar_tune_bohb.py
rename to scripts/jureca_raytune/Ray_2.4/BOHB/cifar_tune_bohb.py
diff --git a/scripts/Jureca_RayTune/Ray_2.4/BOHB/jureca_ray_startscript.sh b/scripts/jureca_raytune/Ray_2.4/BOHB/jureca_ray_startscript.sh
similarity index 100%
rename from scripts/Jureca_RayTune/Ray_2.4/BOHB/jureca_ray_startscript.sh
rename to scripts/jureca_raytune/Ray_2.4/BOHB/jureca_ray_startscript.sh
diff --git a/scripts/Jureca_RayTune/Ray_2.4/BOHB/.gitkeep b/scripts/jureca_raytune/Ray_2.4/PBT/.gitkeep
similarity index 100%
rename from scripts/Jureca_RayTune/Ray_2.4/BOHB/.gitkeep
rename to scripts/jureca_raytune/Ray_2.4/PBT/.gitkeep
diff --git a/scripts/Jureca_RayTune/Ray_2.4/PBT/cifar_tune_pbt.py b/scripts/jureca_raytune/Ray_2.4/PBT/cifar_tune_pbt.py
similarity index 100%
rename from scripts/Jureca_RayTune/Ray_2.4/PBT/cifar_tune_pbt.py
rename to scripts/jureca_raytune/Ray_2.4/PBT/cifar_tune_pbt.py
diff --git a/scripts/Jureca_RayTune/Ray_2.4/PBT/jureca_ray_startscript.sh b/scripts/jureca_raytune/Ray_2.4/PBT/jureca_ray_startscript.sh
similarity index 100%
rename from scripts/Jureca_RayTune/Ray_2.4/PBT/jureca_ray_startscript.sh
rename to scripts/jureca_raytune/Ray_2.4/PBT/jureca_ray_startscript.sh
diff --git a/scripts/Jureca_RayTune/Ray_2.4/build_ray_env.sh b/scripts/jureca_raytune/Ray_2.4/build_ray_env.sh
similarity index 100%
rename from scripts/Jureca_RayTune/Ray_2.4/build_ray_env.sh
rename to scripts/jureca_raytune/Ray_2.4/build_ray_env.sh
diff --git a/scripts/Jureca_RayTune/Ray_2.4/hpo.md b/scripts/jureca_raytune/Ray_2.4/hpo.md
similarity index 100%
rename from scripts/Jureca_RayTune/Ray_2.4/hpo.md
rename to scripts/jureca_raytune/Ray_2.4/hpo.md
diff --git a/scripts/Jureca_RayTune/Ray_2.4/hpo.py b/scripts/jureca_raytune/Ray_2.4/hpo.py
similarity index 100%
rename from scripts/Jureca_RayTune/Ray_2.4/hpo.py
rename to scripts/jureca_raytune/Ray_2.4/hpo.py
diff --git a/scripts/Jureca_RayTune/cifar_tune.py b/scripts/jureca_raytune/cifar_tune.py
similarity index 100%
rename from scripts/Jureca_RayTune/cifar_tune.py
rename to scripts/jureca_raytune/cifar_tune.py
diff --git a/scripts/Jureca_RayTune/cifar_tune_tf.py b/scripts/jureca_raytune/cifar_tune_tf.py
similarity index 100%
rename from scripts/Jureca_RayTune/cifar_tune_tf.py
rename to scripts/jureca_raytune/cifar_tune_tf.py
diff --git a/scripts/Jureca_RayTune/create_jureca_env.sh b/scripts/jureca_raytune/create_jureca_env.sh
similarity index 100%
rename from scripts/Jureca_RayTune/create_jureca_env.sh
rename to scripts/jureca_raytune/create_jureca_env.sh
diff --git a/scripts/Jureca_RayTune/jureca_run_ray.sh b/scripts/jureca_raytune/jureca_run_ray.sh
similarity index 100%
rename from scripts/Jureca_RayTune/jureca_run_ray.sh
rename to scripts/jureca_raytune/jureca_run_ray.sh
diff --git a/scripts/Juwels_DDP/README.md b/scripts/juwels_ddp/README.md
similarity index 100%
rename from scripts/Juwels_DDP/README.md
rename to scripts/juwels_ddp/README.md
diff --git a/scripts/Juwels_DDP/container_batch.sh b/scripts/juwels_ddp/container_batch.sh
similarity index 100%
rename from scripts/Juwels_DDP/container_batch.sh
rename to scripts/juwels_ddp/container_batch.sh
diff --git a/scripts/Juwels_DDP/container_build.sh b/scripts/juwels_ddp/container_build.sh
similarity index 100%
rename from scripts/Juwels_DDP/container_build.sh
rename to scripts/juwels_ddp/container_build.sh
diff --git a/scripts/Juwels_DDP/container_env.sh b/scripts/juwels_ddp/container_env.sh
similarity index 100%
rename from scripts/Juwels_DDP/container_env.sh
rename to scripts/juwels_ddp/container_env.sh
diff --git a/scripts/Juwels_DDP/createEnv.sh b/scripts/juwels_ddp/createEnv.sh
similarity index 100%
rename from scripts/Juwels_DDP/createEnv.sh
rename to scripts/juwels_ddp/createEnv.sh
diff --git a/scripts/Juwels_DDP/env_batch.sh b/scripts/juwels_ddp/env_batch.sh
similarity index 100%
rename from scripts/Juwels_DDP/env_batch.sh
rename to scripts/juwels_ddp/env_batch.sh
diff --git a/scripts/Juwels_DDP/env_build.sh b/scripts/juwels_ddp/env_build.sh
similarity index 100%
rename from scripts/Juwels_DDP/env_build.sh
rename to scripts/juwels_ddp/env_build.sh
diff --git a/scripts/Juwels_DDP/fixed_torch_run.py b/scripts/juwels_ddp/fixed_torch_run.py
similarity index 100%
rename from scripts/Juwels_DDP/fixed_torch_run.py
rename to scripts/juwels_ddp/fixed_torch_run.py
diff --git a/scripts/Juwels_DDP/install_pyDDP.sh b/scripts/juwels_ddp/install_pyDDP.sh
similarity index 100%
rename from scripts/Juwels_DDP/install_pyDDP.sh
rename to scripts/juwels_ddp/install_pyDDP.sh
diff --git a/scripts/juwels_ddp/lamec.json b/scripts/juwels_ddp/lamec.json
new file mode 100644
index 0000000000000000000000000000000000000000..af5277f77f8cbb767eab6123b61c94a6efecc8da
--- /dev/null
+++ b/scripts/juwels_ddp/lamec.json
@@ -0,0 +1 @@
+{"startscript": "env_batch.sh"}
\ No newline at end of file
diff --git a/scripts/Juwels_DDP/reqs.txt b/scripts/juwels_ddp/reqs.txt
similarity index 100%
rename from scripts/Juwels_DDP/reqs.txt
rename to scripts/juwels_ddp/reqs.txt
diff --git a/scripts/Juwels_Turbulence/Autoencoder_Turbulence.py b/scripts/juwels_turbulence/Autoencoder_Turbulence.py
similarity index 100%
rename from scripts/Juwels_Turbulence/Autoencoder_Turbulence.py
rename to scripts/juwels_turbulence/Autoencoder_Turbulence.py
diff --git a/scripts/Juwels_Turbulence/Autoencoder_Turbulence_PINNs.py b/scripts/juwels_turbulence/Autoencoder_Turbulence_PINNs.py
similarity index 100%
rename from scripts/Juwels_Turbulence/Autoencoder_Turbulence_PINNs.py
rename to scripts/juwels_turbulence/Autoencoder_Turbulence_PINNs.py
diff --git a/scripts/Juwels_Turbulence/Autoencoder_Turbulence_horv.py b/scripts/juwels_turbulence/Autoencoder_Turbulence_horv.py
similarity index 100%
rename from scripts/Juwels_Turbulence/Autoencoder_Turbulence_horv.py
rename to scripts/juwels_turbulence/Autoencoder_Turbulence_horv.py
diff --git a/scripts/Juwels_Turbulence/Autoencoder_Turbulence_olddata.py b/scripts/juwels_turbulence/Autoencoder_Turbulence_olddata.py
similarity index 100%
rename from scripts/Juwels_Turbulence/Autoencoder_Turbulence_olddata.py
rename to scripts/juwels_turbulence/Autoencoder_Turbulence_olddata.py
diff --git a/scripts/Juwels_Turbulence/Autoencoder_Turbulence_serial.py b/scripts/juwels_turbulence/Autoencoder_Turbulence_serial.py
similarity index 100%
rename from scripts/Juwels_Turbulence/Autoencoder_Turbulence_serial.py
rename to scripts/juwels_turbulence/Autoencoder_Turbulence_serial.py
diff --git a/scripts/Juwels_Turbulence/CAE_loss_serial_vs_par.pdf b/scripts/juwels_turbulence/CAE_loss_serial_vs_par.pdf
similarity index 100%
rename from scripts/Juwels_Turbulence/CAE_loss_serial_vs_par.pdf
rename to scripts/juwels_turbulence/CAE_loss_serial_vs_par.pdf
diff --git a/scripts/Juwels_Turbulence/CAE_serial.pdf b/scripts/juwels_turbulence/CAE_serial.pdf
similarity index 100%
rename from scripts/Juwels_Turbulence/CAE_serial.pdf
rename to scripts/juwels_turbulence/CAE_serial.pdf
diff --git a/scripts/Juwels_Turbulence/startScript b/scripts/juwels_turbulence/startScript
similarity index 100%
rename from scripts/Juwels_Turbulence/startScript
rename to scripts/juwels_turbulence/startScript
diff --git a/scripts/Juwels_Turbulence/startScript_horovod b/scripts/juwels_turbulence/startScript_horovod
similarity index 100%
rename from scripts/Juwels_Turbulence/startScript_horovod
rename to scripts/juwels_turbulence/startScript_horovod
diff --git a/scripts/Juwels_Turbulence/startScript_serial b/scripts/juwels_turbulence/startScript_serial
similarity index 100%
rename from scripts/Juwels_Turbulence/startScript_serial
rename to scripts/juwels_turbulence/startScript_serial
diff --git a/scripts/LUMI_DDP/README.md b/scripts/lumi_ddp/README.md
similarity index 100%
rename from scripts/LUMI_DDP/README.md
rename to scripts/lumi_ddp/README.md
diff --git a/scripts/LUMI_DDP/container_build.sh b/scripts/lumi_ddp/container_build.sh
similarity index 100%
rename from scripts/LUMI_DDP/container_build.sh
rename to scripts/lumi_ddp/container_build.sh
diff --git a/scripts/LUMI_DDP/container_env.sh b/scripts/lumi_ddp/container_env.sh
similarity index 100%
rename from scripts/LUMI_DDP/container_env.sh
rename to scripts/lumi_ddp/container_env.sh
diff --git a/scripts/LUMI_DDP/container_startscript.sh b/scripts/lumi_ddp/container_startscript.sh
similarity index 100%
rename from scripts/LUMI_DDP/container_startscript.sh
rename to scripts/lumi_ddp/container_startscript.sh
diff --git a/scripts/LUMI_DDP/env_build.sh b/scripts/lumi_ddp/env_build.sh
similarity index 100%
rename from scripts/LUMI_DDP/env_build.sh
rename to scripts/lumi_ddp/env_build.sh
diff --git a/scripts/LUMI_DDP/env_startscript.sh b/scripts/lumi_ddp/env_startscript.sh
similarity index 100%
rename from scripts/LUMI_DDP/env_startscript.sh
rename to scripts/lumi_ddp/env_startscript.sh
diff --git a/scripts/lumi_ddp/lamec.json b/scripts/lumi_ddp/lamec.json
new file mode 100644
index 0000000000000000000000000000000000000000..089c01bc43a3e6af5c55e5c8e32f3032dde7d7e9
--- /dev/null
+++ b/scripts/lumi_ddp/lamec.json
@@ -0,0 +1 @@
+{"startscript": "env_startscript.sh"}
\ No newline at end of file
diff --git a/scripts/LUMI_DDP/reqs.txt b/scripts/lumi_ddp/reqs.txt
similarity index 100%
rename from scripts/LUMI_DDP/reqs.txt
rename to scripts/lumi_ddp/reqs.txt
diff --git a/scripts/PizDa_DDP/DDP_startscript b/scripts/pizda_ddp/DDP_startscript
similarity index 100%
rename from scripts/PizDa_DDP/DDP_startscript
rename to scripts/pizda_ddp/DDP_startscript
diff --git a/scripts/PizDa_DDP/createENV.sh b/scripts/pizda_ddp/createENV.sh
similarity index 100%
rename from scripts/PizDa_DDP/createENV.sh
rename to scripts/pizda_ddp/createENV.sh
diff --git a/scripts/pizda_ddp/lamec.json b/scripts/pizda_ddp/lamec.json
new file mode 100644
index 0000000000000000000000000000000000000000..5a1dbcb54efde78612dd6d946fb797bd5164b175
--- /dev/null
+++ b/scripts/pizda_ddp/lamec.json
@@ -0,0 +1 @@
+{"startscript": "DDP_startscript"}
\ No newline at end of file
diff --git a/scripts/PizDa_DDP/reqs.txt b/scripts/pizda_ddp/reqs.txt
similarity index 100%
rename from scripts/PizDa_DDP/reqs.txt
rename to scripts/pizda_ddp/reqs.txt
diff --git a/scripts/Jureca_RayTune/Ray_2.4/PBT/.gitkeep b/scripts/rudens_ddp/.gitkeep
similarity index 100%
rename from scripts/Jureca_RayTune/Ray_2.4/PBT/.gitkeep
rename to scripts/rudens_ddp/.gitkeep
diff --git a/scripts/Rudens_DDP/rtu_run.sh b/scripts/rudens_ddp/rtu_run.sh
similarity index 100%
rename from scripts/Rudens_DDP/rtu_run.sh
rename to scripts/rudens_ddp/rtu_run.sh
diff --git a/scripts/Rudens_DDP/rtu_run_schedule.sh b/scripts/rudens_ddp/rtu_run_schedule.sh
similarity index 100%
rename from scripts/Rudens_DDP/rtu_run_schedule.sh
rename to scripts/rudens_ddp/rtu_run_schedule.sh
diff --git a/scripts/Rudens_DDP/.gitkeep b/scripts/vega_basilisk/.gitkeep
similarity index 100%
rename from scripts/Rudens_DDP/.gitkeep
rename to scripts/vega_basilisk/.gitkeep
diff --git a/scripts/Vega_ Basilisk/basilisk_cfd.sh b/scripts/vega_basilisk/basilisk_cfd.sh
similarity index 100%
rename from scripts/Vega_ Basilisk/basilisk_cfd.sh
rename to scripts/vega_basilisk/basilisk_cfd.sh
diff --git a/scripts/Vega_ Basilisk/basilisk_pde.sh b/scripts/vega_basilisk/basilisk_pde.sh
similarity index 100%
rename from scripts/Vega_ Basilisk/basilisk_pde.sh
rename to scripts/vega_basilisk/basilisk_pde.sh
diff --git a/scripts/vega_basilisk/lamec.json b/scripts/vega_basilisk/lamec.json
new file mode 100644
index 0000000000000000000000000000000000000000..c714558e48ac2237e955c724f0fc67632e3da290
--- /dev/null
+++ b/scripts/vega_basilisk/lamec.json
@@ -0,0 +1 @@
+{"startscript": "basilisk_cfd.sh"}
diff --git a/scripts/VSC_DDP/.gitkeep b/scripts/vsc_ddp/.gitkeep
similarity index 100%
rename from scripts/VSC_DDP/.gitkeep
rename to scripts/vsc_ddp/.gitkeep
diff --git a/scripts/VSC_DDP/dam_ex.job b/scripts/vsc_ddp/dam_ex.job
similarity index 100%
rename from scripts/VSC_DDP/dam_ex.job
rename to scripts/vsc_ddp/dam_ex.job
diff --git a/scripts/VSC_DDP/dam_tune_ex.job b/scripts/vsc_ddp/dam_tune_ex.job
similarity index 100%
rename from scripts/VSC_DDP/dam_tune_ex.job
rename to scripts/vsc_ddp/dam_tune_ex.job
diff --git a/scripts/VSC_DDP/raise_nn.def b/scripts/vsc_ddp/raise_nn.def
similarity index 100%
rename from scripts/VSC_DDP/raise_nn.def
rename to scripts/vsc_ddp/raise_nn.def
diff --git a/scripts/VSC_DDP/wice_ex.job b/scripts/vsc_ddp/wice_ex.job
similarity index 100%
rename from scripts/VSC_DDP/wice_ex.job
rename to scripts/vsc_ddp/wice_ex.job