try {
T objectShell = type.newInstance();
String className = type.getName();
Config objectConfig = configObject.toConfig();
try {
objectConfig = objectConfig.withFallback(globalConfig.getConfig(className));
} catch (ConfigException logged) {
log.debug("failed to get defaults for {}", className, logged);
}
populateObjectFields(info, objectShell, objectConfig);
return objectShell;