code: private void putId() {
          // note: name and info may be null
          super.put("Provider.id name", String.valueOf(name));
          super.put("Provider.id version", String.valueOf(version));
          super.put("Provider.id info", String.valueOf(info));
          super.put("Provider.id className", this.getClass().getName());
      }
docs: report to different provider objects as the same