The current hooks need to be redesigned to support dependency injection. This will break backwards compatibility for existing hook implementations.