removed abstract Device.Poll method
and replaced it with an implementation that chooses how to poll based on the device type.