[#2] Models can be instantiated with data

Models can now be seeded with data when they are instantiated by passing
a data object as the first argument to a model constructor.