better timeout mechanism