Is there a reason we have all these helpers? The API seems a bit weird - ie methods with the words "and" or "then" in them always are a smell to me, even though their implementation here is simple. Is this in the other drivers or part of the common architecture?