generate page stuff