public ZVModelImpl(String connectString) throws IOException {
        this.watcher = new ZkWatcher();
        this.zk = new ZooKeeper(connectString, 3000, this.watcher);
        // s this.watcherExecutor.execute(this.watcher);

        System.out.println("[" + Thread.currentThread() + "] AFTER ZK INIT");
        synchronized (watcher.lock) {
            while (watcher.dead) {
                try {
                    System.out.println("[" + Thread.currentThread()
                            + "Awaiting lock notification");
                    watcher.lock.wait();
                    System.out.println("[" + Thread.currentThread()
                            + "Lock notification, watcher.dead = "
                            + watcher.dead);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
        populateRoot();

    }