add socket interface