add time-out control
add timeout control