https://medium.com/@everythingprogramming/the-best-python-decorators-for-code-optimization-4f485ec5bfd1