Registry

This needs a lot of refactoring to make the code more legible, but the basic use case works. We also need unit tests for `run_model` -- it is getting far too unwieldy.