putting in a socket timeout