support timeout option