most of websocket read model implemented