https://medium.com/aatomz-research/unlocking-the-magic-of-python-decorators-a-beginners-guide-2d49606bb099