public T create(Inhabitant onBehalfOf) throws ComponentException {
try {
return type.newInstance();
} catch (InstantiationException e) {
throw new ComponentException("Failed to create "+type,e);
} catch (IllegalAccessException e) {
throw new ComponentException("Failed to create "+type,e);
} catch (LinkageError e) {
throw new ComponentException("Failed to create "+type,e);
} catch (RuntimeException e) {
throw new ComponentException("Failed to create "+type,e);
}
}