Add dependency on EventDispatcher
Factor duplicate lines
Only change current state if the job is started
Add JobInterface::addSubscriber and JobInterface::addListener methods
Fix demo