super important update. the threading threads have become multiprocessing threads. This means that we can run each thread independently, and carefully look at it's output. If a thread dies, we can run it independently and get a very accurate error message about which line of code it died on.