diff --git a/cccli/command/__init__.py b/cccli/command/__init__.py
index 5f0758530b4c4a6288e402eadc16fff896ee3640..7b76b8d79601fb1a7a1e3417c96efc1eeba7db5e 100644
--- a/cccli/command/__init__.py
+++ b/cccli/command/__init__.py
@@ -8,15 +8,16 @@ CloudControl CLI Commands Package
 # bunch of command
 from cccli.command.account import *
 from cccli.command.alias import *
-from cccli.command.host import *
 from cccli.command.right import *
 from cccli.command.shell import *
 from cccli.command.tag import *
 from cccli.command.vm import *
 
 # by command module
+from cccli.command.execute import Command_execute
 from cccli.command.expert import Command_expert
 from cccli.command.kill import Command_kill
 from cccli.command.list import Command_list
 from cccli.command.server import Command_server
+from cccli.command.shutdown import Command_shutdown
 from cccli.command.tagdisplay import Command_tagdisplay
diff --git a/cccli/command/execute.py b/cccli/command/execute.py
new file mode 100644
index 0000000000000000000000000000000000000000..d66e78a15525d7339f5c5311744860f8db2a636f
--- /dev/null
+++ b/cccli/command/execute.py
@@ -0,0 +1,32 @@
+
+'''
+CloudControl execute command
+'''
+
+from cccli.exception import *
+from sjrpc.core.exceptions import *
+from cccli.printer import Printer, color
+from cccli.command.command import TqlCommand
+
+class Command_execute(TqlCommand):
+    '''Execute a command on the remote host'''
+
+    def __init__(self, cli, argv0):
+        TqlCommand.__init__(self, cli, argv0)
+        self.set_usage("%prog [options] <tql> <command>")
+        self.tql_filter += "&con&r~'host|hv'"
+
+    def __call__(self, argv):
+        # arg parse
+        self.parse_args(argv)
+        if len(self.args) != 2:
+            raise cmdBadArgument()
+        # rpc call
+        self.rpccall("execute", self.args[0], self.args[1], _callback=self._cb_print_output)
+
+    def _cb_print_output(self, d):
+        '''Print output of execute by object'''
+        for o in d["objects"]:
+            self.printer.out("%sid:%s%s%s output:"%(self.tdtc("id"), self.tdc("id"),
+                                                    o["id"], color["reset"]))
+            self.printer.out(o.get("output", ""), nl="")
diff --git a/cccli/command/host.py b/cccli/command/shutdown.py
similarity index 57%
rename from cccli/command/host.py
rename to cccli/command/shutdown.py
index 80fc2125d68a9b89bec34f35b4cb2793a4974b57..2e361bbef6b302561153b9d43f138b092e946e9b 100644
--- a/cccli/command/host.py
+++ b/cccli/command/shutdown.py
@@ -8,29 +8,6 @@ from sjrpc.core.exceptions import *
 from cccli.printer import Printer, color
 from cccli.command.command import TqlCommand
 
-class Command_execute(TqlCommand):
-    '''Execute a command on the remote host'''
-
-    def __init__(self, cli, argv0):
-        TqlCommand.__init__(self, cli, argv0)
-        self.set_usage("%prog [options] <tql> <command>")
-        self.tql_filter += "&con&r~'host|hv'"
-
-    def __call__(self, argv):
-        # arg parse
-        self.parse_args(argv)
-        if len(self.args) != 2:
-            raise cmdBadArgument()
-        # rpc call
-        self.rpccall("execute", self.args[0], self.args[1], _callback=self._cb_print_output)
-
-    def _cb_print_output(self, d):
-        '''Print output of execute by object'''
-        for o in d["objects"]:
-            self.printer.out("%sid:%s%s%s output:"%(self.tdtc("id"), self.tdc("id"),
-                                                    o["id"], color["reset"]))
-            self.printer.out(o.get("output", ""), nl="")
-
 class Command_shutdown(TqlCommand):
     '''Shutdown a physical host'''