Use event dispatcher abstraction, add providers/factories
PHPStorm created file names that were too short again...
Small doc block change