private IEnumerator <WaitCommand> BeginChallenge(IChallenge challenge, FlightStatistics player)
        {
            if (_isChallengeStarting)
            {
                Debug.LogError("Challenge '" + challenge.Name + "' start is triggered while another challenge '" +
                               _activeChallenge.Value.Name + "' is already starting");
                yield break;
            }
            _isChallengeStarting = true;
            Debug.Log("Starting challenge: " + challenge.Name);
            yield return(WaitCommand.Interleave(
                             challenge.Begin(player),
                             _challengeAnnouncerUi.Introduce(challenge.ChallengeType.PrettyString(), Color.white, challenge.Name)));

            _isChallengeStarting = false;
        }