class Servient {

    public boolean addThing(ExposedThing exposedThing) {
        if (exposedThing.getId() == null || exposedThing.getId().isEmpty()) {
            log.warn("Servient generating ID for '{}'", exposedThing);
            exposedThing.setId(Thing.randomId());
        }

        ExposedThing previous = things.putIfAbsent(exposedThing.getId(), exposedThing);
        return previous == null;
    }

    public  Servient();
    public  Servient(Config config);
    public  Servient(ServientConfig config);
      Servient(List<ProtocolServer> servers,
             Map<String, ProtocolClientFactory> clientFactories,
             Map<String, Object> credentialStore,
             Map<String, ExposedThing> things);

}