use threads for io