add lock for thread-safe. reduce response-waiting time
add to do