add Multi-Thread Support