working through timeout logic