The alternatives are using a real transport instance (which is a bunch of extra effort and probably trouble), reimplementing those methods here (which will lead to all the usual duplication failures when code changes), or factoring those methods (and probably some other related ones) out into their own object. I'm in favour of the latter, but I didn't want to make unnecessary changes in this branch.