wrapped up websockets client