Initial work to use websockets instead of polling