diff --git a/_modules/architect.py b/_modules/architect.py
index b1160a7..dce22df 100644
--- a/_modules/architect.py
+++ b/_modules/architect.py
@@ -5,9 +5,7 @@
 
 # Import python libs
 from __future__ import absolute_import
-import yaml
 import logging
-from architect_client.libarchitect import ArchitectClient
 
 __virtualname__ = 'architect'
 
@@ -18,60 +16,6 @@
     return __virtualname__
 
 
-def _client():
-    return ArchitectClient()
-
-
-def inventory():
-    '''
-    Get the Architect metadata inventory
-
-    CLI Examples:
-
-    .. code-block:: bash
-
-        salt-call architect.inventory
-    '''
-    data = yaml.load(_client().get_data())
-
-    return data
-
-
-def node_pillar(name):
-    '''
-    Get the Architect node pillar for given Salt master.
-
-    CLI Examples:
-
-    .. code-block:: bash
-
-        salt-call architect.node_pillar node.domain
-    '''
-
-    data = yaml.load(_client().get_data(name))
-
-    return {
-        name: data
-    }
-
-
-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.
