I'm a bit shaky on for comprehension syntax, but I think you can avoid the `Future.successful(...)` here, i.e. just do `Some(r1) = addHeaderIfValue(ETAG, maybeEtag, r)`?

Also what happens if `addHeaderIfValue` returns `None`?