https://levelup.gitconnected.com/python-decorators-10-things-you-should-never-do-learn-from-my-mistakes-2e634b8f125d