mix: only depend on socket