>loFactory = Cretae("Factory") >loWait = loFactory.GetObject("MyPleaseWait") >* Now loWait is which ever class the factory data file says it should be >* I can change the form by changing the metadata and no code change is needed >* I cna mov3 the classlibs around as long as I update the metadata >That's one of the approaches I outlined. The questions I have revolve around the implementation matching the definition. In this case, your "client" is employing a data driven factory method patten, not an abstract factory pattern?