diff --git a/src/server/sparql/FacetConfigs.js b/src/server/sparql/FacetConfigs.js
index b90da1b56de33a116591755b3793fc0131a651b0..5e32cf39243e1c105638c0c2f5634f6b5a5ace56 100644
--- a/src/server/sparql/FacetConfigs.js
+++ b/src/server/sparql/FacetConfigs.js
@@ -4,7 +4,7 @@
 */
 export const facetConfigs = {
   manuscripts: {
-    rdfType: 'frbroo:F4_Manifestation_Singleton',
+    facetClass: 'frbroo:F4_Manifestation_Singleton',
     label: {
       id: 'label',
       type: 'text',
@@ -74,7 +74,7 @@ export const facetConfigs = {
     },
   },
   works: {
-    rdfType: 'frbroo:F1_Work',
+    facetClass: 'frbroo:F1_Work',
     label: {
       id: 'label',
       type: 'text',
@@ -101,14 +101,16 @@ export const facetConfigs = {
     },
   },
   events: {
-    rdfType: 'crm:E10_Transfer_of_Custody',
+    facetClass: 'crm:E10_Transfer_of_Custody crm:E12_Production', 
     label: {
       id: 'label',
       type: 'text',
       textQueryProperty: 'skos:prefLabel'
     },
-    // for sorting
     type: {
+      predicate: 'a',
+      facetValueFilter: '',
+      type: 'list',
       labelPath: 'a/(skos:prefLabel|rdfs:label)',
     },
     place: {
@@ -125,7 +127,7 @@ export const facetConfigs = {
     },
   },
   people: {
-    rdfType: 'mmm-schema:Person',
+    facetClass: 'mmm-schema:Person',
     label: {
       id: 'label',
       type: 'text',
@@ -153,7 +155,7 @@ export const facetConfigs = {
     },
   },
   organizations: {
-    rdfType: 'mmm-schema:Organization',
+    facetClass: 'mmm-schema:Organization',
     label: {
       id: 'label',
       type: 'text',
@@ -172,7 +174,7 @@ export const facetConfigs = {
     },
   },
   places: {
-    rdfType: 'crm:E53_Place',
+    facetClass: 'crm:E53_Place',
     label: {
       id: 'label',
       type: 'text',
diff --git a/src/server/sparql/FacetResults.js b/src/server/sparql/FacetResults.js
index a2413053eb89795afc68a07808485958b0a0cac6..4c8290d0eb7c859620647384f187d2fd7346b12f 100644
--- a/src/server/sparql/FacetResults.js
+++ b/src/server/sparql/FacetResults.js
@@ -100,7 +100,7 @@ export const getResultCount = ({
   textFilters
 }) => {
   let q = countQuery;
-  q = q.replace('<RDF_TYPE>', facetConfigs[resultClass].rdfType);
+  q = q.replace('<FACET_CLASS>', facetConfigs[resultClass].facetClass);
   const hasFilters = uriFilters !== null
     || spatialFilters !== null
     || textFilters !== null;
@@ -147,7 +147,7 @@ const getPaginatedData = ({
       filterTarget: 'id',
       facetID: null}));
   }
-  q = q.replace('<RDF_TYPE>', facetConfig.rdfType);
+  q = q.replace('<FACET_CLASS>', facetConfig.facetClass);
   q = q.replace('<ORDER_BY_PREDICATE>', facetConfig[sortBy].labelPath);
   q = q.replace('<SORT_DIRECTION>', sortDirection);
   q = q.replace('<PAGE>', `LIMIT ${pagesize} OFFSET ${page * pagesize}`);
diff --git a/src/server/sparql/FacetValues.js b/src/server/sparql/FacetValues.js
index c06b957444dad550836c7d580071a69debf97283..2d577be4bf56fe8159e4e29847a01fe4c3593cfe 100644
--- a/src/server/sparql/FacetValues.js
+++ b/src/server/sparql/FacetValues.js
@@ -93,7 +93,8 @@ export const getFacet = ({
             ${parentFilterStr}
             # these instances should not be counted, so use another variable name
             ?instance2 ${facetConfig.parentPredicate} ?id .
-            ?instance2 a <RDF_TYPE>
+            VALUES ?facetClass { <FACET_CLASS> }
+            ?instance2 a ?facetClass .
             BIND(false AS ?selected_)
             ${ignoreSelectedValues}
           }
@@ -104,7 +105,7 @@ export const getFacet = ({
   q = q.replace('<FACET_VALUE_FILTER>', facetConfig.facetValueFilter);
   q = q.replace('<PARENTS>', parentBlock);
   q = q.replace('<ORDER_BY>', `ORDER BY ${sortDirection}(?${sortBy})` );
-  q = q.replace(/<RDF_TYPE>/g, facetConfigs[facetClass].rdfType);
+  q = q.replace(/<FACET_CLASS>/g, facetConfigs[facetClass].facetClass);
   q = q.replace(/<FILTER>/g, filterBlock );
   q = q.replace(/<PREDICATE>/g, facetConfig.predicate);
   // if (facetID == 'place') {
diff --git a/src/server/sparql/SparqlQueriesGeneral.js b/src/server/sparql/SparqlQueriesGeneral.js
index ed67c87d0e3d8388b00bac86d45cbd1852b8844d..23531c15dcf464d1350397f931be89d722ed8969 100644
--- a/src/server/sparql/SparqlQueriesGeneral.js
+++ b/src/server/sparql/SparqlQueriesGeneral.js
@@ -4,8 +4,8 @@ export const endpoint = 'http://ldf.fi/mmm-cidoc/sparql';
 export const countQuery = `
   SELECT (COUNT(DISTINCT ?id) as ?count)
   WHERE {
-    <FILTER>
-    ?id a <RDF_TYPE> .
+    VALUES ?facetClass { <FACET_CLASS> }
+    ?id a ?facetClass .
   }
 `;
 
@@ -35,7 +35,8 @@ export const facetResultSetQuery = `
     {
       SELECT DISTINCT ?id {
         <FILTER>
-        ?id a <RDF_TYPE> .
+        VALUES ?facetClass { <FACET_CLASS> }
+        ?id a ?facetClass .
         OPTIONAL { ?id <ORDER_BY_PREDICATE> ?orderBy }
       }
       ORDER BY (!BOUND(?orderBy)) <SORT_DIRECTION>(?orderBy)
@@ -55,7 +56,8 @@ export const facetValuesQuery = `
           {
             <FILTER>
             ?instance <PREDICATE> ?id .
-            ?instance a <RDF_TYPE> .
+            VALUES ?facetClass { <FACET_CLASS> }
+            ?instance a ?facetClass .
             <SELECTED_VALUES>
           }
           <SELECTED_VALUES_NO_HITS>
@@ -67,7 +69,7 @@ export const facetValuesQuery = `
       FILTER(BOUND(?id))
       <FACET_VALUE_FILTER>
       OPTIONAL { ?id gvp:broaderPreferred ?parent_ }
-      OPTIONAL { ?id skos:prefLabel ?prefLabel_ }
+      OPTIONAL { ?id skos:prefLabel|rdfs:label ?prefLabel_ }
       BIND(COALESCE(?parent_, '0') as ?parent)
       BIND(COALESCE(STR(?prefLabel_), STR(?id)) AS ?prefLabel)
     }
@@ -77,7 +79,8 @@ export const facetValuesQuery = `
       {
         SELECT DISTINCT (count(DISTINCT ?instance) as ?instanceCount) {
           <FILTER>
-          ?instance a <RDF_TYPE> .
+          VALUES ?facetClass { <FACET_CLASS> }
+          ?instance a ?facetClass .
           FILTER NOT EXISTS {
             ?instance <PREDICATE> ?value .
           }