diff --git a/.gitignore b/.gitignore
index 3f432376c3af8beee100f17841e166c6f592e436..24f6cd85f90d688e1dbaf6e0c898b670b351982c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,58 +1,5 @@
-# use glob syntax.
-syntax: glob
-*.ser
-*.class
-*~
-*.bak
-#*.off
-*.old
+# python
+__pycache__
+.mypy_cache
 *.pyc
-*.bk
-*.swp
-.DS_Store
-**/__pycache__
-
-# logging files
-detailed.log
-
-# eclipse conf file
-.settings
-.classpath
-.project
-.manager
-.scala_dependencies
-
-# idea
-.idea
-*.iml
-
-# building
-target
-build
-null
-tmp*
-temp*
-dist
-test-output
-build.log
-
-# other scm
-.svn
-.CVS
-.hg*
-
-# switch to regexp syntax.
-#  syntax: regexp
-#  ^\.pc/
-
-#SHITTY output not in target directory
-build.log
-
-#emacs TAGS
-TAGS
-
-lib/
-env/
-
-# Egg
-parser/parser-big-dft/bigdftparser.egg-info/
+*.egg-info/
\ No newline at end of file
diff --git a/molcasparser/__init__.py b/molcasparser/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..6b7cbce807701137f038a6c11d7d6b2fbbc409d8
--- /dev/null
+++ b/molcasparser/__init__.py
@@ -0,0 +1 @@
+from .main import MolcasParser
diff --git a/parser/parser-molcas/functionals.py b/molcasparser/functionals.py
similarity index 98%
rename from parser/parser-molcas/functionals.py
rename to molcasparser/functionals.py
index 7f51d52e76c2d8cfb13b94be84478df5887290dd..c1c42efdeb529c986da49771a757ee29fe7c7a60 100644
--- a/parser/parser-molcas/functionals.py
+++ b/molcasparser/functionals.py
@@ -1,4 +1,4 @@
-# Copyright 2016-2018 The NOMAD Developers Group
+# Copyright 2016-2018 Ask Hjorth Larsen, Fawzi Mohamed
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/parser/parser-molcas/main.py b/molcasparser/main.py
similarity index 93%
rename from parser/parser-molcas/main.py
rename to molcasparser/main.py
index 07d3cac2f183ecbd95fde6680ed1691fdb68f84a..8e0bc8163b55f3d3ff358e29566876e2244d5eaf 100755
--- a/parser/parser-molcas/main.py
+++ b/molcasparser/main.py
@@ -1,4 +1,4 @@
-# Copyright 2016-2018 The NOMAD Developers Group
+# Copyright 2016-2018 Ask Hjorth Larsen, Fawzi Mohamed
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -17,8 +17,8 @@
 from __future__ import print_function
 import os
 import sys
-import setup_paths
 import re
+import logging
 
 import numpy as np
 from ase import Atoms
@@ -29,10 +29,11 @@ from nomadcore.simple_parser import mainFunction, SimpleMatcher as SM
 from nomadcore.local_meta_info import loadJsonFile, InfoKindEl
 from nomadcore.unit_conversion.unit_conversion \
     import register_userdefined_quantity, convert_unit
+import nomad_meta_info
 
-from functionals import functionals
+from .functionals import functionals
 
-metaInfoPath = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)),"../../../../nomad-meta-info/meta_info/nomad_meta_info/molcas.nomadmetainfo.json"))
+metaInfoPath = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(nomad_meta_info.__file__)), "molcas.nomadmetainfo.json"))
 metaInfoEnv, warnings = loadJsonFile(filePath=metaInfoPath,
                                      dependencyLoader=None,
                                      extraArgsHandling=InfoKindEl.ADD_EXTRA_ARGS,
@@ -640,29 +641,53 @@ def molcas_main_loop_sm():
            ] + get_anymodule_sms())
     return m
 
-mainFileDescription = SM(
-    name='root',
-    weak=True,
-    startReStr='',
-    fixedStartValues={'program_name': 'Molcas',
-                      'program_basis_set_type': 'gaussians'},
-    sections=['section_run'],
-    subMatchers=[
-        get_header_sm(),
-        #get_inputfile_echo_sm(),
-        molcas_main_loop_sm(),
-        SM(r'x^',  # force parser to parse the whole file
-           name='impossible')
-    ])
-
-
-def main(**kwargs):
-    mainFunction(mainFileDescription=mainFileDescription,
-                 metaInfoEnv=metaInfoEnv,
-                 parserInfo=parser_info,
-                 cachingLevelForMetaName={},
-                 superContext=context,
-                 **kwargs)
+def main_file_description():
+    return SM(
+        name='root',
+        weak=True,
+        startReStr='',
+        fixedStartValues={'program_name': 'Molcas',
+                        'program_basis_set_type': 'gaussians'},
+        sections=['section_run'],
+        subMatchers=[
+            get_header_sm(),
+            #get_inputfile_echo_sm(),
+            molcas_main_loop_sm(),
+            SM(r'x^',  # force parser to parse the whole file
+            name='impossible')
+        ])
+
+
+class MolcasParser():
+    """ A proper class envolop for running this parser from within python. """
+    def __init__(self, backend, **kwargs):
+        self.backend_factory = backend
+
+    def parse(self, mainfile):
+        global context
+        context = MolcasContext()
+
+        from unittest.mock import patch
+        logging.debug('molcas parser started')
+        logging.getLogger('nomadcore').setLevel(logging.WARNING)
+        backend = self.backend_factory(metaInfoEnv)
+        with patch.object(sys, 'argv', ['<exe>', '--uri', 'nmd://uri', mainfile]):
+            mainFunction(
+                mainFileDescription=main_file_description(),
+                metaInfoEnv=metaInfoEnv,
+                parserInfo=parser_info,
+                cachingLevelForMetaName={},
+                superContext=context,
+                superBackend=backend)
+
+        return backend
+
 
 if __name__ == '__main__':
-    main()
+    mainFunction(
+        mainFileDescription=main_file_description(),
+        metaInfoEnv=metaInfoEnv,
+        parserInfo=parser_info,
+        cachingLevelForMetaName={},
+        superContext=context,
+        **kwargs)
diff --git a/parser/parser-molcas/generate_scala_testcode.py b/parser/parser-molcas/generate_scala_testcode.py
deleted file mode 100755
index bd881f59a4064b21fc8c76b4ead4a89615de3cfd..0000000000000000000000000000000000000000
--- a/parser/parser-molcas/generate_scala_testcode.py
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright 2016-2018 The NOMAD Developers Group
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Main author and maintainer: Ask Hjorth Larsen <asklarsen@gmail.com>
-
-from __future__ import print_function
-import os
-from glob import glob
-
-scala_imports = """package eu.nomad_lab.parsers
-
-import eu.nomad_lab.{ parsers, DefaultPythonInterpreter }
-import org.scalacheck.Properties
-import org.specs2.mutable.Specification
-import org.{ json4s => jn }
-
-"""
-
-test_template = """\
-    "test %(name)s " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/%(name)s", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/%(name)s", "json") must_== ParseResult.ParseSuccess
-      }
-    }"""
-
-fd = open('out.scala', 'w')
-
-fd.write(scala_imports)
-
-print('object MolcasParserSpec extends Specification {', file=fd)
-print('  "MolcasParserTest" >> {', file=fd)
-
-fnames = glob('test/test???.input.out')
-fnames.sort()
-for fname in fnames:
-    fname = os.path.basename(fname)
-    print(test_template % dict(name=fname), file=fd)
-
-print('  }', file=fd)
-print('}', file=fd)
diff --git a/parser/parser-molcas/nomad_meta_info b/parser/parser-molcas/nomad_meta_info
deleted file mode 120000
index 1b10d0640f73609a04c7e90a8923e8ca39e692dd..0000000000000000000000000000000000000000
--- a/parser/parser-molcas/nomad_meta_info
+++ /dev/null
@@ -1 +0,0 @@
-../../../../nomad-meta-info/meta_info/nomad_meta_info
\ No newline at end of file
diff --git a/parser/parser-molcas/runtests.py b/parser/parser-molcas/runtests.py
deleted file mode 100755
index ab44ef86591c47ae2cd5af3e6353d2ae94da99e5..0000000000000000000000000000000000000000
--- a/parser/parser-molcas/runtests.py
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright 2016-2018 The NOMAD Developers Group
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Main author and maintainer: Ask Hjorth Larsen <asklarsen@gmail.com>
-
-from __future__ import print_function
-from glob import glob
-import re
-from optparse import OptionParser
-from subprocess import Popen, PIPE
-import os
-from ase.parallel import world
-import platform
-
-p = OptionParser()
-opts, args = p.parse_args()
-
-if len(args) == 0:
-    testfiles = glob('test/test???.input.out')
-    testfiles.sort()
-else:
-    testfiles = argv
-
-for i, testfile in enumerate(testfiles):
-    if i % world.size != world.rank:
-        continue
-    dirname, basename = os.path.split(testfile)
-    py = 'python'
-    if platform.node() == 'labdev-nomad':
-        py = '/labEnv3/bin/python'
-    args = [py, 'main.py', '--annotate']
-    args.append(testfile)
-    print(' '.join(args))
-    proc = Popen(args, stdout=PIPE)
-    txt = proc.stdout.read()
-    with open('%s.json' % testfile, 'w') as fd:
-        fd.write(txt.decode('ascii'))
diff --git a/parser/parser-molcas/setup_paths.py b/parser/parser-molcas/setup_paths.py
deleted file mode 100644
index 013c4ec3d31018ccd29e7b7a084cf5a7ca44d999..0000000000000000000000000000000000000000
--- a/parser/parser-molcas/setup_paths.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2016-2018 The NOMAD Developers Group
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Main author and maintainer: Ask Hjorth Larsen <asklarsen@gmail.com>
-
-import sys, os, os.path
-baseDir = os.path.dirname(os.path.abspath(__file__))
-commonDir = os.path.normpath(os.path.join(baseDir,"../../../../python-common/common/python"))
-
-if not commonDir in sys.path:
-    sys.path.insert(0, commonDir)
diff --git a/parser/parser-molcas/test b/parser/parser-molcas/test
deleted file mode 120000
index 39b7720836e0bcf774cce3cbc9a71f114591a809..0000000000000000000000000000000000000000
--- a/parser/parser-molcas/test
+++ /dev/null
@@ -1 +0,0 @@
-../../test/examples
\ No newline at end of file
diff --git a/pysrc b/pysrc
deleted file mode 120000
index acc58c682f0fb812bf7153d7cc9812943f3f66fc..0000000000000000000000000000000000000000
--- a/pysrc
+++ /dev/null
@@ -1 +0,0 @@
-parser/parser-molcas
\ No newline at end of file
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000000000000000000000000000000000000..ad1e4b61406ebc77b64a693626324bdd5244d481
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,33 @@
+# Copyright 2016-2018 Ask Hjorth Larsen, Fawzi Mohamed
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+from setuptools import setup, find_packages
+
+
+def main():
+    setup(
+        name='molcasparser',
+        version='0.1',
+        description='NOMAD parser implementation for Molcas.',
+        author='Ask Hjorth Larsen, Fawzi Mohamed',
+        license='APACHE 2.0',
+        packages=find_packages(),
+        install_requires=[
+            'nomadcore'
+        ],
+    )
+
+
+if __name__ == '__main__':
+    main()
diff --git a/src/main/scala/eu/nomad_lab/parsers/MolcasParser.scala b/src/main/scala/eu/nomad_lab/parsers/MolcasParser.scala
deleted file mode 100644
index fdf049e660d8a326dee13f5a9147b84db80493ac..0000000000000000000000000000000000000000
--- a/src/main/scala/eu/nomad_lab/parsers/MolcasParser.scala
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-   Copyright 2016-2017 The NOMAD Developers Group
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
- */
-package eu.nomad_lab.parsers
-
-import eu.{ nomad_lab => lab }
-import eu.nomad_lab.DefaultPythonInterpreter
-import org.{ json4s => jn }
-import scala.collection.breakOut
-
-object MolcasParser extends SimpleExternalParserGenerator(
-  name = "MolcasParser",
-  parserInfo = jn.JObject(
-    ("name" -> jn.JString("MolcasParser")) ::
-      ("parserId" -> jn.JString("MolcasParser" + lab.MolcasVersionInfo.version)) ::
-      ("versionInfo" -> jn.JObject(
-        ("nomadCoreVersion" -> jn.JObject(lab.NomadCoreVersionInfo.toMap.map {
-          case (k, v) => k -> jn.JString(v.toString)
-        }(breakOut): List[(String, jn.JString)])) ::
-          (lab.MolcasVersionInfo.toMap.map {
-            case (key, value) =>
-              (key -> jn.JString(value.toString))
-          }(breakOut): List[(String, jn.JString)])
-      )) :: Nil
-  ),
-  mainFileTypes = Seq("text/.*"),
-  mainFileRe = """
-    \s*\^[\s\^]*M O L C A S\s*
-    \s*\^[\s\^]*version \S+ patchlevel \S+\s*
-""".r,
-  cmd = Seq(DefaultPythonInterpreter.pythonExe(), "${envDir}/parsers/molcas/parser/parser-molcas/main.py",
-    "--uri", "${mainFileUri}", "${mainFilePath}"),
-  resList = Seq(
-    "parser-molcas/main.py",
-    "parser-molcas/functionals.py",
-    "parser-molcas/setup_paths.py",
-    "nomad_meta_info/public.nomadmetainfo.json",
-    "nomad_meta_info/common.nomadmetainfo.json",
-    "nomad_meta_info/meta_types.nomadmetainfo.json",
-    "nomad_meta_info/molcas.nomadmetainfo.json"
-  ) ++ DefaultPythonInterpreter.commonFiles(),
-  dirMap = Map(
-    "parser-molcas" -> "parsers/molcas/parser/parser-molcas",
-    "nomad_meta_info" -> "nomad-meta-info/meta_info/nomad_meta_info",
-    "python" -> "python-common/common/python/nomadcore"
-  ) ++ DefaultPythonInterpreter.commonDirMapping(),
-  metaInfoEnv = Some(lab.meta.KnownMetaInfoEnvs.molcas)
-)
diff --git a/src/test/scala/eu/nomad_lab/parsers/MolcasParserSpec.scala b/src/test/scala/eu/nomad_lab/parsers/MolcasParserSpec.scala
deleted file mode 100644
index fa30a12e540a5fdf24476d5de5ea770f31e7085f..0000000000000000000000000000000000000000
--- a/src/test/scala/eu/nomad_lab/parsers/MolcasParserSpec.scala
+++ /dev/null
@@ -1,594 +0,0 @@
-/*
-   Copyright 2016-2017 The NOMAD Developers Group
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
- */
-package eu.nomad_lab.parsers
-
-import eu.nomad_lab.{ parsers, DefaultPythonInterpreter }
-import org.scalacheck.Properties
-import org.specs2.mutable.Specification
-import org.{ json4s => jn }
-
-object MolcasParserSpec extends Specification {
-  "MolcasParserTest" >> {
-    "test test000.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test000.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test000.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test001.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test001.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test001.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test002.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test002.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test002.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test003.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test003.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test003.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test004.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test004.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test004.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test005.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test005.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test005.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test006.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test006.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test006.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test007.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test007.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test007.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test008.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test008.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test008.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test009.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test009.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test009.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test010.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test010.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test010.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test011.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test011.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test011.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test012.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test012.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test012.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test013.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test013.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test013.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test014.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test014.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test014.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test015.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test015.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test015.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test016.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test016.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test016.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test017.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test017.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test017.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test018.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test018.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test018.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test019.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test019.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test019.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test020.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test020.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test020.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test021.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test021.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test021.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test022.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test022.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test022.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test023.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test023.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test023.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test024.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test024.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test024.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test025.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test025.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test025.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test026.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test026.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test026.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test027.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test027.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test027.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test028.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test028.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test028.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test029.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test029.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test029.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test030.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test030.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test030.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test031.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test031.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test031.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test032.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test032.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test032.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test033.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test033.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test033.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test034.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test034.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test034.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test036.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test036.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test036.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test037.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test037.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test037.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test038.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test038.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test038.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test039.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test039.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test039.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test040.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test040.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test040.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test041.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test041.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test041.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test042.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test042.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test042.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test043.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test043.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test043.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test044.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test044.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test044.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test045.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test045.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test045.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test046.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test046.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test046.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test047.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test047.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test047.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test048.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test048.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test048.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test049.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test049.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test049.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test050.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test050.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test050.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test051.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test051.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test051.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test052.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test052.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test052.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test053.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test053.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test053.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test054.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test054.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test054.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test900.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test900.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test900.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test901.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test901.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test901.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test902.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test902.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test902.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test903.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test903.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test903.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test904.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test904.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test904.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test905.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test905.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test905.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test906.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test906.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test906.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test907.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test907.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test907.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test908.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test908.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test908.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test909.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test909.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test909.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test910.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test910.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test910.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test911.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test911.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test911.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test912.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test912.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test912.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test914.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test914.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test914.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test915.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test915.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test915.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test916.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test916.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test916.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-    "test test917.input.out " >> {
-      "test with json-events" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test917.input.out", "json-events") must_== ParseResult.ParseSuccess
-      }
-      "test with json" >> {
-        ParserRun.parse(MolcasParser, "parsers/molcas/test/examples/test917.input.out", "json") must_== ParseResult.ParseSuccess
-      }
-    }
-  }
-}
diff --git a/test/examples/.gitignore b/tests/.gitignore
similarity index 100%
rename from test/examples/.gitignore
rename to tests/.gitignore
diff --git a/test/examples/inputs/test000.input b/tests/inputs/test000.input
similarity index 100%
rename from test/examples/inputs/test000.input
rename to tests/inputs/test000.input
diff --git a/test/examples/inputs/test001.input b/tests/inputs/test001.input
similarity index 100%
rename from test/examples/inputs/test001.input
rename to tests/inputs/test001.input
diff --git a/test/examples/inputs/test002.input b/tests/inputs/test002.input
similarity index 100%
rename from test/examples/inputs/test002.input
rename to tests/inputs/test002.input
diff --git a/test/examples/inputs/test003.input b/tests/inputs/test003.input
similarity index 100%
rename from test/examples/inputs/test003.input
rename to tests/inputs/test003.input
diff --git a/test/examples/inputs/test004.input b/tests/inputs/test004.input
similarity index 100%
rename from test/examples/inputs/test004.input
rename to tests/inputs/test004.input
diff --git a/test/examples/inputs/test005.input b/tests/inputs/test005.input
similarity index 100%
rename from test/examples/inputs/test005.input
rename to tests/inputs/test005.input
diff --git a/test/examples/inputs/test006.input b/tests/inputs/test006.input
similarity index 100%
rename from test/examples/inputs/test006.input
rename to tests/inputs/test006.input
diff --git a/test/examples/inputs/test007.input b/tests/inputs/test007.input
similarity index 100%
rename from test/examples/inputs/test007.input
rename to tests/inputs/test007.input
diff --git a/test/examples/inputs/test008.input b/tests/inputs/test008.input
similarity index 100%
rename from test/examples/inputs/test008.input
rename to tests/inputs/test008.input
diff --git a/test/examples/inputs/test009.input b/tests/inputs/test009.input
similarity index 100%
rename from test/examples/inputs/test009.input
rename to tests/inputs/test009.input
diff --git a/test/examples/inputs/test010.input b/tests/inputs/test010.input
similarity index 100%
rename from test/examples/inputs/test010.input
rename to tests/inputs/test010.input
diff --git a/test/examples/inputs/test011.input b/tests/inputs/test011.input
similarity index 100%
rename from test/examples/inputs/test011.input
rename to tests/inputs/test011.input
diff --git a/test/examples/inputs/test012.input b/tests/inputs/test012.input
similarity index 100%
rename from test/examples/inputs/test012.input
rename to tests/inputs/test012.input
diff --git a/test/examples/inputs/test013.input b/tests/inputs/test013.input
similarity index 100%
rename from test/examples/inputs/test013.input
rename to tests/inputs/test013.input
diff --git a/test/examples/inputs/test014.input b/tests/inputs/test014.input
similarity index 100%
rename from test/examples/inputs/test014.input
rename to tests/inputs/test014.input
diff --git a/test/examples/inputs/test015.input b/tests/inputs/test015.input
similarity index 100%
rename from test/examples/inputs/test015.input
rename to tests/inputs/test015.input
diff --git a/test/examples/inputs/test016.input b/tests/inputs/test016.input
similarity index 100%
rename from test/examples/inputs/test016.input
rename to tests/inputs/test016.input
diff --git a/test/examples/inputs/test017.input b/tests/inputs/test017.input
similarity index 100%
rename from test/examples/inputs/test017.input
rename to tests/inputs/test017.input
diff --git a/test/examples/inputs/test018.input b/tests/inputs/test018.input
similarity index 100%
rename from test/examples/inputs/test018.input
rename to tests/inputs/test018.input
diff --git a/test/examples/inputs/test019.input b/tests/inputs/test019.input
similarity index 100%
rename from test/examples/inputs/test019.input
rename to tests/inputs/test019.input
diff --git a/test/examples/inputs/test020.input b/tests/inputs/test020.input
similarity index 100%
rename from test/examples/inputs/test020.input
rename to tests/inputs/test020.input
diff --git a/test/examples/inputs/test021.input b/tests/inputs/test021.input
similarity index 100%
rename from test/examples/inputs/test021.input
rename to tests/inputs/test021.input
diff --git a/test/examples/inputs/test022.input b/tests/inputs/test022.input
similarity index 100%
rename from test/examples/inputs/test022.input
rename to tests/inputs/test022.input
diff --git a/test/examples/inputs/test023.input b/tests/inputs/test023.input
similarity index 100%
rename from test/examples/inputs/test023.input
rename to tests/inputs/test023.input
diff --git a/test/examples/inputs/test024.input b/tests/inputs/test024.input
similarity index 100%
rename from test/examples/inputs/test024.input
rename to tests/inputs/test024.input
diff --git a/test/examples/inputs/test025.input b/tests/inputs/test025.input
similarity index 100%
rename from test/examples/inputs/test025.input
rename to tests/inputs/test025.input
diff --git a/test/examples/inputs/test026.input b/tests/inputs/test026.input
similarity index 100%
rename from test/examples/inputs/test026.input
rename to tests/inputs/test026.input
diff --git a/test/examples/inputs/test027.input b/tests/inputs/test027.input
similarity index 100%
rename from test/examples/inputs/test027.input
rename to tests/inputs/test027.input
diff --git a/test/examples/inputs/test028.input b/tests/inputs/test028.input
similarity index 100%
rename from test/examples/inputs/test028.input
rename to tests/inputs/test028.input
diff --git a/test/examples/inputs/test029.input b/tests/inputs/test029.input
similarity index 100%
rename from test/examples/inputs/test029.input
rename to tests/inputs/test029.input
diff --git a/test/examples/inputs/test030.input b/tests/inputs/test030.input
similarity index 100%
rename from test/examples/inputs/test030.input
rename to tests/inputs/test030.input
diff --git a/test/examples/inputs/test031.input b/tests/inputs/test031.input
similarity index 100%
rename from test/examples/inputs/test031.input
rename to tests/inputs/test031.input
diff --git a/test/examples/inputs/test032.input b/tests/inputs/test032.input
similarity index 100%
rename from test/examples/inputs/test032.input
rename to tests/inputs/test032.input
diff --git a/test/examples/inputs/test033.input b/tests/inputs/test033.input
similarity index 100%
rename from test/examples/inputs/test033.input
rename to tests/inputs/test033.input
diff --git a/test/examples/inputs/test034.input b/tests/inputs/test034.input
similarity index 100%
rename from test/examples/inputs/test034.input
rename to tests/inputs/test034.input
diff --git a/test/examples/inputs/test036.input b/tests/inputs/test036.input
similarity index 100%
rename from test/examples/inputs/test036.input
rename to tests/inputs/test036.input
diff --git a/test/examples/inputs/test037.input b/tests/inputs/test037.input
similarity index 100%
rename from test/examples/inputs/test037.input
rename to tests/inputs/test037.input
diff --git a/test/examples/inputs/test038.input b/tests/inputs/test038.input
similarity index 100%
rename from test/examples/inputs/test038.input
rename to tests/inputs/test038.input
diff --git a/test/examples/inputs/test039.input b/tests/inputs/test039.input
similarity index 100%
rename from test/examples/inputs/test039.input
rename to tests/inputs/test039.input
diff --git a/test/examples/inputs/test040.input b/tests/inputs/test040.input
similarity index 100%
rename from test/examples/inputs/test040.input
rename to tests/inputs/test040.input
diff --git a/test/examples/inputs/test041.input b/tests/inputs/test041.input
similarity index 100%
rename from test/examples/inputs/test041.input
rename to tests/inputs/test041.input
diff --git a/test/examples/inputs/test042.input b/tests/inputs/test042.input
similarity index 100%
rename from test/examples/inputs/test042.input
rename to tests/inputs/test042.input
diff --git a/test/examples/inputs/test043.input b/tests/inputs/test043.input
similarity index 100%
rename from test/examples/inputs/test043.input
rename to tests/inputs/test043.input
diff --git a/test/examples/inputs/test044.input b/tests/inputs/test044.input
similarity index 100%
rename from test/examples/inputs/test044.input
rename to tests/inputs/test044.input
diff --git a/test/examples/inputs/test045.input b/tests/inputs/test045.input
similarity index 100%
rename from test/examples/inputs/test045.input
rename to tests/inputs/test045.input
diff --git a/test/examples/inputs/test046.input b/tests/inputs/test046.input
similarity index 100%
rename from test/examples/inputs/test046.input
rename to tests/inputs/test046.input
diff --git a/test/examples/inputs/test047.input b/tests/inputs/test047.input
similarity index 100%
rename from test/examples/inputs/test047.input
rename to tests/inputs/test047.input
diff --git a/test/examples/inputs/test048.input b/tests/inputs/test048.input
similarity index 100%
rename from test/examples/inputs/test048.input
rename to tests/inputs/test048.input
diff --git a/test/examples/inputs/test049.input b/tests/inputs/test049.input
similarity index 100%
rename from test/examples/inputs/test049.input
rename to tests/inputs/test049.input
diff --git a/test/examples/inputs/test050.input b/tests/inputs/test050.input
similarity index 100%
rename from test/examples/inputs/test050.input
rename to tests/inputs/test050.input
diff --git a/test/examples/inputs/test051.input b/tests/inputs/test051.input
similarity index 100%
rename from test/examples/inputs/test051.input
rename to tests/inputs/test051.input
diff --git a/test/examples/inputs/test052.input b/tests/inputs/test052.input
similarity index 100%
rename from test/examples/inputs/test052.input
rename to tests/inputs/test052.input
diff --git a/test/examples/inputs/test053.input b/tests/inputs/test053.input
similarity index 100%
rename from test/examples/inputs/test053.input
rename to tests/inputs/test053.input
diff --git a/test/examples/inputs/test054.input b/tests/inputs/test054.input
similarity index 100%
rename from test/examples/inputs/test054.input
rename to tests/inputs/test054.input
diff --git a/test/examples/inputs/test900.input b/tests/inputs/test900.input
similarity index 100%
rename from test/examples/inputs/test900.input
rename to tests/inputs/test900.input
diff --git a/test/examples/inputs/test901.input b/tests/inputs/test901.input
similarity index 100%
rename from test/examples/inputs/test901.input
rename to tests/inputs/test901.input
diff --git a/test/examples/inputs/test902.input b/tests/inputs/test902.input
similarity index 100%
rename from test/examples/inputs/test902.input
rename to tests/inputs/test902.input
diff --git a/test/examples/inputs/test903.input b/tests/inputs/test903.input
similarity index 100%
rename from test/examples/inputs/test903.input
rename to tests/inputs/test903.input
diff --git a/test/examples/inputs/test904.input b/tests/inputs/test904.input
similarity index 100%
rename from test/examples/inputs/test904.input
rename to tests/inputs/test904.input
diff --git a/test/examples/inputs/test905.input b/tests/inputs/test905.input
similarity index 100%
rename from test/examples/inputs/test905.input
rename to tests/inputs/test905.input
diff --git a/test/examples/inputs/test906.input b/tests/inputs/test906.input
similarity index 100%
rename from test/examples/inputs/test906.input
rename to tests/inputs/test906.input
diff --git a/test/examples/inputs/test907.input b/tests/inputs/test907.input
similarity index 100%
rename from test/examples/inputs/test907.input
rename to tests/inputs/test907.input
diff --git a/test/examples/inputs/test908.input b/tests/inputs/test908.input
similarity index 100%
rename from test/examples/inputs/test908.input
rename to tests/inputs/test908.input
diff --git a/test/examples/inputs/test909.input b/tests/inputs/test909.input
similarity index 100%
rename from test/examples/inputs/test909.input
rename to tests/inputs/test909.input
diff --git a/test/examples/inputs/test910.input b/tests/inputs/test910.input
similarity index 100%
rename from test/examples/inputs/test910.input
rename to tests/inputs/test910.input
diff --git a/test/examples/inputs/test911.input b/tests/inputs/test911.input
similarity index 100%
rename from test/examples/inputs/test911.input
rename to tests/inputs/test911.input
diff --git a/test/examples/inputs/test912.input b/tests/inputs/test912.input
similarity index 100%
rename from test/examples/inputs/test912.input
rename to tests/inputs/test912.input
diff --git a/test/examples/inputs/test914.input b/tests/inputs/test914.input
similarity index 100%
rename from test/examples/inputs/test914.input
rename to tests/inputs/test914.input
diff --git a/test/examples/inputs/test915.input b/tests/inputs/test915.input
similarity index 100%
rename from test/examples/inputs/test915.input
rename to tests/inputs/test915.input
diff --git a/test/examples/inputs/test916.input b/tests/inputs/test916.input
similarity index 100%
rename from test/examples/inputs/test916.input
rename to tests/inputs/test916.input
diff --git a/test/examples/inputs/test917.input b/tests/inputs/test917.input
similarity index 100%
rename from test/examples/inputs/test917.input
rename to tests/inputs/test917.input
diff --git a/test/examples/test000.input.out b/tests/test000.input.out
similarity index 100%
rename from test/examples/test000.input.out
rename to tests/test000.input.out
diff --git a/test/examples/test001.input.out b/tests/test001.input.out
similarity index 100%
rename from test/examples/test001.input.out
rename to tests/test001.input.out
diff --git a/test/examples/test002.input.out b/tests/test002.input.out
similarity index 100%
rename from test/examples/test002.input.out
rename to tests/test002.input.out
diff --git a/test/examples/test003.input.out b/tests/test003.input.out
similarity index 100%
rename from test/examples/test003.input.out
rename to tests/test003.input.out
diff --git a/test/examples/test004.input.out b/tests/test004.input.out
similarity index 100%
rename from test/examples/test004.input.out
rename to tests/test004.input.out
diff --git a/test/examples/test005.input.out b/tests/test005.input.out
similarity index 100%
rename from test/examples/test005.input.out
rename to tests/test005.input.out
diff --git a/test/examples/test006.input.out b/tests/test006.input.out
similarity index 100%
rename from test/examples/test006.input.out
rename to tests/test006.input.out
diff --git a/test/examples/test007.input.out b/tests/test007.input.out
similarity index 100%
rename from test/examples/test007.input.out
rename to tests/test007.input.out
diff --git a/test/examples/test008.input.out b/tests/test008.input.out
similarity index 100%
rename from test/examples/test008.input.out
rename to tests/test008.input.out
diff --git a/test/examples/test009.input.out b/tests/test009.input.out
similarity index 100%
rename from test/examples/test009.input.out
rename to tests/test009.input.out
diff --git a/test/examples/test010.input.out b/tests/test010.input.out
similarity index 100%
rename from test/examples/test010.input.out
rename to tests/test010.input.out
diff --git a/test/examples/test011.input.out b/tests/test011.input.out
similarity index 100%
rename from test/examples/test011.input.out
rename to tests/test011.input.out
diff --git a/test/examples/test012.input.out b/tests/test012.input.out
similarity index 100%
rename from test/examples/test012.input.out
rename to tests/test012.input.out
diff --git a/test/examples/test013.input.out b/tests/test013.input.out
similarity index 100%
rename from test/examples/test013.input.out
rename to tests/test013.input.out
diff --git a/test/examples/test014.input.out b/tests/test014.input.out
similarity index 100%
rename from test/examples/test014.input.out
rename to tests/test014.input.out
diff --git a/test/examples/test015.input.out b/tests/test015.input.out
similarity index 100%
rename from test/examples/test015.input.out
rename to tests/test015.input.out
diff --git a/test/examples/test016.input.out b/tests/test016.input.out
similarity index 100%
rename from test/examples/test016.input.out
rename to tests/test016.input.out
diff --git a/test/examples/test017.input.out b/tests/test017.input.out
similarity index 100%
rename from test/examples/test017.input.out
rename to tests/test017.input.out
diff --git a/test/examples/test018.input.out b/tests/test018.input.out
similarity index 100%
rename from test/examples/test018.input.out
rename to tests/test018.input.out
diff --git a/test/examples/test019.input.out b/tests/test019.input.out
similarity index 100%
rename from test/examples/test019.input.out
rename to tests/test019.input.out
diff --git a/test/examples/test020.input.out b/tests/test020.input.out
similarity index 100%
rename from test/examples/test020.input.out
rename to tests/test020.input.out
diff --git a/test/examples/test021.input.out b/tests/test021.input.out
similarity index 100%
rename from test/examples/test021.input.out
rename to tests/test021.input.out
diff --git a/test/examples/test022.input.out b/tests/test022.input.out
similarity index 100%
rename from test/examples/test022.input.out
rename to tests/test022.input.out
diff --git a/test/examples/test023.input.out b/tests/test023.input.out
similarity index 100%
rename from test/examples/test023.input.out
rename to tests/test023.input.out
diff --git a/test/examples/test024.input.out b/tests/test024.input.out
similarity index 100%
rename from test/examples/test024.input.out
rename to tests/test024.input.out
diff --git a/test/examples/test025.input.out b/tests/test025.input.out
similarity index 100%
rename from test/examples/test025.input.out
rename to tests/test025.input.out
diff --git a/test/examples/test026.input.out b/tests/test026.input.out
similarity index 100%
rename from test/examples/test026.input.out
rename to tests/test026.input.out
diff --git a/test/examples/test027.input.out b/tests/test027.input.out
similarity index 100%
rename from test/examples/test027.input.out
rename to tests/test027.input.out
diff --git a/test/examples/test028.input.out b/tests/test028.input.out
similarity index 100%
rename from test/examples/test028.input.out
rename to tests/test028.input.out
diff --git a/test/examples/test029.input.out b/tests/test029.input.out
similarity index 100%
rename from test/examples/test029.input.out
rename to tests/test029.input.out
diff --git a/test/examples/test030.input.out b/tests/test030.input.out
similarity index 100%
rename from test/examples/test030.input.out
rename to tests/test030.input.out
diff --git a/test/examples/test031.input.out b/tests/test031.input.out
similarity index 100%
rename from test/examples/test031.input.out
rename to tests/test031.input.out
diff --git a/test/examples/test032.input.out b/tests/test032.input.out
similarity index 100%
rename from test/examples/test032.input.out
rename to tests/test032.input.out
diff --git a/test/examples/test033.input.out b/tests/test033.input.out
similarity index 100%
rename from test/examples/test033.input.out
rename to tests/test033.input.out
diff --git a/test/examples/test034.input.out b/tests/test034.input.out
similarity index 100%
rename from test/examples/test034.input.out
rename to tests/test034.input.out
diff --git a/test/examples/test036.input.out b/tests/test036.input.out
similarity index 100%
rename from test/examples/test036.input.out
rename to tests/test036.input.out
diff --git a/test/examples/test037.input.out b/tests/test037.input.out
similarity index 100%
rename from test/examples/test037.input.out
rename to tests/test037.input.out
diff --git a/test/examples/test038.input.out b/tests/test038.input.out
similarity index 100%
rename from test/examples/test038.input.out
rename to tests/test038.input.out
diff --git a/test/examples/test039.input.out b/tests/test039.input.out
similarity index 100%
rename from test/examples/test039.input.out
rename to tests/test039.input.out
diff --git a/test/examples/test040.input.out b/tests/test040.input.out
similarity index 100%
rename from test/examples/test040.input.out
rename to tests/test040.input.out
diff --git a/test/examples/test041.input.out b/tests/test041.input.out
similarity index 100%
rename from test/examples/test041.input.out
rename to tests/test041.input.out
diff --git a/test/examples/test042.input.out b/tests/test042.input.out
similarity index 100%
rename from test/examples/test042.input.out
rename to tests/test042.input.out
diff --git a/test/examples/test043.input.out b/tests/test043.input.out
similarity index 100%
rename from test/examples/test043.input.out
rename to tests/test043.input.out
diff --git a/test/examples/test044.input.out b/tests/test044.input.out
similarity index 100%
rename from test/examples/test044.input.out
rename to tests/test044.input.out
diff --git a/test/examples/test045.input.out b/tests/test045.input.out
similarity index 100%
rename from test/examples/test045.input.out
rename to tests/test045.input.out
diff --git a/test/examples/test046.input.out b/tests/test046.input.out
similarity index 100%
rename from test/examples/test046.input.out
rename to tests/test046.input.out
diff --git a/test/examples/test047.input.out b/tests/test047.input.out
similarity index 100%
rename from test/examples/test047.input.out
rename to tests/test047.input.out
diff --git a/test/examples/test048.input.out b/tests/test048.input.out
similarity index 100%
rename from test/examples/test048.input.out
rename to tests/test048.input.out
diff --git a/test/examples/test049.input.out b/tests/test049.input.out
similarity index 100%
rename from test/examples/test049.input.out
rename to tests/test049.input.out
diff --git a/test/examples/test050.input.out b/tests/test050.input.out
similarity index 100%
rename from test/examples/test050.input.out
rename to tests/test050.input.out
diff --git a/test/examples/test051.input.out b/tests/test051.input.out
similarity index 100%
rename from test/examples/test051.input.out
rename to tests/test051.input.out
diff --git a/test/examples/test052.input.out b/tests/test052.input.out
similarity index 100%
rename from test/examples/test052.input.out
rename to tests/test052.input.out
diff --git a/test/examples/test053.input.out b/tests/test053.input.out
similarity index 100%
rename from test/examples/test053.input.out
rename to tests/test053.input.out
diff --git a/test/examples/test054.input.out b/tests/test054.input.out
similarity index 100%
rename from test/examples/test054.input.out
rename to tests/test054.input.out
diff --git a/test/examples/test900.input.out b/tests/test900.input.out
similarity index 100%
rename from test/examples/test900.input.out
rename to tests/test900.input.out
diff --git a/test/examples/test901.input.out b/tests/test901.input.out
similarity index 100%
rename from test/examples/test901.input.out
rename to tests/test901.input.out
diff --git a/test/examples/test902.input.out b/tests/test902.input.out
similarity index 100%
rename from test/examples/test902.input.out
rename to tests/test902.input.out
diff --git a/test/examples/test903.input.out b/tests/test903.input.out
similarity index 100%
rename from test/examples/test903.input.out
rename to tests/test903.input.out
diff --git a/test/examples/test904.input.out b/tests/test904.input.out
similarity index 100%
rename from test/examples/test904.input.out
rename to tests/test904.input.out
diff --git a/test/examples/test905.input.out b/tests/test905.input.out
similarity index 100%
rename from test/examples/test905.input.out
rename to tests/test905.input.out
diff --git a/test/examples/test906.input.out b/tests/test906.input.out
similarity index 100%
rename from test/examples/test906.input.out
rename to tests/test906.input.out
diff --git a/test/examples/test907.input.out b/tests/test907.input.out
similarity index 100%
rename from test/examples/test907.input.out
rename to tests/test907.input.out
diff --git a/test/examples/test908.input.out b/tests/test908.input.out
similarity index 100%
rename from test/examples/test908.input.out
rename to tests/test908.input.out
diff --git a/test/examples/test909.input.out b/tests/test909.input.out
similarity index 100%
rename from test/examples/test909.input.out
rename to tests/test909.input.out
diff --git a/test/examples/test910.input.out b/tests/test910.input.out
similarity index 100%
rename from test/examples/test910.input.out
rename to tests/test910.input.out
diff --git a/test/examples/test911.input.out b/tests/test911.input.out
similarity index 100%
rename from test/examples/test911.input.out
rename to tests/test911.input.out
diff --git a/test/examples/test912.input.out b/tests/test912.input.out
similarity index 100%
rename from test/examples/test912.input.out
rename to tests/test912.input.out
diff --git a/test/examples/test914.input.out b/tests/test914.input.out
similarity index 100%
rename from test/examples/test914.input.out
rename to tests/test914.input.out
diff --git a/test/examples/test915.input.out b/tests/test915.input.out
similarity index 100%
rename from test/examples/test915.input.out
rename to tests/test915.input.out
diff --git a/test/examples/test916.input.out b/tests/test916.input.out
similarity index 100%
rename from test/examples/test916.input.out
rename to tests/test916.input.out
diff --git a/test/examples/test917.input.out b/tests/test917.input.out
similarity index 100%
rename from test/examples/test917.input.out
rename to tests/test917.input.out