still working on socket observable model