allow timeout to be configured