Removed abstract before/after functions in favour of virtual