This is mostly directed at Philip Eby, but I'm sure there are others out there who are trying to work RIPP into their design patterns. Basically, all of my Zope development has been through-the-web. I'm quite comfortable with using ZClasses, DTML, PythonMethods and ExternalMethods to get the job done. Something I'm unclear on with ZPatterns is how to do some of the things that I currently do with ZClasses. Here is a specific example: I have a database of products, built from ZClasses. Products are bundled into groups for convenience of management, and the URL of a product is based on its SKU. So, we can have a product at products/1/5, and that would be the item 1-5. This direct traversal to a product object is very useful. The products are all indexed in a ZCatalog, and I do use acquisition to get at some useful things for displaying these products. Now let's say I want to create new product objects that allow me to do the same kinds of things, but I also want a propertysheet that comes from an RDBMS (to keep track of inventory, let's say). Would I pretty much store things the same way as I have been and just work in a separate SheetProvider to take care of the inventory propertysheet? Or is there some way in which I would store things on a Rack and yet still have the traversal structure that I want? Understanding the RIPP way of tackling a problem like this would really help me out... TIA, Kevin http://www.byproducts.com - Humor and Novelties