Hi Gang, I've created an external method manage_addMyZClass, basing my method off http://www.zope.org/Members/tazzzzz/addZClasses . However, whenever I call this external method on an ObjectManager derived ZClass, I get the error "Error Type: AttributeError; Error Value: this" on line 8, which just happens to be: self = self.this() I know that the this() call is needed so self equals the current context of the ObjectManager on which manage_addMyZClass is being called. Is there any other way to programmatically add a ZClass defined through the ZMI? And while I'm on that topic, what are the benefits/tradeoffs between using the ZMI to define products and using Python? I recently read the "A very minumal Product" How-To (http://www.zope.org/Members/maxm/HowTo/minimal_01), and noticed that this showed how write a manage_addMyZClass method in the context of a Python based product. The only reasons I've been given about defining products in the filesystems with Python vs. using the ZMI are being able to use external editors and CVS. Neither of these reasons are compelling enough for me, so why should else I use Python? I'm just starting a another Zope based site, and I have a slew of ZClasses to define. In the other (and first Zope based site) that I created and maintain I used only the ZMI to define ZClasses, so I'm pretty familiar with the process. Also, if I decide to go with Python based products, is there any easy way to turn a ZClass defined though the ZMI into a Python product? I'm not to worried about retyping code, but I've defined some fairly large propertysheets that would be annoying to recreate if I were to start from scratch. Thanks! -- Mark Adams mja27@cornell.edu "A man talking sense to himself is no madder than a man talking nonsense not to himself." - Rosencrantz and Guildenstern Are Dead