top-level functions get their own page