private IList<Achievement> CleanupRecommendedAchievements(IList<Achievement> recommended, Character character)
        {
            List<Achievement> cleanedAchievements = new List<Achievement>();
            cleanedAchievements.AddRange(recommended);
            int numberRemoved = 0;
            foreach (Achievement achievement in recommended)
            {
                // Check to see if we have already removed that achievement
                if (cleanedAchievements.Where(a => a._id == achievement._id).FirstOrDefault() == null)
                {
                    continue;
                }
                if (achievement.Category == Achievement.FeatsOfStrengthCategory)
                {
                    cleanedAchievements.Remove(achievement);
                }
                Debug.WriteLine(string.Format("Processing Achievment : {0}", achievement));
                if (achievement.IsPartOfSeries)
                {
                    // remove all the achivements from a series
                    foreach (int seriesAchievement in achievement.Series.AchievementIds)
                    {
                        Achievement achievementToRemove = cleanedAchievements.Where(a => a.BlizzardID == seriesAchievement).FirstOrDefault();
                        if (achievementToRemove != null)
                        {
                            Debug.WriteLine(string.Format("\tRemoving Achievment : {0}", achievementToRemove));
                            numberRemoved++;
                            cleanedAchievements.Remove(achievementToRemove);
                        }
                    }

                    // Get Players highest achievement in series
                    Achievement nextAchievementInSeries = null;
                    int highestAchievementId = character.GetHighestAchievementInSeries(achievement.Series);

                    if (highestAchievementId != null)
                    {
                        int nextAchievment = 0;
                        for (int i = 0; i < achievement.Series.AchievementIds.Count; i++)
                        {
                            if (achievement.Series.AchievementIds.ElementAt(i) == highestAchievementId)
                            {
                                nextAchievment = i + 1;
                            }
                        }

                        if (nextAchievment < achievement.Series.AchievementIds.Count)
                        {
                            //nextAchievementInSeries = _achievementRepository.FindByAchievementId(achievement.Series.AchievementIds.ElementAt(nextAchievment));
                        }
                    }
                    else{
                        //nextAchievementInSeries = _achievementRepository.FindByAchievementId(achievement.Series.AchievementIds[0]);
                    }

                    Debug.WriteLine(string.Format("\tAdding Achievment : {0}", nextAchievementInSeries));
                    if (nextAchievementInSeries != null)
                    {
                        cleanedAchievements.Add(nextAchievementInSeries);
                        numberRemoved--;
                    }

                }
            }
            return cleanedAchievements;
        }