diff --git a/reclass/values/invitem.py b/reclass/values/invitem.py
index 2470e5f..36fa9a2 100644
--- a/reclass/values/invitem.py
+++ b/reclass/values/invitem.py
@@ -107,7 +107,7 @@
     def contents(self):
         return self._expr
 
-    def has_exports(self):
+    def has_inv_query(self):
         return True
 
     def has_references(self):
diff --git a/reclass/values/item.py b/reclass/values/item.py
index 75f5eb6..1d29ab1 100644
--- a/reclass/values/item.py
+++ b/reclass/values/item.py
@@ -22,14 +22,14 @@
     def has_references(self):
         return False
 
-    def has_exports(self):
+    def has_inv_query(self):
         return False
 
     def is_container(self):
         return False
 
-    def is_complex():
-        return (self.has_references | self.has_exports)
+    def is_complex(self):
+        return (self.has_references() | self.has_inv_query())
 
     def contents(self):
         msg = "Item class {0} does not implement contents()"
diff --git a/reclass/values/value.py b/reclass/values/value.py
index 842f12c..e0cfa08 100644
--- a/reclass/values/value.py
+++ b/reclass/values/value.py
@@ -34,11 +34,11 @@
     def has_references(self):
         return self._item.has_references()
 
-    def has_exports(self):
-        return self._item.has_exports()
+    def has_inv_query(self):
+        return self._item.has_inv_query()
 
     def is_complex(self):
-        return (self.has_references() | self.has_exports())
+        return self._item.is_complex()
 
     def get_references(self):
         return self._item.get_references()
diff --git a/reclass/values/valuelist.py b/reclass/values/valuelist.py
index c7e965c..0071ffb 100644
--- a/reclass/values/valuelist.py
+++ b/reclass/values/valuelist.py
@@ -13,8 +13,8 @@
         self._allRefs = True
         self._values = [ value ]
         self.assembleRefs()
-        self._has_exports = False
-        self._check_for_exports()
+        self._has_env_query = False
+        self._check_for_inv_query()
 
     def append(self, value):
         self._values.append(value)
@@ -30,11 +30,11 @@
     def has_references(self):
         return len(self._refs) > 0
 
-    def has_exports(self):
-        return self._has_exports
+    def has_inv_query(self):
+        return self._has_inv_query
 
     def is_complex(self):
-        return (self.has_references() | self.has_exports())
+        return (self.has_references() | self.has_inv_query())
 
     def get_references(self):
         return self._refs
@@ -42,11 +42,11 @@
     def allRefs(self):
         return self._allRefs
 
-    def _check_for_exports(self):
-        self._has_exports = False
+    def _check_for_inv_query(self):
+        self._has_inv_query = False
         for value in self._values:
-            if value.has_exports():
-                self._has_exports = True
+            if value.has_inv_query():
+                self._has_inv_query = True
 
     def assembleRefs(self, context={}):
         self._refs = []
