 
       pickSlot: () ->
         commands.listSlots(true)
+        programDone() unless _.keys(scheme.slots).length > 0
         readline = require "readline"
         rl = readline.createInterface
           input: process.stdin
           output: process.stderr
           terminal: colors
         rl.on "line", (line) ->
-          commands.getSlot(line.trim())
+          idx = line.trim()
+          if _.isString(scheme.slots[idx])
+            commands.getSlot(line.trim())
+          else
+            rl.prompt()
         rl.prompt()
 
       getSlot: (idx) ->

  .action(runCommand("listSchemes"));

commander
  .command("list")
  .action(runCommand("listSlots"));


        for scheme in _.keys(data.schemes)
          console.error chalk.gray scheme

      dropScheme: (scheme) ->
        fatalError "Scheme #{scheme} does not exist" unless _.isObject(data.schemes[scheme])
        console.error "Droping scheme #{chalk.cyan scheme}"
        delete data.schemes[scheme]
        writeFileSync()
        programDone()

      listSlots: (noExit) ->
        schemeMsg "listing slots"
        console.error "------------------------------"
