code: @Override
    public Task<String> create(String path, byte[] data, List<ACL> acl, CreateMode createMode) {
      return Task.async("zkCreate: " + path, () -> {
        SettablePromise<String> promise = Promises.settable();
        _zkClient.create(path, data, acl, createMode,
            (int rc, String p, Object ctx, String name) -> {
              KeeperException.Code code = KeeperException.Code.get(rc);
              switch (code) {
                case OK:
                  promise.done(name);
                  break;
                default:
                  promise.fail(KeeperException.create(code, p));
              }
            }, null);
        return promise;
      });
    }
docs: {@inheritDoc}