updat with threads