// Is there a way to have a Task/void override
        protected override async void Run(Cmd cmd)
        {
            // We know track has value from checks before
            var track  = cmd.Arg.GetValueOrDefault().Lexeme;
            var album  = cmd.FlagArgs.ContainsKey(albumFlag) ? cmd.FlagArgs[albumFlag].Lexeme : null;
            var artist = cmd.FlagArgs.ContainsKey(artistFlag) ? cmd.FlagArgs[artistFlag].Lexeme : null;

            Clti.WriteLine($"Finding: {track} {album} {artist}");
            var tracks = (await db.LoadTracks())
                         .Where(x => artist?.Equals(x.Artist ?? "", StringComparison.OrdinalIgnoreCase) ?? true)
                         .Where(x => album?.Equals(x.Album ?? "", StringComparison.OrdinalIgnoreCase) ?? true)
                         .Where(x => track.Equals(x.Title ?? "", StringComparison.OrdinalIgnoreCase)).ToList();

            if (tracks.Count == 0)
            {
                Clti.WriteError("No tracks found matching criterion");
            }
            else if (tracks.Count > 1)
            {
                Clti.WriteLine("Multiple tracks found, please narrow criterion");
            }
            tracks.ForEach(Clti.WriteLine);
            if (tracks.Count == 1)
            {
                Mp.SetTrack(tracks[0]);
            }
        }