https://levelup.gitconnected.com/python-decorators-but-they-decorate-classes-instead-of-functions-823c5d59c74a