Notice the addition of methods dim() and bright(). This functionality is available in the X-10
protocol, but may not be common in other protocols. Therefore, we add it here exclusively. Now that our X-10
protocol class is complete, we want to see how this protocol and others will apply to a home device. We'll start
out by creating a Device class. Let's take a look.

We have declared two member variables to hold the type of device and protocol used (i.e. X10, CEBus).
In the constructor, we grab the device settings from storage, assign these settings to our instance, and
then apply the appropriate control functionality, based on the protocol specified.

On a side note, PHP supports two types of composition: association and aggregation. The protocol
functionality is composed through aggregation. Now we can swap in and out different protocols by simply
assigning a new protocol type; even at runtime. Today your garage light is X-10 compatible; tomorrow Smart House.