updated timeout mechanism