this will leave a vector of raw pointers. what do you think of:
```
while (!to_del.empty()) {
  Model* m = to_del.pop_back();
  KillModel(m);
}
```