moved the timeout stuff back to socket object where it belongs