extract interfaces from data channel r/w-ers

no need to tie the functionality to being based on input/ output
stream objects