clarify that timeout is optional