#19 Support timeout (implemented and tested)