I think for this to work it might make sense to have a "display" function for each package, that would display the object(s). Onto this display function you could then hook additional items as Lars has described them in point 3. Hopefully there are other alternatives as well.