Run hooks

@anthonybishopric @mpuncel 
Since they're optional, is there ever an error we want this function to return?

Right now the only error this possibly returns is when the directory doesn't exist. And the preparer doesn't halt on that error (The behavior we want, keeping hooks optional).

Perhaps this function should just return nothing.