I'm trying to find a more general way to describe why HelpersInsteadOfWrappers works fairly well in certain unpredictable and chaotic domains, and thus the topic MyraidDisposibleMiniAbstractions. Here's more detail on each feature: * Myraid - A library of lots of little tools or toolettes. * Disposible - You date them, not marry them. Using any one toolette is not a make-or-break decision and you can swap it with something else (or fix it) without too much fuss or muss. * Mini - No toolette is too big as a rule of thumb. If it's too big, then split it up. It may take practice to find good splitting seams, which is finding practical sub-concepts within concepts. StepwiseRefinement is one, but not the only approach. * Abstractions - They simplify or automate common or repeating tasks Generally the library grows organically based on actual needs. It may not even be a formal library, but rather a bunch of routines, modules, or classes that are working in existing apps. Perhaps a catalog database or spreadsheet can track their function and whereabouts. The linkage between them is generally via convention instead of formal gateways. I find dynamic languages friendlier to this idea, but your mileage and preferences may vary. --top