multithreaded now optional