in reply to OOP - redefining a class
As to your problem... I think you should read about some design patterns to get a general idea of where you are and where you want to get. "Factories", in particular.