introduce EtcdInterface for testability
docker and/or etcd client may not be thread safe?
introduce EtcdWatcher
refactor: introduce cluster