We need an audit of how this will break if we multithreaded this. Not that anyone ever multithreads python (cough)