support flatMap for reactive. update #667