Hooks

Before this code gets any more stale than it is, I would like to get it into master. I brought it up to date tonight and tweaked a few things. 

@bkeepers do you remember anything else you wanted to do with this? Or maybe just start with this and move on from there?