add socker-client and add tests