Refactored to allow for hook defined information.