separated out transform/duplex interfaces.