multi-threaded parsing