Refactored some of the sitemap logic into an AbstractSitemap and added a SitemapIndex