The way the code is set up, the model_impl_ is set during the xml initialization process.    So unless we run through the xml_file_loader (yuck) to init a model, or we manually call SetModelImpl (yuck) it doesn't get set.  I think we should probably move to making model_impl a pure virtual method that all concrete models implement:

```c++
virtual model_impl() {return "MyFooModel";};
```

Then it is always correct regardless of initialization method/process.