https://lists.pythonprogramminghelp.com/5-rookie-mistakes-general-factorial-designs-make/