took me a minute to realise `before()` is a Bonzo method, only worked it out by looking at what `cta` was when it got passed. i guess this isn't really a problem, just confused me initially...