   .action(runCommand("getSlot"));
 
 commander
-  .command("set <idx> [path]")
+  .command("rm [idx]")
+  .action(runCommand("removeSlot"));
+
+commander
+  .command("switch <idx1> <idx2>")
+  .action(runCommand("switchSlots"));
+
+commander
+  .command("set [idx] [path]")
   .action(runCommand("saveSlot"));
 
 commander

  return () ->
    # make these variables available outside of initialize scope
    dataDir = data = dataFile = currentScheme = scheme = commands = colors =
      history = undefined

    schemeMsg = (msg) ->
      console.error chalk.cyan("[ #{currentScheme} ]") + " - #{msg}"

    saveDataFile = () ->
      fs.writeFileSync(dataFile, JSON.stringify(data), "utf8")

    initalizeScheme = (scheme) ->
        data.schemes[scheme] =
          slots: {}
        saveDataFile()


        programDone()

      listHistory: () ->
        schemeMsg "listing slots", "history"
        console.error "------------------------------"
        for _path, idx in history.slots
          console.error "#{chalk.yellow idx}\t#{chalk.grey _path}"
