Use GenServer to encapsulate ZK to avoid spawning processes to watch