Out of curiosity, why did you split these methods in a plain forwarder and a `do*` method?