https://mysteryweevil.medium.com/mastering-python-decorators-with-state-elevate-your-codes-flexibility-62163a05dc2c