it's a bit overengineered at the moment, but I anticipate that other bits of this module will want to add included hooks as I work on them, so it seemed like a good thing to do