https://pypi.org/project/multipledispatch/ https://github.com/mrocklin/multipledispatch/
