diff --git a/deploy/datasets/query.js b/deploy/datasets/query.js
index 83986048bfd30ee2eca99c1bba2cd97cddf51b6d..6dd7876b048172db429a8dd078a942d07f1a6706 100644
--- a/deploy/datasets/query.js
+++ b/deploy/datasets/query.js
@@ -3,7 +3,7 @@ const request = require('request')
 const URL = require('url')
 const path = require('path')
 const archiver = require('archiver')
-const { commonSenseDsFilter } = require('./supplements/commonSense')
+const { getCommonSenseDsFilter } = require('./supplements/commonSense')
 const { getPreviewFile, hasPreview } = require('./supplements/previewFile')
 const { init: kgQueryUtilInit, getUserKGRequestParam } = require('./util')
 
@@ -183,7 +183,7 @@ const filterByPRName = ({ parcellationName = null, dataset = {parcellationAtlas:
   : (dataset.parcellationAtlas || []).some(({ name }) => name === parcellationName)
 
 const filter = (datasets = [], { templateName, parcellationName }) => datasets
-  .filter(ds => commonSenseDsFilter({ ds, templateName, parcellationName }))
+  .filter(getCommonSenseDsFilter({ templateName, parcellationName }))
   .filter(ds => {
     if (/infant/.test(ds.name))
       return false
diff --git a/deploy/datasets/supplements/commonSense.js b/deploy/datasets/supplements/commonSense.js
index 42e4f30f57e4a2b8e1c15ed7ebba0a4572bbcb60..404617f8f6e82ba5ff8475dbd5dd0bf27b1069b3 100644
--- a/deploy/datasets/supplements/commonSense.js
+++ b/deploy/datasets/supplements/commonSense.js
@@ -34,7 +34,7 @@ const mouseParcellationSet = new Set([
   'Allen Mouse Common Coordinate Framework v3 2015'
 ])
 
-const dsIsHuman = ({ds}) => ds && ds.species.some(species => /homo\ sapiens/i.test(species))
+const dsIsHuman = ({ ds }) => ds && ds.species.some(species => /homo\ sapiens/i.test(species))
 const dsIsRat = ({ ds }) => ds && ds.species.some(species => /rattus\ norvegicus/i.test(species))
 const dsIsMouse = ({ ds }) => ds && ds.species.some(species => /mus\ musculus/i.test(species))
 
@@ -50,7 +50,23 @@ const queryIsHuman = ({ templateName, parcellationName }) =>
   (templateName && humanTemplateSet.has(templateName))
   || (parcellationName && humanParcellationSet.has(parcellationName))
 
-exports.commonSenseDsFilter = ({ ds , templateName, parcellationName}) => 
-  (queryIsHuman({ templateName, parcellationName }) && !dsIsRat({ ds }) && !dsIsMouse({ ds }))
-  || (queryIsMouse({ templateName, parcellationName }) && !dsIsRat({ ds }) && !dsIsHuman({ ds }))
-  || (queryIsRat({ templateName, parcellationName }) && !dsIsMouse({ ds }) && !dsIsHuman({ ds }))
+exports.getCommonSenseDsFilter = ({ templateName, parcellationName }) => {
+  const trueFilter = queryIsHuman({ templateName, parcellationName })
+    ? dsIsHuman
+    : queryIsMouse({ templateName, parcellationName })
+      ? dsIsMouse
+      : queryIsRat({ templateName, parcellationName })
+        ? dsIsRat
+        : null
+
+  const falseFilters = queryIsHuman({ templateName, parcellationName })
+    ? [dsIsMouse, dsIsRat]
+    : queryIsMouse({ templateName, parcellationName })
+      ? [dsIsHuman, dsIsRat]
+      : queryIsRat({ templateName, parcellationName })
+        ? [dsIsMouse, dsIsHuman]
+        : []
+  return ds => trueFilter
+    ? trueFilter({ ds }) || (falseFilters.every(filterFn => !filterFn({ ds })))
+    : false
+}