only do one query for each pagepart type instead of a query per pagepart