Reworked the before/after methods to be 'hooks' that you can register.