https://glenn-viroux.medium.com/unlocking-pythons-design-patterns-exploring-powerful-solutions-with-examples-f684e0431710