@bechte It looks like you could revert the changes to `withBefores()` and `withAfters()` if `RunBefores` and `RunAfters` were not in an internal package. @dsaff do you think moving those classes outside of external would be problematic?