refactored _readChannelEvent()