add websocket abilities and finished frontend