TODO: add a configurable timeout for TX.
TODO: add a configurable timeout for TX.