Hi, So... this is what I made las days (as a conclusion of many days before):
The old class organizer was a mess. Basically, it considered all protocols as strings, and for worst it was arranging them into a flat array. While the array stuff is just an internal problem (objects outside doesn't know how are they managed, and that's good), having protocols-as-strings is essentially bad (no need for explanations about that). The new class organizer just do what is more or less obvious: 1) replaces string protocols for first class instances (now instances of Protocol). 2) internally, manages protocols and methods in protocols in a much better and fashion way. (btw, the implementation was made by Ben, thanks!) the real important part is the point 1. Now we can start to assign real behavior to Protocol, For instance, I will create an ExtensionProcol which will contain a direct pointer to it's real package. That means that we do not need weird computations to get a method extension package (and when the tools allows us, we could get rid off the *Blah). I would like also to be able to have "composite" protocols (like "private"+"accesing"), etc. It will allow a refactor of current RPackage implementation, allowing us to simplify the SystemAnnounce mechanism (and speeding up monticello, if my calculous are fine). And like this, there are still a huge room for improvement, I hope many that I do not even thought about :) cheers, Esteban