complete event loop on the client, without the server