protected internal override IEnumerable<SitemapNode> GetSitemapNodes(UrlHelper urlHelper, HttpContextBase httpContext)
            {
                yield return new SitemapNode(urlHelper.Action("Index", "Expression")) { Priority = 0.8m };

                var repo = new RealDataRepo();

                foreach (var expression in repo.GetExpressions())
                {
                    yield return new SitemapNode(urlHelper.Action("Expression", "Expression", new { expressionName = expression.Name })) { Priority = 0.50m };
                }

                foreach (var keyword in repo.GetKeywords())
                {
                    yield return new SitemapNode(urlHelper.Action("Keyword", "Expression", new { keywordName = keyword.Name })) { Priority = 0.50m };
                }
            }
            protected internal override IEnumerable<SitemapNode> GetSitemapNodes(UrlHelper urlHelper, HttpContextBase httpContext)
            {
                yield return new SitemapNode(urlHelper.Action("Index", "Library")) { Priority = 0.8m };

                var repo = new RealDataRepo();

                foreach (var @class in repo.GetClasses())
                {
                    yield return new SitemapNode(urlHelper.Action("Class", "Library", new { className = @class.Name })) { Priority = 0.75m };

                    foreach (var methodGrp in @class.Methods.GroupBy(x => new { x.Name, x.Frameworks }))
                    {
                        int methodCount = 0;

                        foreach (var method in methodGrp)
                        {
                            Frameworks? framework = null;

                            if (method.Frameworks != Frameworks.All)
                            {
                                framework = Enum.GetValues(typeof(Frameworks)).Cast<Frameworks>().Reverse().Where(x => method.Frameworks.HasFlag(x)).FirstOrDefault();
                            }

                            var methodUrl = urlHelper.Action("Method", "Library", new { className = @class.Name, methodName = method.Name.Replace('<', '(').Replace('>', ')'), framework = framework, o = methodCount > 0 ? (int?)methodCount : null }, null);

                            yield return new SitemapNode(methodUrl) { Priority = .5m };

                            methodCount++;
                        }
                    }

                    foreach (var property in @class.Properties)
                    {
                        Frameworks? framework = null;

                        if (property.Frameworks != Frameworks.All)
                        {
                            framework = Enum.GetValues(typeof(Frameworks)).Cast<Frameworks>().Reverse().Where(x => property.Frameworks.HasFlag(x)).FirstOrDefault();
                        }

                        var propertyUrl = urlHelper.Action("Property", "Library", new { className = @class.Name, propertyName = property.Name, framework = framework });

                        yield return new SitemapNode(propertyUrl) { Priority = .5m };
                    }
                }
            }