added stream.fork and promise.fork