refactor a base class for models and fix some bugs on model.spawn
a system test that runs against the public DPLA api