I may have left the websocket setup a bit in a mess, but it looks like it's working ;) definitely needs cleaning up