Huge tidy up of the Menu code, factored into its own static class.