diff --git a/_modules/architect.py b/_modules/architect.py
index 7e8d845..b1160a7 100644
--- a/_modules/architect.py
+++ b/_modules/architect.py
@@ -6,8 +6,8 @@
 # Import python libs
 from __future__ import absolute_import
 import yaml
-from architect_client.libarchitect import ArchitectClient
 import logging
+from architect_client.libarchitect import ArchitectClient
 
 __virtualname__ = 'architect'
 
@@ -22,30 +22,30 @@
     return ArchitectClient()
 
 
-def get_inventory():
+def inventory():
     '''
-    Get the Architect metadata inventory for given Salt master.
+    Get the Architect metadata inventory
 
     CLI Examples:
 
     .. code-block:: bash
 
-        salt-call architect.get_inventory
+        salt-call architect.inventory
     '''
     data = yaml.load(_client().get_data())
 
     return data
 
 
-def get_node(name):
+def node_pillar(name):
     '''
-    Get the Architect node metadata for given Salt master.
+    Get the Architect node pillar for given Salt master.
 
     CLI Examples:
 
     .. code-block:: bash
 
-        salt-call architect.get_node node.domain
+        salt-call architect.node_pillar node.domain
     '''
 
     data = yaml.load(_client().get_data(name))
@@ -55,7 +55,24 @@
     }
 
 
-def collect_minion_info():
+def node_classify(name, data={}):
+    '''
+    CLassify node by given dictionary of parameters
+
+    CLI Examples:
+
+    .. code-block:: bash
+
+        salt-call architect.node_classify minion.net {'param1': 'value2'}
+    '''
+    output = _client().classify_node({
+        'name': name,
+        'data': data
+    })
+    return output
+
+
+def node_info():
     '''
     Get Salt minion metadata and forward it to the Architect master.
 
@@ -63,13 +80,11 @@
 
     .. code-block:: bash
 
-        salt-call architect.collect_minion_info
+        salt-call architect.minion_info
     '''
-
     data = {
         'pillar': __salt__['pillar.data'](),
         'grain': __salt__['grains.items'](),
         'lowstate': __salt__['state.show_lowstate'](),
     }
-    output = _client().push_salt_minion({data['grain']['id']: data})
-    return output
+    return data
