public async Task RunScheduler()
        {
            // reset interval
            schedulerInterval = MainWindow._localSettings.WallpaperSource.interval;

            // set timer for next scheduler run
            MainWindow._bindings.LastUpdated = $"Last updated {DateTime.Now}";
            StartTimers(false);

            // download image, return its path, set as wallpaper and delete
            var imagePath = await _downloadHelper.DownloadAndSaveImage(MainWindow._localSettings.WallpaperSource.url.full);

            // process downloaded image
            if (!imagePath.Any())
            {
                MainWindow._bindings.ProgramStatus = "Download failed. Retrying shortly...";
                StartTimers(true);
            }
            else
            {
                _wallpaperHelper.SetWallpaper(imagePath);

                if (MainWindow._localSettings.KeepImages)
                {
                    _wallpaperHelper.MoveImage(imagePath);
                }
                else
                {
                    _wallpaperHelper.DeleteImage(imagePath);
                }
            }
        }