Add OnDataReceivedEvent to distinguish action