/// <summary>
        /// Initialize everything
        /// </summary>
        /// <param name="viewModel"></param>
        protected void SetUp(MainWindowViewModel viewModel = null)
        {
            instance = this;

            ViewModel = viewModel ?? new MainWindowViewModel();

            // Initialize Properties
            TimeBlocks       = new List <TextBlock>();
            DateBlocks       = new List <TextBlock>();
            ConversionBlocks = new List <TextBlock>();
            UpdateDisplay    = new DispatcherTimer()
            {
                Interval = new TimeSpan(0, 0, 2)
            };

            // Configure Settings
            SettingsHolder.Navigate(ViewModel.SettingsPage);

            // Wire up events
            ViewModel.PropertyChanged += (o, e) => PropertyChanged(e.PropertyName);
            ViewModel.TriggerUpdate();

            UpdateDisplay.Tick += (o, e) => UpdateClocks();
            UpdateDisplay.Start();
        }