I know that many people hate singletons though my thought is that is usually helps simplifying the code a lot.
For example, it would make sense for prefs, event bus and workspace to be singletons.