added deviceread event