Modular Models

This pull request makes the models modular.  While it isn't 100% modular, it is modular that one can add additional models without disrupting the vast majority of the other code.