starting socket implementation