add GenerateIndexPage method