https://mysteryweevil.medium.com/mastering-time-and-concurrency-in-python-a-practical-guide-d27e9720a693