completed frontend and backend websockets