handle timeouts better