update version of dependencies
update syntax of example in readme
make DeviceInterface module to DRY up interface code