- added device objects to encapsulate specific device data and implementations