Okay - just went through it all and I *think* I understand it ;) A few thoughts though. One is naming - it feels icky (and thats the technical term!!!);) to use the unadorned term "Manager". Basically cause we already have Manager as a pattern where blah is ClassLoader/Log/whatever. I tried to think of an alternative but nothing really jumped out at me - the only thing I could think of was RemoteManager. What do you think? Can you think of a better alternative? Another thing. I would like to create/bind/whatever the MBeanServer inside the RemoteManager. To do that what we would have to do is create a ComponentManager in Embeddor and use that to pass references to Embeddor and Deployer down to facilities. What do you think of that? With that new architecture it may also be advisable to morph RemoteManager into interface RemoteManager { void register( String name, Object object ); void unregister( String name ); } That way the MBeanServer is *hidden* un RemoteManager as is all the building of DynamicMBeans etc. This would allow me to replace it with a no-op version if I wanted to run Avalon in a tank ;) Thoughts? I also plan to rearrange some of the stuff to use Parameters rather Context - is that OK? Other than that it looks goo. More thoughts in a bit ;) I will hold off doing any of this till you decide whether the JMX stuff stays in avalon or goes to commons.