| Interface | Description | 
|---|---|
| DriverDependentEntity<D extends EntityDriver> | An Entity that needs to have a driver. | 
| EntityDriver | The EntityDriver provides an abstraction between the Entity and the environment (the  Locationit is running
 in, so that an entity is not tightly coupled to a specific Location. | 
| EntityDriverManager | Responsible for creating a driver for a given entity/location. | 
| Class | Description | 
|---|---|
| BasicEntityDriverManager | |
| ReflectiveEntityDriverFactory | Follows a class naming convention: the driver interface must end in "Driver", and the implementation 
 must match the driver interface name but with a suffix like "SshDriver" instead of "Driver". | 
| RegistryEntityDriverFactory | A registry of driver classes, keyed off the driver-interface + location type it is for. |