Refactor models to allow multiple jobs

I've poked at this a bit and it seems to work fine.