+) add draft： multi-thread