multithreading + minor updates