One of the more grungy and fragile portions of the bcfg1 configuration description interface is that of bundle allocation. To wit, tags are used for two purposes in this same process. The first use is for initial choice of the software complement for any particular node. The second use is for specialization of particular nodes. The use of a tag for either purpose isn't particularly discernible from the other, moreover, tags can be used for multiple purposes simultaneously. There is a whole lot going on here, so i will highlight the particulars i think are important. 1. There is explicit linkage between a service and the software that provides it. 2. there is an explicit scope to describe "how far" the service goes 3. there is a notion of what network transport is required. 4. you can construct monitoring/firewalling rules from this 5. you can infer failure cascades from the relationship 6. tags are used in choosing configurations as a specialization mechanism, no just through bundles. How do we extend the idea of coherence from bcfg1?