Added abstraction to deal with dupex channels.