still working on socket model