- fix gc bug
- split socket into socket/tcpsock/udpsock