Bob, I'd like to hear what Tony has to say. I've been catching the UnknownParticleID exceptions and handeling the different objects, like strings, di-quarks, etc. I would propose that we extend the DefaultParticlePropertyProvider by creating a PythiaParticlePropertyProvider to handle the Particle ID exceptions that the Pythia authors choose to make. I've been working on a PythiaMonteCarloAnalyzer class that handles reading generated Pythia events and deciphering the production channel and decays. A base MonteCarloAnalyzer class provides a standard interface to the generated information. You can find the code off my SLAC directory at http://www.slac.stanford.edu/~ronan/code/lcd/hep.lcd.mc.analysis the methods in PythiaMonteCarloAnalyzer that might be of general interest are: HEPLST(ParticleVector pv) - Provides a Pythia-like dump (see Tony's new PlugIn) interpretPythiaEvent(LCDEvent event) - Interprets Pythia documentation and decay chains It seems clear to me that we need to provide 1.) base classes to handle routine interfacing to the generator information, and 2.) subclasses for each of the standard generators to handle all the details and exceptions that are introduced by the different authors. Mike P.S. There's nothing wrong with writing a FORTRAN program to test your memory skills, but I wouldn't show it to anyone under 25 years of age. Please send me a copy of your program and I'll try my hand at converting it to Java using Native Interfacing to the Pythia common block.