made UltrasonicPoller event driven