brought timeout handling back to Client and reworked the API.
fixed example
fixed bench