Switching to using events instead of a hook registry + reorg'ing code/comments