updated, but not DRY, index page