Reimplemented with duplex stream