allowing instantiated objects to be passed instead of only the name

This will allow a more OOP approach to creating the factories and allow the factories to be defined per instance of the model.