Fix the copyright header.
Clean use statements.
Add support for event factories, in the CreateOptionsEventCallbackFactory::createCallback() method.