   constructor: () ->
     @apiKey = ''
 
+
 # Redacts the user's API key from the given URL.
 #
 # @param [String] url the URL to redact the API key from
 #
 redactApiKey = (url) -> url.replace user.apiKey, '********'
 
+
+# Asks the user a question via the command line.
+#
+# @param [String] question the question to ask
+# @param [Function] callback the function to call back on
+#
 ask = (question, callback) ->
   readlineOptions =
     input: process.stdin
     output: process.stdout
-  rl = readline.createInterface readlineOptions
-  rl.question question, (answer) ->
-    rl.close()
+  reader = readline.createInterface readlineOptions
+  reader.question question, (answer) ->
+    reader.close() # Close before passing answer to callback.
     callback answer
+
 
 # Builds a URL for downloading image information.
 #

# Installs a single image.
#
# @param [Object] image the image to grab
grab = (image) ->
  path = "./#{project.directory}/#{image.destination}" # Calculate path.
  log.info "Installing image with ID '#{image.id}' at resolution" \

      log.error 'You didn\'t provide enough arguments! Like this:' \
        + ' \'picksel add <id> <resolution> <destination>\'' # ID not passed in.
  else
    if isValidResolutionCode resolution
      validateId id, (success) ->
        if success
          image =
