diff --git a/package.json b/package.json
index c1cd588..147ddaa 100644
--- a/package.json
+++ b/package.json
@@ -279,7 +279,6 @@
         "command": "launch.config",
         "title": "Configure launch.json",
         "category": "Daffodil Debug",
-        "enablement": "!inDebugMode",
         "icon": "$(debug-configure)"
       },
       {
@@ -345,8 +344,8 @@
                 "type": "object",
                 "description": "Destination for final Infoset ('file' | 'console' | 'none')",
                 "default": {
-                  "type": "console",
-                  "path": "${workspaceFolder}/infoset.xml"
+                  "type": "file",
+                  "path": "${workspaceFolder}/target/infoset.xml" 
                 }
               },
               "tdmlConfig": {
@@ -436,7 +435,7 @@
             "infosetFormat": "xml",
             "infosetOutput": {
               "type": "file",
-              "path": "${workspaceFolder}/infoset.xml"
+              "path": "${workspaceFolder}/target/infoset.xml" 
             },
             "debugServer": 4711,
             "openHexView": false,
@@ -466,7 +465,7 @@
               "infosetFormat": "xml",
               "infosetOutput": {
                 "type": "file",
-                "path": "${workspaceFolder}/infoset.xml"
+                "path": "${workspaceFolder}/target/infoset.xml" 
               },
               "debugServer": 4711,
               "openHexView": false,
@@ -549,7 +548,7 @@
           "infosetOutputFilePath": {
             "type": "string",
             "description": "Path to output for Infoset file (req: infosetOutput=file)",
-            "default": "${workspaceFolder}/infoset.xml"
+            "default": "${workspaceFolder}/target/infoset.xml" 
           },
           "stopOnEntry": {
             "type": "boolean",
diff --git a/src/daffodilDebugger.ts b/src/daffodilDebugger.ts
index ad6e63f..99a76a8 100644
--- a/src/daffodilDebugger.ts
+++ b/src/daffodilDebugger.ts
@@ -71,6 +71,90 @@
     })
 }
 
+async function getTDMLConfig(
+  config: vscode.DebugConfiguration
+): Promise<boolean> {
+  // If not supported TDML action entered, delete tdml config so no errors are thrown
+  if (!['execute', 'generate', 'append'].includes(config?.tdmlConfig?.action)) {
+    delete config.tdmlConfig
+  }
+
+  // If we are doing a TDML execute, these fields will be replaced,
+  //   so we don't need to prompt for them now.
+  if (config?.tdmlConfig?.action === 'execute') {
+    // Erase the value of `data` so that we aren't prompted for it later
+    // Might need to add `program` here if we move the `Execute TDML` command
+    //   away from the detected dfdl language in VSCode.
+    config.data = ''
+  } else {
+    // Get program file before debugger starts to avoid timeout
+    if (config.program.includes('${command:AskForProgramName}')) {
+      config.program = await vscode.commands.executeCommand(
+        'extension.dfdl-debug.getProgramName'
+      )
+    }
+
+    if (config.program === '') {
+      // need to invalidate a variable data file so the DebugConfigurationProvider doesn't try to resolve it after we return
+      if (config.data.includes('${command:AskForDataName}')) {
+        config.data = ''
+      }
+
+      return false
+    }
+
+    // Get data file before debugger starts to avoid timeout
+    if (config.data.includes('${command:AskForDataName}')) {
+      config.data = await vscode.commands.executeCommand(
+        'extension.dfdl-debug.getDataName'
+      )
+    }
+  }
+
+  if (
+    config?.tdmlConfig?.action === 'generate' ||
+    config?.tdmlConfig?.action === 'append' ||
+    config?.tdmlConfig?.action === 'execute'
+  ) {
+    if (
+      config?.tdmlConfig?.name === undefined ||
+      config?.tdmlConfig?.name.includes('${command:AskForTDMLName}')
+    )
+      config.tdmlConfig.name = await vscode.commands.executeCommand(
+        'extension.dfdl-debug.getTDMLName'
+      )
+
+    if (
+      config?.tdmlConfig?.description === undefined ||
+      config?.tdmlConfig?.description.includes(
+        '${command:AskForTDMLDescription}'
+      )
+    )
+      config.tdmlConfig.description = await vscode.commands.executeCommand(
+        'extension.dfdl-debug.getTDMLDescription'
+      )
+
+    if (
+      config?.tdmlConfig?.path === undefined ||
+      config?.tdmlConfig?.path.includes('${command:AskForTDMLPath}')
+    )
+      if (config?.tdmlConfig?.action === 'generate')
+        config.tdmlConfig.path = await vscode.commands.executeCommand(
+          'extension.dfdl-debug.getTDMLPath'
+        )
+      else
+        config.tdmlConfig.path = await vscode.commands.executeCommand(
+          'extension.dfdl-debug.getValidatedTDMLPath'
+        )
+  }
+
+  if (config?.tdmlConfig?.action !== 'execute' && config.data === '') {
+    return false
+  }
+
+  return true
+}
+
 // Function for getting the daffodil-debugger
 export async function getDebugger(
   context: vscode.ExtensionContext,
@@ -109,76 +193,7 @@
 
       await stopDebugger()
 
-      // If we are doing a TDML execute, these fields will be replaced,
-      //   so we don't need to prompt for them now.
-      if (config?.tdmlConfig?.action === 'execute') {
-        // Erase the value of `data` so that we aren't prompted for it later
-        // Might need to add `program` here if we move the `Execute TDML` command
-        //   away from the detected dfdl language in VSCode.
-        config.data = ''
-      } else {
-        // Get program file before debugger starts to avoid timeout
-        if (config.program.includes('${command:AskForProgramName}')) {
-          config.program = await vscode.commands.executeCommand(
-            'extension.dfdl-debug.getProgramName'
-          )
-        }
-
-        if (config.program === '') {
-          // need to invalidate a variable data file so the DebugConfigurationProvider doesn't try to resolve it after we return
-          if (config.data.includes('${command:AskForDataName}')) {
-            config.data = ''
-          }
-
-          return await stopDebugging()
-        }
-
-        // Get data file before debugger starts to avoid timeout
-        if (config.data.includes('${command:AskForDataName}')) {
-          config.data = await vscode.commands.executeCommand(
-            'extension.dfdl-debug.getDataName'
-          )
-        }
-      }
-
-      if (
-        config?.tdmlConfig?.action === 'generate' ||
-        config?.tdmlConfig?.action === 'append' ||
-        config?.tdmlConfig?.action === 'execute'
-      ) {
-        if (
-          config?.tdmlConfig?.name === undefined ||
-          config?.tdmlConfig?.name.includes('${command:AskForTDMLName}')
-        )
-          config.tdmlConfig.name = await vscode.commands.executeCommand(
-            'extension.dfdl-debug.getTDMLName'
-          )
-
-        if (
-          config?.tdmlConfig?.description === undefined ||
-          config?.tdmlConfig?.description.includes(
-            '${command:AskForTDMLDescription}'
-          )
-        )
-          config.tdmlConfig.description = await vscode.commands.executeCommand(
-            'extension.dfdl-debug.getTDMLDescription'
-          )
-
-        if (
-          config?.tdmlConfig?.path === undefined ||
-          config?.tdmlConfig?.path.includes('${command:AskForTDMLPath}')
-        )
-          if (config?.tdmlConfig?.action === 'generate')
-            config.tdmlConfig.path = await vscode.commands.executeCommand(
-              'extension.dfdl-debug.getTDMLPath'
-            )
-          else
-            config.tdmlConfig.path = await vscode.commands.executeCommand(
-              'extension.dfdl-debug.getValidatedTDMLPath'
-            )
-      }
-
-      if (config?.tdmlConfig?.action !== 'execute' && config.data === '') {
+      if (!(await getTDMLConfig(config))) {
         return await stopDebugging()
       }
 
@@ -191,9 +206,14 @@
 
       //check if each classpath still exists
       if (config.daffodilDebugClasspath) {
-        config.daffodilDebugClasspath.split(':').forEach((entry) => {
-          if (!fs.existsSync(entry)) {
-            throw new Error(`File or directory: ${entry} doesn't exist`)
+        config.daffodilDebugClasspath.split(':').forEach((entry: string) => {
+          let fullpathEntry = entry.replaceAll(
+            '${workspaceFolder}',
+            workspaceFolder
+          )
+
+          if (!fs.existsSync(fullpathEntry)) {
+            throw new Error(`File or directory: ${fullpathEntry} doesn't exist`)
           }
         })
 
@@ -207,6 +227,20 @@
           : config.daffodilDebugClasspath
       }
 
+      // make sure infoset output directory is present
+      if (config.infosetOutput.type == 'file') {
+        let dir = path.dirname(
+          config.infosetOutput.path.includes('${workspaceFolder}')
+            ? config.infosetOutput.path.replace(
+                '${workspaceFolder}',
+                vscode.workspace.workspaceFolders[0].uri.fsPath
+              )
+            : config.infosetOutput.path
+        )
+
+        if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true })
+      }
+
       // Start debugger in terminal based on scriptName
 
       /*
diff --git a/src/launchWizard/launchWizard.js b/src/launchWizard/launchWizard.js
index 0d1e8d5..b77e94d 100644
--- a/src/launchWizard/launchWizard.js
+++ b/src/launchWizard/launchWizard.js
@@ -65,6 +65,8 @@
     id: id,
     description: description,
     configIndex: getConfigIndex(),
+    selectFiles: description.includes('file(s)') ? true : false,
+    selectFolders: description.includes('folder(s)') ? true : false,
     extraData: extraData,
   })
 }
diff --git a/src/launchWizard/launchWizard.ts b/src/launchWizard/launchWizard.ts
index 7fd8bfc..73b896a 100644
--- a/src/launchWizard/launchWizard.ts
+++ b/src/launchWizard/launchWizard.ts
@@ -146,20 +146,21 @@
 }
 
 // Function to create file picker for wizard
-async function openFilePicker(description) {
+async function openFilePicker(
+  description: string,
+  selectFiles: boolean = true,
+  selectFolders: boolean = true
+) {
   let rootPath = vscode.workspace.workspaceFolders
     ? vscode.workspace.workspaceFolders[0].uri.fsPath
-    : vscode.Uri.parse('').fsPath
-
-  let canSelectMany = !!description.includes('jar files/folder')
-  let canSelectFolders = !!description.includes('jar files/folder')
+    : vscode.Uri.file('').fsPath
 
   let chosenFile = await vscode.window
     .showOpenDialog({
-      canSelectMany: canSelectMany,
+      canSelectMany: true,
       openLabel: description,
-      canSelectFiles: true,
-      canSelectFolders: canSelectFolders,
+      canSelectFiles: selectFiles,
+      canSelectFolders: selectFolders,
       title: description,
     })
     .then(async (fileUri) => {
@@ -197,7 +198,11 @@
           })
           return
         case 'openFilePicker':
-          let result = await openFilePicker(message.description)
+          let result = await openFilePicker(
+            message.description,
+            message.selectFiles,
+            message.selectFolders
+          )
 
           // don't add empty string to table
           if (result !== '') {
@@ -458,7 +463,8 @@
         ${daffodilDebugClasspathList}
 
         <p style="margin-left: 5px">
-          <button id="daffodilDebugClasspathBrowse" class="browse-button" type="button" onclick="filePicker('daffodilDebugClasspath', 'Select jar files/folder with desired jars')">Browse</button>
+          <button id="daffodilDebugClasspathAddFolders" class="browse-button" type="button" onclick="filePicker('daffodilDebugClasspath', 'Select folder(s) with desired jars')">Add Folder(s)</button>
+          <button id="daffodilDebugClasspathAddFiles" class="browse-button" type="button" onclick="filePicker('daffodilDebugClasspath', 'Select jar file(s)')">Add JAR File(s)</button>
         </p>
       </div>
 
diff --git a/src/styles/styles.css b/src/styles/styles.css
index 59da008..05455ac 100644
--- a/src/styles/styles.css
+++ b/src/styles/styles.css
@@ -34,14 +34,19 @@
   color: white;
   cursor: pointer;
   background-color: rgb(80, 78, 78);
-  width: 375px;
-  height: 25px;
+  width: fit-content;
+  height: fit-content;
   font-size: 12px;
   border: none;
   border-radius: 12px;
   padding-left: 7px;
+  padding-right: 10px;
+  padding-bottom: 5px;
   margin: 0px;
   margin-top: 5px;
+
+  word-wrap: break-word;
+  word-break: break-all;
 }
 
 /* Hide the browser's default checkbox */
@@ -130,7 +135,7 @@
   font-size: 12px;
   cursor: pointer;
   width: 75px;
-  height: 25px;
+  height: fit-content;
 }
 
 .minus-button {
diff --git a/src/tests/suite/utils.test.ts b/src/tests/suite/utils.test.ts
index 4e15543..c51aafb 100644
--- a/src/tests/suite/utils.test.ts
+++ b/src/tests/suite/utils.test.ts
@@ -33,7 +33,7 @@
     infosetFormat: 'xml',
     infosetOutput: {
       type: 'none',
-      path: '${workspaceFolder}/infoset.xml',
+      path: '${workspaceFolder}/target/infoset.xml',
     },
     stopOnEntry: true,
     useExistingServer: false,
diff --git a/src/utils.ts b/src/utils.ts
index d2d2e27..c300ca8 100644
--- a/src/utils.ts
+++ b/src/utils.ts
@@ -129,7 +129,7 @@
           type: defaultConf.get('infosetOutputType', 'none'),
           path: defaultConf.get(
             'infosetOutputFilePath',
-            '${workspaceFolder}/infoset.xml'
+            '${workspaceFolder}/target/infoset.xml'
           ),
         },
     stopOnEntry: stopOnEntry
