https://modules.pythonprogramminghelp.com/5-rookie-mistakes-unbalanced-nested-designs-make/