add socket initializer