customizable timeouts