implemented mergeMap