still working on new socket observable model