https://medium.com/codex/enhancing-python-skills-a-theoretical-guide-to-math-and-custom-modules-for-advanced-e68e4dafa479