Initial implementation
Also accept file descriptors in Channel* streams