changed Party models to have internal protected constructors to force instantiation through the factory classes.