Move to using a call runner and explicit before/after impls