About to refactor out model...
More refactors

Still thinking about how to add constraints effectively