maybe we can use `SOCKSSocket` instead of `Socket` or implement it (looks like it is not so difficult)