added SocketFactoryWithTimeout