add streaming support