Actually ConsumerCapability(Consumer, String) sets off a flag to me as well. Feels weird that it has a reference to the Consumer objects. If a capability is nothing more than a label/name, then I would think a consumer has a list of these capabilities (labels/names). I just don't see why creating a new capability requires a FULL consumer.

I'd think it would be something like this:
```
ConsumerCapability cc = new ConsumerCapability("pitcher");
Consumer c = new Consumer();
c.addCapability(cc);
```