diff --git a/lib/chromedriver.js b/lib/chromedriver.js
index <HASH>..<HASH> 100644
--- a/lib/chromedriver.js
+++ b/lib/chromedriver.js
@@ -10,13 +10,17 @@ import Q from 'q';
 const { spawn } = cp;
 const log = global._global_npmlog || npmlog;
 
+const DEFAULT_HOST = '127.0.0.1';
+const DEFAULT_PORT = 9515;
+
 class Chromedriver extends events.EventEmitter {
-  constructor (args) {
-    this.proxyHost = args.host || '127.0.0.1';
-    this.proxyPort = args.port || 9515;
-    this.cmdArgs = args.cmdArgs;
+  constructor (args = {}) {
+    const {host, port, executable, cmdArgs} = args;
+    this.proxyHost = host || DEFAULT_HOST;
+    this.proxyPort = port || DEFAULT_PORT;
+    this.cmdArgs = cmdArgs;
     this.proc = null;
-    this.chromedriver = args.executable || Chromedriver.getPath();
+    this.chromedriver = executable || Chromedriver.getPath();
     this.state = Chromedriver.STATE_STOPPED;
     this.jwproxy = new JWProxy({server: this.proxyHost, port: this.proxyPort});
     log.info("Set chromedriver binary as: " + this.chromedriver);
clean up Chromedriver constructor to use better pattern