support for timeouts and cancelling pending requests