add multithreading for blast