https://medium.com/@piper_lubowitz/mastering-python-control-flow-alternatives-to-the-elusive-switch-statement-8da606a5eac3