https://mysteryweevil.medium.com/elevate-your-code-with-design-patterns-exploring-decorators-in-python-bac6d7b0ae9a