added exceptWhen and skipUntil