use non blocking streams