I didn't like the idea of starting a circular dependency (ProjectManager requires PreferencesManager and PreferencesManager would then require ProjectManager in order to listen to this event).