refactored socks5