Refactored a bit, got tests to work again (they broke for me, don't get why)
If tests don't work, add this to the environment variables of the run configuration (or project):
PYTHON_PATH = ../src
Simplify datastructures, add Map class