private void OnTimedEvent(Object source, ElapsedEventArgs e)
        {
            Canvas2.Dispatcher.Invoke(() => {
                if (DateTime.Now - lastWeatherCall > TimeSpan.FromMinutes(5))
                {
                    weather.Update().Wait();
                    lastWeatherCall = DateTime.Now;
                }

                Canvas2.percentages[0] = 1 - storage.GetPercentFree() / 100.0;
                Canvas2.percentages[1] = 1 - processor.GetUtilizationPercent() / 100.0;
                Canvas2.percentages[2] = 1 - memory.GetUtilizationPercent() / 100.0;
                Canvas2.percentages[3] = battery.GetBatteryPercentage() / 100.0;
                Canvas2.temperature    = Math.Round((weather.temperature * 9 / 5.0) + 32);
                Canvas2.pressure       = Math.Round(weather.pressure);
                Canvas2.humidity       = Math.Round(weather.humidity);

                Canvas2.InvalidateVisual();
            });
        }