make parsing multithreaded