Lots of refactoring: split menu/preferences controllers, singleton scheduler, etc