https://levelup.gitconnected.com/chaining-decorators-understanding-how-to-apply-multiple-decorators-to-a-single-function-606b7c6d1de0