handle timeouts manually