refactoring to use a factory for instantiated the data objects involved. This results in much "dumber" data object classes which expect all their parameters on instantiation and subsequent object instantiation is all routed through the object factory instead. The instantiation of the object factory itself is still a little wtf, but I will worry about that later. This should move object instantiation toward a paradigm where we can create object factory decorators and allow for things like caching mechanisms without needing to subclass the entire set of dumb value objects.