diff --git a/src/main/java/edu/uci/ics/hivesterix/runtime/exec/HyracksExecutionEngine.java b/src/main/java/edu/uci/ics/hivesterix/runtime/exec/HyracksExecutionEngine.java
index 2f16573..431c081 100644
--- a/src/main/java/edu/uci/ics/hivesterix/runtime/exec/HyracksExecutionEngine.java
+++ b/src/main/java/edu/uci/ics/hivesterix/runtime/exec/HyracksExecutionEngine.java
@@ -514,14 +514,13 @@
     private void executeHyraxJob(JobSpecification job) throws Exception {
         String ipAddress = conf.get("hive.hyracks.host");
         int port = Integer.parseInt(conf.get("hive.hyracks.port"));
-        String applicationName = conf.get("hive.hyracks.app");
         System.out.println("connect to " + ipAddress + " " + port);
 
         IHyracksClientConnection hcc = new HyracksConnection(ipAddress, port);
 
         System.out.println("get connected");
         long start = System.currentTimeMillis();
-        JobId jobId = hcc.startJob(applicationName, job);
+        JobId jobId = hcc.startJob(job);
         hcc.waitForCompletion(jobId);
 
         System.out.println("job finished: " + jobId.toString());
diff --git a/src/test/java/edu/uci/ics/hivesterix/perf/base/AbstractPerfTestSuiteClass.java b/src/test/java/edu/uci/ics/hivesterix/perf/base/AbstractPerfTestSuiteClass.java
index df947ea..5c48a9c 100644
--- a/src/test/java/edu/uci/ics/hivesterix/perf/base/AbstractPerfTestSuiteClass.java
+++ b/src/test/java/edu/uci/ics/hivesterix/perf/base/AbstractPerfTestSuiteClass.java
@@ -94,7 +94,6 @@
         String ipAddress = hconf.get("hive.hyracks.host");
         int clientPort = Integer.parseInt(hconf.get("hive.hyracks.port"));
         int clusterPort = clientPort;
-        String applicationName = hconf.get("hive.hyracks.app");
 
         // start hyracks cc
         CCConfig ccConfig = new CCConfig();
@@ -121,7 +120,6 @@
         }
 
         IHyracksClientConnection hcc = new HyracksConnection(ccConfig.clientNetIpAddress, clientPort);
-        hcc.createApplication(applicationName, null);
     }
 
     protected void makeDir(String path) throws IOException {
diff --git a/src/test/java/edu/uci/ics/hivesterix/test/base/AbstractTestSuiteClass.java b/src/test/java/edu/uci/ics/hivesterix/test/base/AbstractTestSuiteClass.java
index 74bde3f..07369f1 100644
--- a/src/test/java/edu/uci/ics/hivesterix/test/base/AbstractTestSuiteClass.java
+++ b/src/test/java/edu/uci/ics/hivesterix/test/base/AbstractTestSuiteClass.java
@@ -94,7 +94,6 @@
         String ipAddress = hconf.get("hive.hyracks.host");
         int clientPort = Integer.parseInt(hconf.get("hive.hyracks.port"));
         int netPort = clientPort + 1;
-        String applicationName = hconf.get("hive.hyracks.app");
 
         // start hyracks cc
         CCConfig ccConfig = new CCConfig();
@@ -122,7 +121,6 @@
         }
 
         IHyracksClientConnection hcc = new HyracksConnection(ccConfig.clientNetIpAddress, clientPort);
-        hcc.createApplication(applicationName, null);
     }
 
     protected void makeDir(String path) throws IOException {
