OTFClient no longer extends from Thread, but now implements Runnable. This means, it can no longer be started with "new OTFClient(...).start();", but must be called either with ".run();" to have it run in the same thread, or with "new Thread(new OTFClient(...)).start();" to have it running in another thread (e.g. for live-visualization). Adapted code where necessary.