change polling routine to callback because of better performance
make some cosmetic changes
add device status indicators and on/off feature