public UserPreferencesPageViewModel (IScreen hostScreen, UserSettings userSettings)
		{
			HostScreen = hostScreen;

			var tempPrefChanged = this.WhenAnyValue (x => x.TemperaturePreference).StartWith (userSettings.TemperaturePreference);

			tempPrefChanged
				.Subscribe (x => userSettings.TemperaturePreference = x);
			
			tempPrefChanged
				.Select (x => x == TemperatureUnit.Celsius ? "C" : "F")
				.ToProperty (this, vm => vm.TempPreferenceLabel, out _TempPreferenceLabel);



//			var volumePrefChanged = this.WhenAnyValue (x => x.VolumePreference);
			
//			volumePrefChanged
//				.StartWith (userSettings.VolumePreference)
//				.Do (x => System.Diagnostics.Debug.WriteLine ("setting vol pref {0}", x))
//				.Subscribe (x => userSettings.VolumePreference = x);
//
//			var equipLossChanged = this.WhenAnyValue (x => x.EquipmentLossVolume);
//
//			equipLossChanged
//				.StartWith (userSettings.EquipmentLossVolume)
//				.Subscribe (x => userSettings.EquipmentLossVolume = x);
//
//			var trubLossChanged = this.WhenAnyValue (x => x.TrubLossVolume);
//
//			trubLossChanged
//				.StartWith (userSettings.TrubLossVolume)
//				.Subscribe (x => userSettings.TrubLossVolume = x);
		}
		//		public MainPageViewModel () : this (null)
		//		{
		//		}

		public MainPageViewModel (IScreen hostScreen, UserSettings userSettings)
		{
			HostScreen = hostScreen ?? Locator.Current.GetService<IScreen> ();

			NavigateStartBrewing = ReactiveCommand.Create ();
			NavigateStartBrewing
				.ObserveOn (RxApp.MainThreadScheduler)
				.Subscribe (_ => HostScreen.Router.Navigate.Execute (new GeneralBrewStatsViewModel (HostScreen)));

			NavigateUserPreferences = ReactiveCommand.Create ();
			NavigateUserPreferences
				.ObserveOn (RxApp.MainThreadScheduler)
				.Subscribe (_ => HostScreen.Router.Navigate.Execute (new UserPreferencesPageViewModel (HostScreen, userSettings)));
		}