public override async ValueTask Initialize(ILifetimeScope scope)
        {
            // migerate db
            await scope.MigrateDbContext <BeatmapDownloaderDatabaseContext>();

            // subscribe events
            scope.Subscription <MultiplayerBeatmapIdInfo, MultiplayerDownloadService>();
            scope.Subscription <BeatmapDownloadAddressPrepared, BeatmapDownloadService>();
            scope.Subscription <OsuProcessMatchedEvent, BeatmapDownloadService>();

            // add download provider options to UI
            await scope.AddDownloadProviderUIOptions <SayobotDownloadProvider>();

            await scope.AddDownloadProviderUIOptions <BloodcatDownloadProvider>();
        }