Switch to C++, at least temporarily, add multithreading