move exception
add support for passing low-level ChannelEvent types