Reduce the amount of information that capabilities need to have about a device by adding a apply_state method.  Capabilities can be mixed into any object that responds to the message to apply_state