Steam Leaderboard delays

I have implemented steam leaderboard in my game. Here is the question. I have 50 levels. Correct me if my steps are wrong.

To get data :

  1. Find leaderboard by name (for each leaderboard) and get the SteamLeaderboard_t object (which is basically the leaderboard reference?)
  2. Then download leaderboard entries from that instance and store it as LeaderboardScoresDownloaded_t object
  3. Now I need to process the LeaderboardScoresDownloaded_t to get an array of LeaderboardEntry_t objects
  4. Process each LeaderboardEntry_t to get my Integer value (Score)

To upload data:

  1. Find the leaderboard and get the isntance.
  2. Upload the score to that particular instance.

The problem I have is, since these are all async callbacks, I do not always get the data at the right time when I try to download data. The achivements and stats are very straight forward though. Am I doing something wrong with the leaderboard? Why do I always have to find the leaderboard, download leaderboard entries, get the data from the entry and then pass the data to my UI?

IEnumerator WaitingUpToDateToPrint()
{
while (!RankUpToDate )
{
yield return null;
}

        foreach (SteamLeaders.UserInRank User in MortalRank.UserList)
        {
            print("Rank: " + User.UserName + " Name: " + User.UserName + " Score: " + User.UserScore);
        }
    }