diff --git a/cli.js b/cli.js
index 2bad60f8519c7172ff0d05f1e782df5a9b24c61c..34b50feda1bae20ab6eb1f8c5d55210e11fc7153 100755
--- a/cli.js
+++ b/cli.js
@@ -6,7 +6,14 @@ var augustctl = require('./index');
 
 var config = require(process.env.AUGUSTCTL_CONFIG || './config.json');
 
-var op = process.argv[2];
+var whichLock = process.argv[2];
+if ( config.hasOwnProperty(whichLock) ) {
+  config = config[whichLock];
+} else {
+  throw new Error('invalid lock specified:' + whichLock);
+}
+
+var op = process.argv[3];
 if (typeof augustctl.Lock.prototype[op] !== 'function') {
   throw new Error('invalid operation: ' + op);
 }
diff --git a/config.json b/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..c296b1e5b30d9d5f59ab1588078b848177a63264
--- /dev/null
+++ b/config.json
@@ -0,0 +1,12 @@
+{
+  "front": {
+    "lockUuid": "abcdef012345",
+    "offlineKey": "ABCDEF0123456789ABCDEF0123456789",
+    "offlineKeyOffset": 1
+  },
+  "rear": {
+    "lockUuid": "abcdef456789",
+    "offlineKey": "ABCDEF0123456789ABCDEF0123456789",
+    "offlineKeyOffset": 1
+  }
+}
diff --git a/lib/scan.js b/lib/scan.js
index e2247d88d978b1f8517bdd6f4b4cc27397dda931..08ac46cb5b93035fb8e5b27610019ecf4aa37da6 100644
--- a/lib/scan.js
+++ b/lib/scan.js
@@ -13,7 +13,7 @@ function scan(uuid) {
 
     noble.on('stateChange', function(state) {
       if (state === 'poweredOn') {
-        noble.startScanning([ Lock.BLE_COMMAND_SERVICE ]);
+        noble.startScanning([ Lock.BLE_COMMAND_SERVICE ], true);
       } else {
         noble.stopScanning();
       }
@@ -23,7 +23,6 @@ function scan(uuid) {
   return new Promise(function(resolve) {
     noble.on('discover', function(peripheral) {
       if (uuid === undefined || peripheral.uuid === uuid) {
-        noble.stopScanning();
         resolve(peripheral);
       }
     });