diff --git a/_modules/reclass.py b/_modules/reclass.py
index a2d79bd..f32bf0a 100644
--- a/_modules/reclass.py
+++ b/_modules/reclass.py
@@ -41,7 +41,7 @@
     '''
     Returns classes if ret_classes=True, else returns soft_params if ret_classes=False
     '''
-    defaults = find_and_read_configfile()
+    defaults = __salt__['config.get']('reclass', None) or find_and_read_configfile()
     path = defaults.get('inventory_base_uri')
     classes = {}
     soft_params = {}
@@ -120,14 +120,12 @@
 
 
 def _get_nodes_dir():
-    defaults = find_and_read_configfile()
-    return defaults.get('nodes_uri') or \
-        os.path.join(defaults.get('inventory_base_uri'), 'nodes')
-
+    defaults = __salt__['config.get']('reclass', None) or find_and_read_configfile()
+    return defaults.get('nodes_uri') or os.path.join(defaults.get('inventory_base_uri'), 'nodes')
 
 def _get_classes_dir():
-    defaults = find_and_read_configfile()
-    return os.path.join(defaults.get('inventory_base_uri'), 'classes')
+    defaults = __salt__['config.get']('reclass', None) or find_and_read_configfile()
+    return defaults.get('classes_uri') or os.path.join(defaults.get('inventory_base_uri'), 'classes')
 
 
 def _get_cluster_dir():
@@ -724,7 +722,7 @@
                 ret.update(validate_pillar(node_name))
         return ret
     else:
-        defaults = find_and_read_configfile()
+        defaults = __salt__['config.get']('reclass', None) or find_and_read_configfile()
         meta = ''
         error = None
         try:
@@ -758,7 +756,7 @@
         salt-call reclass.node_pillar minion_id
 
     '''
-    defaults = find_and_read_configfile()
+    defaults = __salt__['config.get']('reclass', None) or find_and_read_configfile()
     pillar = ext_pillar(node_name, {}, defaults['storage_type'], defaults['inventory_base_uri'])
     output = {node_name: pillar}
 
@@ -775,7 +773,7 @@
 
         salt '*' reclass.inventory
     '''
-    defaults = find_and_read_configfile()
+    defaults = __salt__['config.get']('reclass', None) or find_and_read_configfile()
     storage = get_storage(defaults['storage_type'], _get_nodes_dir(), _get_classes_dir())
     reclass = Core(storage, None)
     nodes = reclass.inventory()["nodes"]
