diff --git a/.config/tsaoptions.json b/.config/tsaoptions.json
new file mode 100644
index 0000000..aeacdcb
--- /dev/null
+++ b/.config/tsaoptions.json
@@ -0,0 +1,8 @@
+{
+  "instanceUrl": "https://msazure.visualstudio.com",
+  "projectName": "One",
+  "areaPath": "One\\MGMT\\Compute\\Powershell\\Powershell",
+  "notificationAliases": [ "andschwa@microsoft.com", "slee@microsoft.com" ],
+  "codebaseName": "PowerShell_ConsoleGuiTools_20240404",
+  "tools": [ "CredScan", "PoliCheck", "BinSkim" ]
+}
diff --git a/.github/workflows/ci-test.yml b/.github/workflows/ci-test.yml
new file mode 100644
index 0000000..9b5ac02
--- /dev/null
+++ b/.github/workflows/ci-test.yml
@@ -0,0 +1,51 @@
+name: CI Tests
+
+on:
+  push:
+    branches: [ main ]
+  pull_request:
+    branches: [ main ]
+  merge_group:
+    types: [ checks_requested ]
+
+jobs:
+  ci:
+    name: dotnet
+    strategy:
+      matrix:
+        os: [ windows-latest, macos-latest, ubuntu-latest ]
+    runs-on: ${{ matrix.os }}
+    env:
+      DOTNET_NOLOGO: true
+      DOTNET_CLI_TELEMETRY_OPTOUT: true
+      DOTNET_GENERATE_ASPNET_CERTIFICATE: false
+    steps:
+      - name: Checkout repository
+        uses: actions/checkout@v4
+
+      - name: Install dotnet
+        uses: actions/setup-dotnet@v4
+        with:
+          cache: true
+          cache-dependency-path: '**/*.csproj'
+
+      - name: Install PSResources
+        shell: pwsh
+        run: ./tools/installPSResources.ps1
+
+      - name: Build and test
+        shell: pwsh
+        run: Invoke-Build -Configuration Release Build, Package
+
+      - name: Upload module
+        if: always()
+        uses: actions/upload-artifact@v4
+        with:
+          name: ConsoleGuiTools-module-${{ matrix.os }}
+          path: module
+
+      - name: Upload NuGet package
+        uses: actions/upload-artifact@v4
+        with:
+          name: ConsoleGuiTools-nupkg-${{ matrix.os }}
+          path: out/*.nupkg
diff --git a/.gitignore b/.gitignore
index 995941e..80046ed 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,47 +1,6 @@
-*.swp
-*.*~
-project.lock.json
-.DS_Store
-*.pyc
-nupkg/
-
-# Rider
-.idea
-
-# User-specific files
-*.suo
-*.user
-*.userosscache
-*.sln.docstates
-
-# Build results
-[Dd]ebug/
-[Dd]ebugPublic/
-[Rr]elease/
-[Rr]eleases/
-x64/
-x86/
-build/
-bld/
-[Bb]in/
-[Oo]bj/
-[Oo]ut/
-msbuild.log
-msbuild.err
-msbuild.wrn
-
-#Module build
 module/
-
-# Visual Studio 2015
-.vs/
-
-# ingore downloaded .NET
-.dotnet
-
-# Ignore package
-Microsoft.PowerShell.GraphicalTools.zip
-Microsoft.PowerShell.ConsoleGuiTools.zip
-
-# git artifacts
-*.orig
\ No newline at end of file
+out/
+bin/
+obj/
+publish/
+*.sln
diff --git a/.pipelines/ConsoleGuiTools-Official.yml b/.pipelines/ConsoleGuiTools-Official.yml
new file mode 100644
index 0000000..b246120
--- /dev/null
+++ b/.pipelines/ConsoleGuiTools-Official.yml
@@ -0,0 +1,164 @@
+#################################################################################
+#                               OneBranch Pipelines                             #
+# This pipeline was created by EasyStart from a sample located at:              #
+#   https://aka.ms/obpipelines/easystart/samples                                #
+# Documentation:  https://aka.ms/obpipelines                                    #
+# Yaml Schema:    https://aka.ms/obpipelines/yaml/schema                        #
+# Retail Tasks:   https://aka.ms/obpipelines/tasks                              #
+# Support:        https://aka.ms/onebranchsup                                   #
+#################################################################################
+
+trigger: none
+
+parameters:
+- name: debug
+  displayName: Enable debug output
+  type: boolean
+  default: false
+
+variables:
+  system.debug: ${{ parameters.debug }}
+  BuildConfiguration: Release
+  WindowsContainerImage: onebranch.azurecr.io/windows/ltsc2019/vse2022:latest
+  DOTNET_NOLOGO: true
+  DOTNET_CLI_TELEMETRY_OPTOUT: true
+  DOTNET_GENERATE_ASPNET_CERTIFICATE: false
+
+resources:
+  repositories:
+    - repository: templates
+      type: git
+      name: OneBranch.Pipelines/GovernedTemplates
+      ref: refs/heads/main
+
+extends:
+  # https://aka.ms/obpipelines/templates
+  template: v2/OneBranch.Official.CrossPlat.yml@templates
+  parameters:
+    globalSdl: # https://aka.ms/obpipelines/sdl
+      asyncSdl:
+        enabled: true
+        forStages: [build]
+    stages:
+    - stage: build
+      jobs:
+      - job: main
+        displayName: Build package
+        pool:
+          type: windows
+        variables:
+          ob_outputDirectory: $(Build.SourcesDirectory)/out
+        steps:
+          - pwsh: |
+              $data = Import-PowerShellDataFile -Path src/Microsoft.PowerShell.ConsoleGuiTools/Microsoft.PowerShell.ConsoleGuiTools.psd1
+              Write-Output "##vso[task.setvariable variable=version;isOutput=true]$($data.ModuleVersion)"
+            name: package
+            displayName: Get version from project properties
+          - task: onebranch.pipeline.version@1
+            displayName: Set OneBranch version
+            inputs:
+              system: Custom
+              customVersion: $(package.version)
+          - task: UseDotNet@2
+            displayName: Use .NET SDK
+            inputs:
+              packageType: sdk
+              useGlobalJson: true
+          - task: PowerShell@2
+            displayName: Install PSResources
+            inputs:
+              pwsh: true
+              filePath: tools/installPSResources.ps1
+          - pwsh: Invoke-Build -Configuration $(BuildConfiguration)
+            displayName: Build
+          - task: onebranch.pipeline.signing@1
+            displayName: Sign 1st-party files
+            inputs:
+              command: sign
+              signing_profile: external_distribution
+              search_root: $(Build.SourcesDirectory)/module
+              files_to_sign: |
+                *.psd1;
+                Microsoft.PowerShell.*.dll;
+          - task: onebranch.pipeline.signing@1
+            displayName: Sign 3rd-party files
+            inputs:
+              command: sign
+              signing_profile: 135020002
+              search_root: $(Build.SourcesDirectory)/module
+              files_to_sign: |
+                NStack.dll;
+                Terminal.Gui.dll;
+          - task: ArchiveFiles@2
+            displayName: Zip module
+            inputs:
+              rootFolderOrFile: $(Build.SourcesDirectory)/module
+              includeRootFolder: false
+              archiveType: zip
+              archiveFile: out/ConsoleGuiTools-v$(package.version).zip
+          - pwsh: Invoke-Build -Configuration $(BuildConfiguration) Package
+            displayName: Package module
+          - task: onebranch.pipeline.signing@1
+            displayName: Sign NuGet package
+            inputs:
+              command: sign
+              signing_profile: external_distribution
+              search_root: $(Build.SourcesDirectory)/out
+              files_to_sign: "*.nupkg"
+    - stage: release
+      dependsOn: build
+      variables:
+        version: $[ stageDependencies.build.main.outputs['package.version'] ]
+        drop: $(Pipeline.Workspace)/drop_build_main
+      jobs:
+      - job: github
+        displayName: Publish draft to GitHub
+        pool:
+          type: windows
+        variables:
+          ob_outputDirectory: $(Build.SourcesDirectory)/out
+        steps:
+        - download: current
+          displayName: Download artifacts
+        - task: GitHubRelease@1
+          displayName: Create GitHub release
+          inputs:
+            gitHubConnection: GitHub
+            repositoryName: PowerShell/ConsoleGuiTools
+            assets: |
+              $(drop)/Microsoft.PowerShell.ConsoleGuiTools.$(version).nupkg
+              $(drop)/ConsoleGuiTools-v$(version).zip
+            tagSource: userSpecifiedTag
+            tag: v$(version)
+            isDraft: true
+            addChangeLog: false
+            releaseNotesSource: inline
+            releaseNotesInline: "<!-- TODO: Generate release notes on GitHub! -->"
+      - job: validation
+        displayName: Manual validation
+        pool:
+          type: agentless
+        timeoutInMinutes: 1440
+        steps:
+        - task: ManualValidation@0
+          displayName: Wait 24 hours for validation
+          inputs:
+            notifyUsers: $(Build.RequestedForEmail)
+            instructions: Please validate the release and then publish it!
+            timeoutInMinutes: 1440
+      - job: publish
+        dependsOn: validation
+        displayName: Publish to PowerShell Gallery
+        pool:
+          type: windows
+        variables:
+          ob_outputDirectory: $(Build.SourcesDirectory)/out
+        steps:
+        - download: current
+          displayName: Download artifacts
+        - task: NuGetCommand@2
+          displayName: Publish ConsoleGuiTools to PowerShell Gallery
+          inputs:
+            command: push
+            packagesToPush: $(drop)/Microsoft.PowerShell.ConsoleGuiTools.$(version).nupkg
+            publishFeedCredentials: PowerShellGallery
diff --git a/.vscode/launch.json b/.vscode/launch.json
deleted file mode 100644
index 3858d91..0000000
--- a/.vscode/launch.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-    // Use IntelliSense to learn about possible attributes.
-    // Hover to view descriptions of existing attributes.
-    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
-    "version": "0.7.0",
-    "configurations": [
-        {
-            "name": ".NET Core Launch (console)",
-            "preLaunchTask": "build ConsoleGuiTools",
-            "type": "coreclr",
-            "request": "launch",
-            "program": "pwsh",
-            "args": [
-                "-NoExit",
-                "-NoProfile",
-                "-Command",
-                "Import-Module -verbose ${workspaceFolder}/module/Microsoft.PowerShell.ConsoleGuiTools"
-            ],
-            "cwd": "${workspaceFolder}",
-            "console": "integratedTerminal",
-            "stopAtEntry": false,
-            "justMyCode": false
-        },
-        {
-            "name": ".NET Core Attach",
-            "type": "coreclr",
-            "request": "attach",
-            "processId": "${command:pickProcess}",
-            "justMyCode": false
-        }
-    ]
-}
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
deleted file mode 100644
index d528a62..0000000
--- a/.vscode/settings.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-    "files.associations": {
-        "**/.vsts-ci/**/*.yml":"azure-pipelines",
-    }
-}
\ No newline at end of file
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
deleted file mode 100644
index e0a35c4..0000000
--- a/.vscode/tasks.json
+++ /dev/null
@@ -1,22 +0,0 @@
-    // See https://go.microsoft.com/fwlink/?LinkId=733558
-    // for the documentation about the tasks.json format
-    {
-    "version": "2.0.0",
-    "tasks": [
-        {
-            "label": "build ConsoleGuiTools",
-            "command": "Invoke-Build",
-            "type": "shell",
-            "args": [
-                "Build",
-                "-Module",
-                "Microsoft.PowerShell.ConsoleGuiTools"
-            ],
-            "group": "build",
-            "presentation": {
-                "reveal": "silent"
-            },
-            "problemMatcher": "$msCompile"
-        }
-    ]
-}
\ No newline at end of file
diff --git a/.vsts-ci/azure-pipelines-ci.yml b/.vsts-ci/azure-pipelines-ci.yml
deleted file mode 100644
index bc9155b..0000000
--- a/.vsts-ci/azure-pipelines-ci.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-name: PR-$(System.PullRequest.PullRequestNumber)-$(Date:yyyyMMdd)$(Rev:.rr)
-
-variables:
-  # Don't download unneeded packages
-  - name: DOTNET_SKIP_FIRST_TIME_EXPERIENCE
-    value: 'true'
-  # Improve performance by not sending telemetry
-  - name: DOTNET_CLI_TELEMETRY_OPTOUT
-    value: 'true'
-
-jobs:
-- job: windows2022pwsh
-  displayName: Windows 2022 PowerShell 7
-  pool:
-    vmImage: windows-2022
-  steps:
-  - template: templates/ci-general.yml
-
-- job: macOS11
-  displayName: macOS 11
-  pool:
-    vmImage: macOS-11
-  steps:
-  - template: templates/ci-general.yml
-
-- job: ubuntu2004
-  displayName: Ubuntu 20.04
-  pool:
-    vmImage: ubuntu-20.04
-  steps:
-  - template: templates/ci-general.yml
diff --git a/.vsts-ci/azure-pipelines-release.yml b/.vsts-ci/azure-pipelines-release.yml
deleted file mode 100644
index f127c70..0000000
--- a/.vsts-ci/azure-pipelines-release.yml
+++ /dev/null
@@ -1,76 +0,0 @@
-name: Release-$(Build.SourceBranchName)-$(Date:yyyyMMdd)$(Rev:.rr)
-
-variables:
-  # Don't download unneeded packages
-  - name: DOTNET_SKIP_FIRST_TIME_EXPERIENCE
-    value: 'true'
-  # Improve performance by not sending telemetry
-  - name: DOTNET_CLI_TELEMETRY_OPTOUT
-    value: 'true'
-
-trigger:
-  branches:
-    include:
-      - release
-
-resources:
-  repositories:
-  - repository: ComplianceRepo
-    type: github
-    endpoint: GitHub
-    name: PowerShell/compliance
-
-stages:
-- stage: Build
-  displayName: Build the release
-  jobs:
-  - job: Build
-    pool:
-      name: 1ES
-      demands: ImageOverride -equals PSMMS2019-Secure
-    steps:
-    - template: templates/ci-general.yml
-
-- stage: Sign
-  displayName: Sign the release
-  jobs:
-  - job: Sign
-    pool:
-      name: 1ES
-      demands: ImageOverride -equals PSMMS2019-Secure
-    variables:
-    - group: ESRP
-    steps:
-    - template: templates/release-general.yml
-
-- stage: PublishGitHub
-  displayName: Publish the draft release
-  jobs:
-  - deployment: Publish
-    environment: GraphicalTools-GitHub
-    pool:
-      name: 1ES
-      demands: ImageOverride -equals PSMMSUbuntu20.04-Secure
-    variables:
-    - group: Publish
-    strategy:
-      runOnce:
-        deploy:
-          steps:
-          - template: templates/publish-github.yml
-
-- stage: PublishMarkets
-  displayName: Publish to marketplace and gallery
-  jobs:
-  - deployment: Publish
-    environment: GraphicalTools-Gallery
-    pool:
-      name: 1ES
-      demands: ImageOverride -equals PSMMSUbuntu20.04-Secure
-    variables:
-    - group: Publish
-    strategy:
-      runOnce:
-        deploy:
-          steps:
-          - template: templates/publish-markets.yml
diff --git a/.vsts-ci/misc-analysis.yml b/.vsts-ci/misc-analysis.yml
deleted file mode 100644
index 2647eb1..0000000
--- a/.vsts-ci/misc-analysis.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-name: PR-$(System.PullRequest.PullRequestNumber)-$(Date:yyyyMMdd)$(Rev:.rr)
-
-trigger:
-  branches:
-    include:
-    - master
-
-pr:
-- master
-
-resources:
-  repositories:
-  - repository: ComplianceRepo
-    type: github
-    endpoint: GitHub
-    name: PowerShell/compliance
-
-jobs:
-- job: Compliance
-  pool:
-    vmImage: windows-latest
-  steps:
-  - checkout: self
-  - checkout: ComplianceRepo
-  - template: ci-compliance.yml@ComplianceRepo
diff --git a/.vsts-ci/templates/ci-general.yml b/.vsts-ci/templates/ci-general.yml
deleted file mode 100644
index 8eb60b2..0000000
--- a/.vsts-ci/templates/ci-general.yml
+++ /dev/null
@@ -1,67 +0,0 @@
-parameters:
-- name: pwsh
-  type: boolean
-  default: true
-
-steps:
-- task: PowerShell@2
-  displayName: PowerShell version
-  inputs:
-    targetType: inline
-    script: $PSVersionTable
-    pwsh: ${{ parameters.pwsh }}
-
-- task: UseDotNet@2
-  displayName: Install .NET 6.0.x SDK
-  inputs:
-    packageType: sdk
-    version: 6.0.x
-    performMultiLevelLookup: true
-
-- task: PowerShell@2
-  displayName: Build and test
-  inputs:
-    filePath: tools/azurePipelinesBuild.ps1
-    pwsh: ${{ parameters.pwsh }}
-      
-- task: PublishTestResults@2
-  displayName: Publish VSTest results
-  inputs:
-    testRunner: VSTest
-    testResultsFiles: '**/*.trx'
-  condition: succeededOrFailed()
-
-- task: PublishTestResults@2
-  displayName: Publish NUnit results
-  inputs:
-    testRunner: NUnit
-    testResultsFiles: '**/TestResults.xml'
-  condition: succeededOrFailed()
-
-# NOTE: We zip the artifacts because they're ~20 MB compressed, but ~300 MB raw,
-# and we have limited pipeline artifact storage space.
-- task: ArchiveFiles@2
-  displayName: Zip build output
-  inputs:
-    rootFolderOrFile: module
-    includeRootFolder: false
-    archiveType: zip
-    archiveFile: GraphicalTools-Build.zip
-    verbose: true
-
-- publish: GraphicalTools-Build.zip
-  artifact: GraphicalTools-Build-$(System.JobId)
-  displayName: Publish build output archive
-
-- task: ArchiveFiles@2
-  displayName: Zip sources with `project.assets.json`
-  inputs:
-    rootFolderOrFile: src
-    includeRootFolder: false
-    archiveType: zip
-    archiveFile: GraphicalTools-Sources.zip
-    verbose: true
-
-- publish: GraphicalTools-Sources.zip
-  artifact: GraphicalTools-Sources-$(System.JobId)
-  displayName: Publish sources archive
diff --git a/.vsts-ci/templates/publish-github.yml b/.vsts-ci/templates/publish-github.yml
deleted file mode 100644
index b15b0b4..0000000
--- a/.vsts-ci/templates/publish-github.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-steps:
-- checkout: self
-
-- download: current
-  artifact: GraphicalTools
-  displayName: Download signed pipeline artifacts
-
-- pwsh: |
-    Set-PSRepository -Name PSGallery -InstallationPolicy Trusted | Out-Null
-    Install-Module -Name PowerShellForGitHub -Scope CurrentUser -Force
-    Set-GitHubConfiguration -SuppressTelemetryReminder
-
-    $password = ConvertTo-SecureString -String $(GitHubToken) -AsPlainText -Force
-    Set-GitHubAuthentication -Credential (New-Object System.Management.Automation.PSCredential ("token", $password))
-
-    $Info = Import-PowerShellDataFile -Path ./src/Microsoft.PowerShell.ConsoleGuiTools/Microsoft.PowerShell.ConsoleGuiTools.psd1
-
-    $ReleaseParams = @{
-        Tag            = "v$($Info.ModuleVersion)"
-        Committish     = "release"
-        Name           = "v$($Info.ModuleVersion)"
-        Draft          = $True
-        PreRelease     = $False
-        OwnerName      = "PowerShell"
-        RepositoryName = "GraphicalTools"
-    }
-
-    $Release = New-GitHubRelease @ReleaseParams
-    Write-Host "Draft release URL: $($Release.html_url)"
-    $Release | New-GitHubReleaseAsset -Path $(Pipeline.Workspace)/GraphicalTools/GraphicalTools.zip
-  displayName: Drafting a GitHub Release
diff --git a/.vsts-ci/templates/publish-markets.yml b/.vsts-ci/templates/publish-markets.yml
deleted file mode 100644
index 4b12582..0000000
--- a/.vsts-ci/templates/publish-markets.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-steps:
-- checkout: self
-
-- download: current
-  artifact: GraphicalTools
-  displayName: Download signed artifacts
-
-- task: ExtractFiles@1
-  displayName: Extract signed artifacts
-  inputs:
-    archiveFilePatterns: $(Pipeline.Workspace)/GraphicalTools/GraphicalTools.zip
-    destinationFolder: $(Pipeline.Workspace)/Publish
-    cleanDestinationFolder: true
-
-- pwsh: |
-    Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
-    Install-Module -Name Microsoft.PowerShell.PSResourceGet -AllowPrerelease -Scope CurrentUser -Force
-    Import-Module -Name Microsoft.PowerShell.PSResourceGet -MinimumVersion 1.0.0
-    Publish-PSResource -Path $(Pipeline.Workspace)/Publish/Microsoft.PowerShell.ConsoleGuiTools -Repository PSGallery -APIKey $(GalleryToken) -Verbose
-  displayName: Publishing ConsoleGuiTools to PowerShell Gallery
diff --git a/.vsts-ci/templates/release-general.yml b/.vsts-ci/templates/release-general.yml
deleted file mode 100644
index 96d80db..0000000
--- a/.vsts-ci/templates/release-general.yml
+++ /dev/null
@@ -1,89 +0,0 @@
-steps:
-- download: current
-  displayName: Download unsigned pipeline artifacts
-
-- task: ExtractFiles@1
-  displayName: Extract unsigned artifacts
-  inputs:
-    archiveFilePatterns: $(Pipeline.Workspace)/GraphicalTools-Build-*/GraphicalTools-Build.zip
-    destinationFolder: $(Pipeline.Workspace)/Unsigned
-    cleanDestinationFolder: true
-
-- checkout: ComplianceRepo
-
-# NOTE: The signing templates explicitly copy everything along as they run, so
-# the last output path has every signed (and intentionally unsigned) file.
-- template: EsrpSign.yml@ComplianceRepo
-  parameters:
-    buildOutputPath: $(Pipeline.Workspace)/Unsigned
-    signOutputPath: $(Pipeline.Workspace)/FirstPartySigned
-    alwaysCopy: true
-    certificateId: CP-230012 # Authenticode certificate
-    shouldSign: true # We always want to sign
-    useMinimatch: true # This enables the use of globbing
-    pattern: |
-      **/Microsoft.PowerShell.*.{dll,psd1,psm1}
-
-- template: EsrpSign.yml@ComplianceRepo
-  parameters:
-    buildOutputPath: $(Pipeline.Workspace)/FirstPartySigned
-    signOutputPath: $(Pipeline.Workspace)/ThirdPartySigned
-    alwaysCopy: true
-    certificateId: CP-231522 # Third-party certificate
-    shouldSign: true # We always want to sign
-    useMinimatch: true # This enables the use of globbing
-    pattern: |
-      **/NStack.dll
-      **/Terminal.Gui.dll
-
-# The SBOM generation requires our original sources with the `dotnet restore`
-# produced `project.assets.json` files.
-- task: ExtractFiles@1
-  displayName: Extract source artifacts
-  inputs:
-    archiveFilePatterns: $(Pipeline.Workspace)/GraphicalTools-Sources-*/GraphicalTools-Sources.zip
-    destinationFolder: $(Pipeline.Workspace)/Sources
-    cleanDestinationFolder: true
-
-- template: Sbom.yml@ComplianceRepo
-  parameters:
-    BuildDropPath: $(Pipeline.Workspace)/ThirdPartySigned
-    Build_Repository_Uri: https://github.com/PowerShell/GraphicalTools.git
-    packageName: GraphicalTools
-    packageVersion: $(System.JobId)
-    sourceScanPath: $(Pipeline.Workspace)/Sources
-
-- task: ArchiveFiles@2
-  displayName: Zip signed artifacts
-  inputs:
-    rootFolderOrFile: $(Pipeline.Workspace)/ThirdPartySigned
-    includeRootFolder: false
-    archiveType: zip
-    archiveFile: GraphicalTools.zip
-    replaceExistingArchive: true
-    verbose: true
-
-- checkout: self
-
-- template: assembly-module-compliance.yml@ComplianceRepo
-  parameters:
-    # binskim
-    AnalyzeTarget: $(Pipeline.Workspace)/*.dll
-    AnalyzeSymPath: 'SRV*'
-    # component-governance: requires the `project.assets.json` files
-    sourceScanPath: $(Pipeline.Workspace)/Sources
-    # credscan
-    suppressionsFile: ''
-    # TermCheck AKA PoliCheck
-    targetArgument: $(Build.SourcesDirectory)/GraphicalTools
-    optionsUEPATH: $(Build.SourcesDirectory)/GraphicalTools/tools/terms/UserExclusions.xml
-    optionsRulesDBPath: ''
-    optionsFTPath: $(Build.SourcesDirectory)/GraphicalTools/tools/terms/FileTypeSet.xml
-    # tsa-upload
-    codeBaseName: PowerShell_GraphicalTools_20220823
-    # We don't use any Windows APIs directly, so we don't need API scan
-    APIScan: false
-
-- publish: GraphicalTools.zip
-  artifact: GraphicalTools
-  displayName: Publish signed pipeline artifacts
diff --git a/Build.ps1 b/Build.ps1
deleted file mode 100644
index 42b6507..0000000
--- a/Build.ps1
+++ /dev/null
@@ -1,58 +0,0 @@
-# Build script for buildling/testing from the commnad line. See tasks.json for how build is invoked within VS Code
-# GraphicalTools includes two modules: Microsoft.PowerShell.GraphicalTools and Microsoft.PowerShell.ConsoleGuiTools
-# To build them all leave -ModuleName off the `InvokeBuild` command (e.g. Invoke-Build Build).
-# To build only one, specify it using the -ModuleName paramater (e.g. Invoke-Build Build -ModuleName Microsoft.PowerShell.ConsoleGuiTools).
-$ModuleName = "Microsoft.PowerShell.ConsoleGuiTools"
-$BuildPath = "$PSScriptRoot/module/$ModuleName"
-$PsdPath = "src/$ModuleName/$ModulePath/$($ModuleName).psd1"
-
-# Assume this is the first build
-$build = 0
-
-$psd1Content = Get-Content $PsdPath -Raw -ErrorAction SilentlyContinue
-if ($psd1Content) {
-    # Extract the ModuleVersion from the .psd1 content using regular expression
-    if ($psd1Content -match "ModuleVersion\s+=\s+'(.*?)'") {
-        $prevVersion = $Matches[1]
-        $prevVersionParts = $prevVersion -split '\.'
-        $build = [int]$prevVersionParts[3] + 1
-        $ModuleVersion = "{0}.{1}.{2}.{3}" -f $prevVersionParts[0], $prevVersionParts[1], $prevVersionParts[2], $build
-    }
-    else {
-        "No previous version found. Assuming this is the first build."
-        # Get the ModuleVersion using dotnet-gitversion
-        $prevVersion = "1.0.0.0"
-        $ModuleVersion = "$($prevVersion)"
-    }
-    "Rewriting $PsdPath with new ModuleVersion: $ModuleVersion"
-    $updatedpsd1Content = $psd1Content -replace "ModuleVersion\s+=\s+'([\d\.]+)'", "ModuleVersion = '$ModuleVersion'"
-    $updatedpsd1Content = $updatedpsd1Content.TrimEnd()
-    $updatedpsd1Content | Out-File -FilePath $PsdPath -Encoding ascii
-}
-else {
-    throw "$PsdPath not found."
-}
-
-"Buildihg $ModuleName..."
-Invoke-Build Build -ModuleName $ModuleName
-
-# Publish to a local PSRepository to enable downstream dependenies to use development builds
-# - If `local` doesn't exist, create with `Register-PSRepository -Name local -SourceLocation "~/psrepo" -InstallationPolicy Trusted`
-$localRepository = Get-PSRepository | Where-Object { $_.Name -eq 'local' }
-if ($localRepository) {    
-    $localRepositoryPath = $localRepository | Select-Object -ExpandProperty SourceLocation
-    # Un-publishing $ModuleName from local repository at $localRepositoryPath"
-    Remove-Item "${localRepositoryPath}/${ModuleName}.{$ModuleVersion}.nupkg" -Recurse -Force -ErrorAction SilentlyContinue
-    "Publishing ${localRepositoryPath}/${ModuleName}.$ModuleVersion.nupkg to `local'"
-    Publish-Module -Path $BuildPath  -Repository 'local'
-}
-
-
-# Run what was built as a bit of test of:
-# - Scale: recursive ls of the project
-# - Filter: proving regex works
-# - SelectMultiple
-$testCommand = "Get-ChildItem -Recurse | Out-ConsoleGridView -Debug -OutputMode Multiple -Title 'Imported Modules' -Filter \.xml"
-"Running test in new pwsh session: $testCommand"
-pwsh -noprofile -command "Import-Module -verbose $BuildPath; $testCommand"
-"Test exited. Build complete."
diff --git a/ConsoleGuiTools.Common.props b/ConsoleGuiTools.Common.props
new file mode 100644
index 0000000..adc7492
--- /dev/null
+++ b/ConsoleGuiTools.Common.props
@@ -0,0 +1,12 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+    <PropertyGroup>
+        <VersionPrefix>0.7.6</VersionPrefix>
+        <VersionSuffix></VersionSuffix>
+        <Company>Microsoft</Company>
+        <Copyright>© Microsoft Corporation.</Copyright>
+        <LangVersion>latest</LangVersion>
+        <PackageLicenseUrl>https://github.com/PowerShell/ConsoleGuiTools/blob/main/LICENSE.txt</PackageLicenseUrl>
+        <RepositoryType>git</RepositoryType>
+        <RepositoryUrl>https://github.com/PowerShell/ConsoleGuiTools</RepositoryUrl>
+    </PropertyGroup>
+</Project>
diff --git a/ConsoleGuiTools.build.ps1 b/ConsoleGuiTools.build.ps1
new file mode 100644
index 0000000..3fa225b
--- /dev/null
+++ b/ConsoleGuiTools.build.ps1
@@ -0,0 +1,56 @@
+
+param(
+    [ValidateSet("Debug", "Release")]
+    [string]$Configuration = "Debug"
+)
+
+task FindDotNet -Before Clean, Build {
+    Assert (Get-Command dotnet -ErrorAction SilentlyContinue) "The dotnet CLI was not found, please install it: https://aka.ms/dotnet-cli"
+    $DotnetVersion = dotnet --version
+    Assert ($?) "The required .NET SDK was not found, please install it: https://aka.ms/dotnet-cli"
+    Write-Host "Using dotnet $DotnetVersion at path $((Get-Command dotnet).Source)" -ForegroundColor Green
+}
+
+task Clean {
+    Remove-BuildItem ./module, ./out
+    Push-Location src/Microsoft.PowerShell.ConsoleGuiTools
+    Invoke-BuildExec { & dotnet clean }
+    Pop-Location
+}
+
+task Build {
+    New-Item -ItemType Directory -Force ./module | Out-Null
+
+    Push-Location src/Microsoft.PowerShell.ConsoleGuiTools
+    Invoke-BuildExec { & dotnet publish --configuration $Configuration --output publish }
+    $Assets = $(
+        "./publish/Microsoft.PowerShell.ConsoleGuiTools.dll",
+        "./publish/Microsoft.PowerShell.ConsoleGuiTools.psd1",
+        "./publish/Microsoft.PowerShell.OutGridView.Models.dll",
+        "./publish/Terminal.Gui.dll",
+        "./publish/NStack.dll")
+    $Assets | ForEach-Object {
+        Copy-Item -Force -Path $_ -Destination ../../module
+    }
+    Pop-Location
+
+    $Assets = $(
+        "./README.md",
+        "./LICENSE.txt",
+        "./NOTICE.txt")
+    $Assets | ForEach-Object {
+        Copy-Item -Force -Path $_ -Destination ./module
+    }
+
+    New-ExternalHelp -Path docs/Microsoft.PowerShell.ConsoleGuiTools -OutputPath module/en-US -Force
+}
+
+task Package {
+    New-Item -ItemType Directory -Force ./out | Out-Null
+    if (-Not (Get-PSResourceRepository -Name ConsoleGuiTools -ErrorAction SilentlyContinue)) {
+        Register-PSResourceRepository -Name ConsoleGuiTools -Uri ./out
+    }
+    Publish-PSResource -Path ./module -Repository ConsoleGuiTools -Verbose
+}
+
+task . Clean, Build
diff --git a/GraphicalTools.Common.props b/GraphicalTools.Common.props
deleted file mode 100644
index 2976d35..0000000
--- a/GraphicalTools.Common.props
+++ /dev/null
@@ -1,11 +0,0 @@
-<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-    <PropertyGroup>
-        <HighEntropyVA>true</HighEntropyVA>
-        <Optimize>true</Optimize>
-    </PropertyGroup>
-
-    <PropertyGroup Condition="'$(IsWindows)' == 'true' ">
-        <!-- This is required to be full for compliance tools !-->
-        <DebugType>full</DebugType>
-    </PropertyGroup>
-</Project>
diff --git a/GraphicalTools.build.ps1 b/GraphicalTools.build.ps1
deleted file mode 100644
index cd3f276..0000000
--- a/GraphicalTools.build.ps1
+++ /dev/null
@@ -1,176 +0,0 @@
-
-param(
-    [ValidateSet("Debug", "Release")]
-    [string]$Configuration = "Debug",
-
-    [string[]]$ModuleName = @("Microsoft.PowerShell.ConsoleGuiTools" )
-)
-
-$script:IsUnix = $PSVersionTable.PSEdition -and $PSVersionTable.PSEdition -eq "Core" -and !$IsWindows
-
-$script:TargetFramework = "net6.0"
-$script:RequiredSdkVersion = (Get-Content (Join-Path $PSScriptRoot 'global.json') | ConvertFrom-Json).sdk.version
-
-$script:ModuleLayouts = @{}
-foreach ($mn in $ModuleName) {
-    $script:ModuleLayouts.$mn = Import-PowerShellDataFile -Path "$PSScriptRoot/src/$mn/ModuleLayout.psd1"
-}
-
-task SetupDotNet -Before Clean, Build {
-
-    $dotnetPath = "$PSScriptRoot/.dotnet"
-    $dotnetExePath = if ($script:IsUnix) { "$dotnetPath/dotnet" } else { "$dotnetPath/dotnet.exe" }
-    $originalDotNetExePath = $dotnetExePath
-
-    if (!(Test-Path $dotnetExePath)) {
-        $installedDotnet = Get-Command dotnet -ErrorAction Ignore
-        if ($installedDotnet) {
-            $dotnetExePath = $installedDotnet.Source
-        }
-        else {
-            $dotnetExePath = $null
-        }
-    }
-
-    # Make sure the dotnet we found is the right version
-    if ($dotnetExePath) {
-        # dotnet --version can write to stderr, which causes builds to abort, therefore use --list-sdks instead.
-        if ((& $dotnetExePath --list-sdks | ForEach-Object { $_.Split()[0] } ) -contains $script:RequiredSdkVersion) {
-            $script:dotnetExe = $dotnetExePath
-        }
-        else {
-            # Clear the path so that we invoke installation
-            $script:dotnetExe = $null
-        }
-    }
-    else {
-        # Clear the path so that we invoke installation
-        $script:dotnetExe = $null
-    }
-
-    if ($script:dotnetExe -eq $null) {
-
-        Write-Host "`n### Installing .NET CLI $script:RequiredSdkVersion...`n" -ForegroundColor Green
-
-        # The install script is platform-specific
-        $installScriptExt = if ($script:IsUnix) { "sh" } else { "ps1" }
-
-        # Download the official installation script and run it
-        $installScriptPath = "$([System.IO.Path]::GetTempPath())dotnet-install.$installScriptExt"
-        Invoke-WebRequest "https://dot.net/v1/dotnet-install.$installScriptExt" -OutFile $installScriptPath
-        $env:DOTNET_INSTALL_DIR = "$PSScriptRoot/.dotnet"
-
-        if (!$script:IsUnix) {
-            & $installScriptPath -Version $script:RequiredSdkVersion -InstallDir "$env:DOTNET_INSTALL_DIR"
-        }
-        else {
-            & /bin/bash $installScriptPath -Version $script:RequiredSdkVersion -InstallDir "$env:DOTNET_INSTALL_DIR"
-            $env:PATH = $dotnetExeDir + [System.IO.Path]::PathSeparator + $env:PATH
-        }
-
-        Write-Host "`n### Installation complete." -ForegroundColor Green
-        $script:dotnetExe = $originalDotnetExePath
-    }
-
-    # This variable is used internally by 'dotnet' to know where it's installed
-    $script:dotnetExe = Resolve-Path $script:dotnetExe
-    if (!$env:DOTNET_INSTALL_DIR) {
-        $dotnetExeDir = [System.IO.Path]::GetDirectoryName($script:dotnetExe)
-        $env:PATH = $dotnetExeDir + [System.IO.Path]::PathSeparator + $env:PATH
-        $env:DOTNET_INSTALL_DIR = $dotnetExeDir
-    }
-
-    Write-Host "`n### Using dotnet v$(& $script:dotnetExe --version) at path $script:dotnetExe`n" -ForegroundColor Green
-}
-
-task Build {
-    Remove-Item $PSScriptRoot/module -Recurse -Force -ErrorAction Ignore
-
-    foreach ($moduleLayout in $script:ModuleLayouts.Values) {
-        foreach ($projName in $moduleLayout.RequiredBuildAssets.Keys) {
-            exec { & $script:dotnetExe publish -c $Configuration "$PSScriptRoot/src/$projName/$projName.csproj" }
-        }
-
-        foreach ($nativeProj in $moduleLayout.NativeBuildAssets.Keys) {
-            foreach ($targetPlatform in $moduleLayout.NativeBuildAssets[$nativeProj]) {
-                $buildPropertyParams = if ($targetPlatform -eq "win-x64") {
-                    "/property:IsWindows=true"
-                }
-                else {
-                    "/property:IsWindows=false"
-                }
-                exec { & $script:dotnetExe publish -c $Configuration "$PSScriptRoot/src/$nativeProj/$nativeProj.csproj" -r $targetPlatform $buildPropertyParams }
-            }
-        }
-    }
-}
-
-task Clean {
-    #Remove Module Build
-    Remove-Item $PSScriptRoot/module -Recurse -Force -ErrorAction Ignore
-
-    foreach ($moduleLayout in $script:ModuleLayouts.Values) {
-        foreach ($projName in $moduleLayout.RequiredBuildAssets.Keys) {
-            exec { & $script:dotnetExe clean -c $Configuration "$PSScriptRoot/src/$projName/$projName.csproj" }
-        }
-
-        foreach ($projName in $moduleLayout.NativeBuildAssets.Keys) {
-            exec { & $script:dotnetExe clean -c $Configuration "$PSScriptRoot/src/$projName/$projName.csproj" }
-        }
-    }
-
-    foreach ($mn in $ModuleName) {
-        Get-ChildItem "$PSScriptRoot\module\$mn\Commands\en-US\*-help.xml" -ErrorAction Ignore | Remove-Item -Force
-    }
-}
-
-task LayoutModule -After Build {
-    foreach ($mn in $ModuleName) {
-        $moduleLayout = $script:ModuleLayouts[$mn]
-        $moduleBinPath = "$PSScriptRoot/module/$mn/"
-
-        # Create the destination dir
-        $null = New-Item -Force $moduleBinPath -Type Directory
-
-        # For each PSES subproject
-        foreach ($projectName in $moduleLayout.RequiredBuildAssets.Keys) {
-            # Get the project build dir path
-            $basePath = [System.IO.Path]::Combine($PSScriptRoot, 'src', $projectName, 'bin', $Configuration, $script:TargetFramework)
-
-            # For each asset in the subproject
-            foreach ($bin in $moduleLayout.RequiredBuildAssets[$projectName]) {
-                # Get the asset path
-                $binPath = Join-Path $basePath $bin
-
-                # Binplace the asset
-                Copy-Item -Force -Verbose $binPath $moduleBinPath
-            }
-        }
-
-        foreach ($projectName in $moduleLayout.NativeBuildAssets.Keys) {
-            foreach ($targetPlatform in $moduleLayout.NativeBuildAssets[$projectName]) {
-                $destDir = Join-Path $moduleBinPath $projectName $targetPlatform
-
-                $null = New-Item -Force $destDir -Type Directory
-
-                # Get the project build dir path
-                $publishPath = [System.IO.Path]::Combine($PSScriptRoot, 'src', $projectName, 'bin', $Configuration, $script:TargetFramework, $targetPlatform, "publish\*" )
-
-                Write-Host $publishPath
-                # Binplace the asset
-                Copy-Item -Recurse -Force  $publishPath $destDir
-            }
-        }
-
-        Copy-Item -Force "$PSScriptRoot/README.md" $moduleBinPath
-        Copy-Item -Force "$PSScriptRoot/LICENSE.txt" $moduleBinPath
-    }
-}
-
-task BuildCmdletHelp {
-    foreach ($mn in $ModuleName) {
-        New-ExternalHelp -Path "$PSScriptRoot/docs/$mn" -OutputPath "$PSScriptRoot/module/$mn/en-US" -Force
-    }
-}
-
-task . Clean, Build, BuildCmdletHelp
diff --git a/LICENSE.txt b/LICENSE.txt
index c5f79b7..84f9b36 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -1,6 +1,6 @@
 MIT License
 
-Copyright (c) 2019 PowerShell Team
+Copyright (c) 2024 PowerShell Team
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/NOTICE.txt b/NOTICE.txt
new file mode 100644
index 0000000..0f4b724
--- /dev/null
+++ b/NOTICE.txt
@@ -0,0 +1,274 @@
+NOTICES AND INFORMATION
+Do Not Translate or Localize
+
+This software incorporates material from third parties.
+Microsoft makes certain open source code available at https://3rdpartysource.microsoft.com,
+or you may send a check or money order for US $5.00, including the product name,
+the open source component name, platform, and version number, to:
+
+Source Code Compliance Team
+Microsoft Corporation
+One Microsoft Way
+Redmond, WA 98052
+USA
+
+Notwithstanding any other terms, you may reverse engineer this software to the extent
+required to debug changes to any libraries licensed under the GNU Lesser General Public License.
+
+---------------------------------------------------------
+
+NStack.Core 1.1.1 - MIT
+
+
+
+MIT License
+
+Copyright (c) 2009 The Go Authors. All rights reserved.
+Copyright (c) 2017 Microsoft.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+---------------------------------------------------------
+
+---------------------------------------------------------
+
+System.CodeDom 8.0.0 - MIT
+
+
+Copyright (c) Six Labors
+(c) Microsoft Corporation
+Copyright (c) Andrew Arnott
+Copyright 2019 LLVM Project
+Copyright 2018 Daniel Lemire
+Copyright (c) .NET Foundation
+Copyright (c) 2011, Google Inc.
+Copyright (c) 2020 Dan Shechter
+(c) 1997-2005 Sean Eron Anderson
+Copyright (c) 1998 Microsoft. To
+Copyright (c) 2022, Wojciech Mula
+Copyright (c) 2017 Yoshifumi Kawai
+Copyright (c) 2022, Geoff Langdale
+Copyright (c) 2005-2020 Rich Felker
+Copyright (c) 2012-2021 Yann Collet
+Copyright (c) Microsoft Corporation
+Copyright (c) 2007 James Newton-King
+Copyright (c) 1991-2022 Unicode, Inc.
+Copyright (c) 2013-2017, Alfred Klomp
+Copyright 2012 the V8 project authors
+Copyright (c) 1999 Lucent Technologies
+Copyright (c) 2008-2016, Wojciech Mula
+Copyright (c) 2011-2020 Microsoft Corp
+Copyright (c) 2015-2017, Wojciech Mula
+Copyright (c) 2021 csFastFloat authors
+Copyright (c) 2005-2007, Nick Galbreath
+Copyright (c) 2015 The Chromium Authors
+Copyright (c) 2018 Alexander Chermyanin
+Copyright (c) The Internet Society 1997
+Portions (c) International Organization
+Copyright (c) 2004-2006 Intel Corporation
+Copyright (c) 2011-2015 Intel Corporation
+Copyright (c) 2013-2017, Milosz Krajewski
+Copyright (c) 2016-2017, Matthieu Darbois
+Copyright (c) The Internet Society (2003)
+Copyright (c) .NET Foundation Contributors
+Copyright (c) 2020 Mara Bos <m-ou.se@m-ou.se>
+Copyright (c) .NET Foundation and Contributors
+Copyright (c) 2012 - present, Victor Zverovich
+Copyright (c) 2006 Jb Evain (jbevain@gmail.com)
+Copyright (c) 2008-2020 Advanced Micro Devices, Inc.
+Copyright (c) 2019 Microsoft Corporation, Daan Leijen
+Copyright (c) 2011 Novell, Inc (http://www.novell.com)
+Copyright (c) 1995-2022 Jean-loup Gailly and Mark Adler
+Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com)
+Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors
+Copyright (c) 2014 Ryan Juckett http://www.ryanjuckett.com
+Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
+Copyright (c) YEAR W3C(r) (MIT, ERCIM, Keio, Beihang). Disclaimers
+Copyright (c) 2015 THL A29 Limited, a Tencent company, and Milo Yip
+Copyright (c) 1980, 1986, 1993 The Regents of the University of California
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the University of California
+Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. & Digital Equipment Corporation, Maynard, Mass
+
+The MIT License (MIT)
+
+Copyright (c) .NET Foundation and Contributors
+
+All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+---------------------------------------------------------
+
+---------------------------------------------------------
+
+System.Management 8.0.0 - MIT
+
+
+Copyright (c) Six Labors
+(c) Microsoft Corporation
+Copyright (c) Andrew Arnott
+Copyright 2019 LLVM Project
+Copyright 2018 Daniel Lemire
+Copyright (c) .NET Foundation
+Copyright (c) 2011, Google Inc.
+Copyright (c) 2020 Dan Shechter
+(c) 1997-2005 Sean Eron Anderson
+Copyright (c) 1998 Microsoft. To
+Copyright (c) 2022, Wojciech Mula
+Copyright (c) 2017 Yoshifumi Kawai
+Copyright (c) 2022, Geoff Langdale
+Copyright (c) 2005-2020 Rich Felker
+Copyright (c) 2012-2021 Yann Collet
+Copyright (c) Microsoft Corporation
+Copyright (c) 2007 James Newton-King
+Copyright (c) 1991-2022 Unicode, Inc.
+Copyright (c) 2013-2017, Alfred Klomp
+Copyright 2012 the V8 project authors
+Copyright (c) 1999 Lucent Technologies
+Copyright (c) 2008-2016, Wojciech Mula
+Copyright (c) 2011-2020 Microsoft Corp
+Copyright (c) 2015-2017, Wojciech Mula
+Copyright (c) 2021 csFastFloat authors
+Copyright (c) 2005-2007, Nick Galbreath
+Copyright (c) 2015 The Chromium Authors
+Copyright (c) 2018 Alexander Chermyanin
+Copyright (c) The Internet Society 1997
+Portions (c) International Organization
+Copyright (c) 2004-2006 Intel Corporation
+Copyright (c) 2011-2015 Intel Corporation
+Copyright (c) 2013-2017, Milosz Krajewski
+Copyright (c) 2016-2017, Matthieu Darbois
+Copyright (c) The Internet Society (2003)
+Copyright (c) .NET Foundation Contributors
+Copyright (c) 2020 Mara Bos <m-ou.se@m-ou.se>
+Copyright (c) .NET Foundation and Contributors
+Copyright (c) 2012 - present, Victor Zverovich
+Copyright (c) 2006 Jb Evain (jbevain@gmail.com)
+Copyright (c) 2008-2020 Advanced Micro Devices, Inc.
+Copyright (c) 2019 Microsoft Corporation, Daan Leijen
+Copyright (c) 2011 Novell, Inc (http://www.novell.com)
+Copyright (c) 1995-2022 Jean-loup Gailly and Mark Adler
+Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com)
+Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors
+Copyright (c) 2014 Ryan Juckett http://www.ryanjuckett.com
+Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
+Copyright (c) YEAR W3C(r) (MIT, ERCIM, Keio, Beihang). Disclaimers
+Copyright (c) 2015 THL A29 Limited, a Tencent company, and Milo Yip
+Copyright (c) 1980, 1986, 1993 The Regents of the University of California
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the University of California
+Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. & Digital Equipment Corporation, Maynard, Mass
+
+The MIT License (MIT)
+
+Copyright (c) .NET Foundation and Contributors
+
+All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+---------------------------------------------------------
+
+---------------------------------------------------------
+
+System.ValueTuple 4.5.0 - MIT
+
+
+(c) 2023 GitHub, Inc.
+(c) Microsoft Corporation
+Copyright (c) 2011, Google Inc.
+(c) 1997-2005 Sean Eron Anderson
+Copyright (c) 1991-2017 Unicode, Inc.
+Copyright (c) 2015 The Chromium Authors
+Portions (c) International Organization
+Copyright (c) 2004-2006 Intel Corporation
+Copyright (c) .NET Foundation Contributors
+Copyright (c) .NET Foundation and Contributors
+Copyright (c) 2011 Novell, Inc (http://www.novell.com)
+Copyright (c) 1995-2017 Jean-loup Gailly and Mark Adler
+Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com)
+Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors
+Copyright (c) YEAR W3C(r) (MIT, ERCIM, Keio, Beihang). Disclaimers
+
+The MIT License (MIT)
+
+Copyright (c) .NET Foundation and Contributors
+
+All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+---------------------------------------------------------
+
+---------------------------------------------------------
+
+Terminal.Gui 1.16.0 - MIT
+
+
+
+MIT License
+
+Copyright (c) 2007-2011 Novell Inc
+Copyright (c) 2017 Microsoft Corp
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+---------------------------------------------------------
diff --git a/NuGet.config b/NuGet.config
deleted file mode 100644
index 16746d6..0000000
--- a/NuGet.config
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration>
-    <packageSources>
-        <clear />
-        <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
-    </packageSources>
-    <disabledPackageSources>
-        <clear />
-    </disabledPackageSources>
-</configuration>
diff --git a/README.md b/README.md
index b9e8220..fc2ad43 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@ This repo contains the `Out-ConsoleGridView`
 PowerShell Cmdlet providing console-based GUI experiences based on
 [Terminal.Gui (gui.cs)](https://github.com/gui-cs/Terminal.Gui).
 
-_Note:_ A module named `Microsoft.PowerShell.GraphicalTools` used to be built and published out of this repo, but per [#101](https://github.com/PowerShell/GraphicalTools/issues/101) it is deprecated and unmaintained until such time that it can be rewritten on top of [.NET MAUI](https://devblogs.microsoft.com/dotnet/introducing-net-multi-platform-app-ui/).
+_Note:_ A module named `Microsoft.PowerShell.GraphicalTools` used to be built and published out of this repo, but per [#101](https://github.com/PowerShell/ConsoleGuiTools/issues/101) it is deprecated and unmaintained until such time that it can be rewritten on top of [.NET MAUI](https://devblogs.microsoft.com/dotnet/introducing-net-multi-platform-app-ui/).
 
 ## Installation
 
@@ -149,7 +149,7 @@ Install PowerShell 7.2+ with [these instructions](https://github.com/PowerShell/
 ### 2. Clone the GitHub repository
 
 ```powershell
-git clone https://github.com/PowerShell/GraphicalTools.git
+git clone https://github.com/PowerShell/ConsoleGuiTools.git
 ```
 
 ### 3. Install [Invoke-Build](https://github.com/nightroman/Invoke-Build)
@@ -163,7 +163,7 @@ Now you're ready to build the code.  You can do so in one of two ways:
 ### 4. Building the code from PowerShell
 
 ```powershell
-pushd ./GraphicalTools
+pushd ./ConsoleGuiTools
 Invoke-Build Build -ModuleName Microsoft.PowerShell.ConsoleGuiTools
 popd
 ```
@@ -188,7 +188,7 @@ exit
 ### 5. Debugging in Visual Studio Code
 
 ```powershell
-code ./GraphicalTools
+code ./ConsoleGuiTools
 ```
 
 Build by hitting `Ctrl-Shift-B` in VS Code.
@@ -207,7 +207,7 @@ Your breakpoint should be hit.
 
 We would love to incorporate community contributions into this project.  If
 you would like to contribute code, documentation, tests, or bug reports,
-please read the [development section above](https://github.com/PowerShell/GraphicalTools#development)
+please read the [development section above](https://github.com/PowerShell/ConsoleGuiTools#development)
 to learn more.
 
 ## Microsoft.PowerShell.ConsoleGuiTools Architecture
@@ -237,4 +237,4 @@ For more information see the [Code of Conduct FAQ][conduct-FAQ] or contact [open
 [conduct-code]: https://opensource.microsoft.com/codeofconduct/
 [conduct-FAQ]: https://opensource.microsoft.com/codeofconduct/faq/
 [conduct-email]: mailto:opencode@microsoft.com
-[conduct-md]: https://github.com/PowerShell/GraphicalTools/tree/master/CODE_OF_CONDUCT.md
+[conduct-md]: https://github.com/PowerShell/ConsoleGuiTools/tree/master/CODE_OF_CONDUCT.md
diff --git a/docs/Microsoft.PowerShell.GraphicalTools/Out-GridView.md b/docs/Microsoft.PowerShell.GraphicalTools/Out-GridView.md
deleted file mode 100644
index c99a15d..0000000
--- a/docs/Microsoft.PowerShell.GraphicalTools/Out-GridView.md
+++ /dev/null
@@ -1,346 +0,0 @@
----
-external help file: GraphicalToolsModule.dll-Help.xml
-keywords: powershell,cmdlet
-locale: en-us
-Module Name: GraphicalTools
-ms.date: 08/09/2019
-schema: 2.0.0
-title: Out-GridView
----
-
-# Out-GridView
-
-## SYNOPSIS
-Sends output to an interactive table in a separate window.
-
-## SYNTAX
-
-### PassThru (Default)
-```
-Out-GridView [-InputObject <PSObject>] [-Title <String>] [-PassThru] [<CommonParameters>]
-```
-
-### Wait
-```
-Out-GridView [-InputObject <PSObject>] [-Title <String>] [-Wait] [<CommonParameters>]
-```
-
-### OutputMode
-```
-Out-GridView [-InputObject <PSObject>] [-Title <String>] [-OutputMode <OutputModeOption>] [<CommonParameters>]
-```
-
-## DESCRIPTION
-The **Out-GridView** cmdlet sends the output from a command to a grid view window where the output is displayed in an interactive table.
-
-You can use the following features of the table to examine your data:
-
-- Hide, Show, and Reorder Columns: To hide, show, use the columns dropdown. Drag and drop column headers to reorder.
-- Sort. To sort the data, click a column header. Click again to toggle from ascending to descending order.
-- Quick Filter. Use the Filter box at the top of the window to search the text in the table. You can search for text in a particular column, search for literals, and search for multiple words.
-- Column Filter. Use the Add Column Filter drop-down to create rules to filter the data. This is very useful for very large data sets, such as event logs.
-
-For instructions for using these features, type `Get-Help Out-GridView -Full` and see How to Use the Grid View Window Features in the Notes section.
-
-## EXAMPLES
-
-### Example 1: Output processes to a grid view
-```
-PS C:\> Get-Process | Out-GridView
-```
-
-This command gets the processes running on the local computer and sends them to a grid view window.
-
-### Example 2: Use a variable to output processes to a grid view
-```
-PS C:\> $P = Get-Process
-PS C:\> $P | Out-GridView
-```
-
-This command also gets the processes running on the local computer and sends them to a grid view window.
-
-The first command uses the Get-Process cmdlet to get the processes on the computer and then saves the process objects in the $P variable.
-
-The second command uses a pipeline operator to send the $P variable to **Out-GridView**.
-
-### Example 3: Display a formatted table in a grid view
-```
-PS C:\> Get-Process | Select-Object -Property Name, WorkingSet, PeakWorkingSet | Sort-Object -Property WorkingSet -Descending | Out-GridView
-```
-
-This command displays a formatted table in a grid view window.
-
-It uses the Get-Process cmdlet to get the processes on the computer.
-
-Then, it uses a pipeline operator (|) to send the process objects to the Select-Object cmdlet.
-The command uses the **Property** parameter of **Select-Object** to select the Name, WorkingSet, and PeakWorkingSet properties to be displayed in the table.
-
-Another pipeline operator sends the filtered objects to the Sort-Object cmdlet, which sorts them in descending order by the value of the **WorkingSet** property.
-
-The final part of the command uses a pipeline operator (|) to send the formatted table to **Out-GridView**.
-
-You can now use the features of the grid view to search, sort, and filter the data.
-
-### Example 4: Save output to a variable, and then output a grid view
-```
-PS C:\> ($A = Get-ChildItem -Path $pshome -Recurse) | Out-GridView
-```
-
-This command saves its output in a variable and sends it to **Out-GridView**.
-
-The command uses the Get-ChildItem cmdlet to get the files in the Windows PowerShell installation directory and its subdirectories.
-The path to the installation directory is saved in the $pshome automatic variable.
-
-The command uses the assignment operator (=) to save the output in the $A variable and the pipeline operator (|) to send the output to **Out-GridView**.
-
-The parentheses in the command establish the order of operations.
-As a result, the output from the Get-ChildItem command is saved in the $A variable before it is sent to **Out-GridView**.
-
-### Example 5: Output processes for a specified computer to a grid view
-```
-PS C:\> Get-Process -ComputerName "Server01" | ogv -Title "Processes - Server01"
-```
-
-This command displays the processes that are running on the Server01 computer in a grid view window.
-
-The command uses `ogv`, which is the built-in alias for the **Out-GridView** cmdlet, it uses the *Title* parameter to specify the window title.
-
-### Example 6: Output data from remote computers to a grid view
-```
-PS C:\> Invoke-Command -ComputerName S1, S2, S3 -ScriptBlock {Get-Culture} | Out-GridView
-```
-
-This example shows the correct format for sending data collected from remote computers to the **Out-GridView** cmdlet.
-
-The command uses the Invoke-Command cmdlet to run a Get-Culture command on three remote computers.
-It uses a pipeline operator to send the data that is returned to the **Out-GridView** cmdlet.
-
-Notice that the script block that contains the commands that are run remotely does not include the **Out-GridView** command.
-If it did, the command would fail when it tried to open a grid view window on each of the remote computers.
-
-### Example 7: Pass multiple items through Out-GridView
-```
-PS C:\> Get-Process | Out-GridView -PassThru | Export-Csv -Path .\ProcessLog.csv
-```
-
-This command lets you select multiple processes from the **Out-GridView** window.
-The processes that you select are passed to the **Export-Csv** command and written to the ProcessLog.csv file.
-
-The command uses the *PassThru* parameter of **Out-GridView**, which lets you send multiple items down the pipeline.
-The *PassThru* parameter is equivalent to using the Multiple value of the *OutputMode* parameter.
-
-### Example 8: Create a Windows shortcut to Out-GridView
-```
-PS C:\> Powershell.exe -Command "Get-Service | Out-GridView -Wait"
-```
-
-This command shows how to use the *Wait* parameter of **Out-GridView** to create a Windows shortcut to the **Out-GridView** window.
-Without the *Wait* parameter, Windows PowerShell would exit as soon as the **Out-GridView** window opened, which would close the **Out-GridView** window almost immediately.
-
-## PARAMETERS
-
-### -InputObject
-Specifies that the cmdlet accepts input for **Out-GridView**.
-
-When you use the **InputObject** parameter to send a collection of objects to **Out-GridView**, **Out-GridView** treats the collection as one collection object, and it displays one row that represents the collection.
-To display the each object in the collection, use a pipeline operator (|) to send objects to **Out-GridView**.
-
-```yaml
-Type: PSObject
-Parameter Sets: (All)
-Aliases:
-
-Required: False
-Position: Named
-Default value: None
-Accept pipeline input: True (ByValue)
-Accept wildcard characters: False
-```
-
-### -OutputMode
-Specifies the items that the interactive window sends down the pipeline as input to other commands.
-By default, this cmdlet does not generate any output.
-To send items from the interactive window down the pipeline, click to select the items and then click OK.
-
-The values of this parameter determine how many items you can send down the pipeline.
-
-- None.  No items. This is the default value.
-- Single.  Zero items or one item. Use this value when the next command can take only one input object.
-- Multiple.  Zero, one, or many items.  Use this value when the next command can take multiple input objects. This value is equivalent to the *Passthru* parameter.
-
-This parameter was introduced in Windows PowerShell 3.0.
-
-```yaml
-Type: OutputModeOption
-Parameter Sets: OutputMode
-Aliases:
-Accepted values: None, Single, Multiple
-
-Required: False
-Position: Named
-Default value: None
-Accept pipeline input: False
-Accept wildcard characters: False
-```
-
-### -PassThru
-Indicates that the cmdlet sends items from the interactive window down the pipeline as input to other commands.
-By default, this cmdlet does not generate any output.
-This parameter is equivalent to using the Multiple value of the *OutputMode* parameter.
-
-To send items from the interactive window down the pipeline, click to select the items and then click OK.
-Shift-click and Ctrl-click are supported.
-
-This parameter was introduced in Windows PowerShell 3.0.
-
-```yaml
-Type: SwitchParameter
-Parameter Sets: PassThru
-Aliases:
-
-Required: False
-Position: Named
-Default value: None
-Accept pipeline input: False
-Accept wildcard characters: False
-```
-
-### -Title
-Specifies the text that appears in the title bar of the **Out-GridView** window.
-
-By default, the title bar displays the command that invokes **Out-GridView**.
-
-```yaml
-Type: String
-Parameter Sets: (All)
-Aliases:
-
-Required: False
-Position: Named
-Default value: None
-Accept pipeline input: False
-Accept wildcard characters: False
-```
-
-### -Wait
-Indicates that the cmdlet suppresses the command prompt and prevents Windows PowerShell from closing until the **Out-GridView** window is closed.
-By default, the command prompt returns when the **Out-GridView** window opens.
-
-This feature lets you use the **Out-GridView** cmdlets in Windows shortcuts.
-When **Out-GridView** is used in a shortcut without the *Wait* parameter, the **Out-GridView** window appears only momentarily before Windows PowerShell closes.
-
-This parameter was introduced in Windows PowerShell 3.0.
-
-```yaml
-Type: SwitchParameter
-Parameter Sets: Wait
-Aliases:
-
-Required: False
-Position: Named
-Default value: None
-Accept pipeline input: False
-Accept wildcard characters: False
-```
-
-### CommonParameters
-This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
-
-## INPUTS
-
-### System.Management.Automation.PSObject
-You can send any object to this cmdlet.
-
-## OUTPUTS
-
-### None
-**Out-GridView** does not return any objects.
-
-## NOTES
-* You cannot use a remote command to open a grid view window on another computer.
-* The command output that you send to **Out-GridView** cannot be formatted, such as by using the Format-Table or Format-Wide cmdlets. To select properties, use the Select-Object cmdlet.
-* Deserialized output from remote commands might not be formatted correctly in the grid view window.
-  How to Use the Grid View Window Features
-
-  The following topics explain how to use the features of the window that **Out-GridView** displays.
-
-  **How to Hide, Show, and Reorder Columns**
-
-  **To hide or show a column:**
-
-  1. Click on the Columns expander.
-
-  2. In the Columns expander, toggle Columns that should appear.
-    Only selected columns appear in the grid view window.
-
-  **To reorder columns:**
-
-  - Drag and drop the column into the desired location.
-
-  **How to Sort Table Data**
-
-  - To sort the data, click a column header.
-
-  - To change the sort order, click the column header again.
-Each time you click the same header, the sort order toggles between ascending to descending order.
-The current order is indicated by a triangle in the column header.
-
-  **How to Search in the Table (Quick Filter)**
-
-  Use the Filter box to search for data in the table.
-When you type in the box, only items that include the typed text appear in the table.
-
-  - Search for text.
-To search for text in the table, in the Filter box, type the text to find.
-
-  - Search for multiple words.
-To search for multiple words in the table, type the words separated by spaces.
-**Out-GridView** displays rows that include all of the words (logical AND).
-
-  - Search for literal phrases.
-To search for phrases that include spaces or special characters, enclose the phrase in quotation marks.
-**Out-GridView** displays rows that include an exact match for the phrase.
-
-  **Use Column Filters to Filter the Table**
-
-  You can use column filters to determine which items are displayed in the table.
-  Items appear only when they satisfy all of the column filters that you establish.
-
-  Each column filter has the following format:
-
-  \<column\> \<operator\> \<value\>
-
-  Column filters for different properties are connected by AND.
-Column filters for the same property are connected by OR.
-You cannot change the logical connectors.
-
-  The column filters only affects the display.
-It does not delete items from the table.
-
-  **How to Add Column Filters**
-
-  1. Click the Add Column Filters menu button.
-
-  2. Click the column (property) you wish to add.
-
-  **How to Edit a Column Filter**
-
-  - To change an operator, click the operator drop down, and then click to select a different operator from the drop-down list.
-
-  - To enter or change a value, type a value in the value box.
-
-  - To create an OR statement, add a column filter with the same property.
-
-  **How to Delete Column Filters**
-
-  - To delete selected column filters, click the remove button beside each column filter.
-
-  - To delete all column filters, click the Clear Filters button.
-
-## RELATED LINKS
-
-[Out-File](Out-File.md)
-
-[Out-Printer](Out-Printer.md)
-
-[Out-String](Out-String.md)
diff --git a/global.json b/global.json
index 95b7585..ff40deb 100644
--- a/global.json
+++ b/global.json
@@ -1,5 +1,9 @@
 {
     "sdk": {
-        "version": "6.0.416"
+      "version": "6.0.420",
+      "rollForward": "latestFeature",
+      "allowPrerelease": false
     }
-}
+  }
+  
+  
\ No newline at end of file
diff --git a/nuget.config b/nuget.config
new file mode 100644
index 0000000..f003b0f
--- /dev/null
+++ b/nuget.config
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+  <packageSources>
+    <clear />
+    <add key="PowerShellCore_PublicPackages" value="https://pkgs.dev.azure.com/powershell/PowerShell/_packaging/powershell/nuget/v3/index.json" />
+  </packageSources>
+</configuration>
diff --git a/src/Microsoft.PowerShell.ConsoleGuiTools/Microsoft.PowerShell.ConsoleGuiTools.csproj b/src/Microsoft.PowerShell.ConsoleGuiTools/Microsoft.PowerShell.ConsoleGuiTools.csproj
index 27f2d44..293b2d0 100644
--- a/src/Microsoft.PowerShell.ConsoleGuiTools/Microsoft.PowerShell.ConsoleGuiTools.csproj
+++ b/src/Microsoft.PowerShell.ConsoleGuiTools/Microsoft.PowerShell.ConsoleGuiTools.csproj
@@ -1,5 +1,5 @@
 <Project Sdk="Microsoft.NET.Sdk">
-    <Import Project="..\..\GraphicalTools.Common.props" />
+    <Import Project="..\..\ConsoleGuiTools.Common.props" />
     <PropertyGroup>
         <TargetFramework>net6.0</TargetFramework>
     </PropertyGroup>
diff --git a/src/Microsoft.PowerShell.ConsoleGuiTools/Microsoft.PowerShell.ConsoleGuiTools.psd1 b/src/Microsoft.PowerShell.ConsoleGuiTools/Microsoft.PowerShell.ConsoleGuiTools.psd1
index d03f53f..ded1157 100644
--- a/src/Microsoft.PowerShell.ConsoleGuiTools/Microsoft.PowerShell.ConsoleGuiTools.psd1
+++ b/src/Microsoft.PowerShell.ConsoleGuiTools/Microsoft.PowerShell.ConsoleGuiTools.psd1
@@ -9,8 +9,7 @@
 RootModule = 'Microsoft.PowerShell.ConsoleGuiTools.dll'
 
 # Version number of this module.
-# NOTE: This will get updated by build.ps1; the build number will be incremented for each build.
-ModuleVersion = '0.7.6.1'
+ModuleVersion = '0.7.6'
 
 # Supported PSEditions
 CompatiblePSEditions = @( 'Core' )
@@ -28,7 +27,7 @@ CompanyName = 'Microsoft'
 Copyright = '(c) Microsoft Corporation.'
 
 # Description of the functionality provided by this module
-Description = 'Cross-platform Console Gui Tools for PowerShell'
+Description = 'Cross-platform Console GUI Tools for PowerShell'
 
 # Minimum version of the PowerShell engine required by this module
 PowerShellVersion = '7.2'
@@ -96,120 +95,16 @@ PrivateData = @{
         Tags = @('Console', 'Gui', 'Out-GridView', 'Out-ConsoleGridView', 'Show-ObjectTree', 'Terminal.Gui', 'gui.cs', 'MacOS', 'Windows', 'Linux', 'PSEdition_Core')
 
         # A URL to the license for this module.
-        LicenseUri = 'https://github.com/PowerShell/GraphicalTools/blob/master/LICENSE.txt'
+        LicenseUri = 'https://github.com/PowerShell/ConsoleGuiTools/blob/master/LICENSE.txt'
 
         # A URL to the main website for this project.
-        ProjectUri = 'https://github.com/PowerShell/GraphicalTools/'
+        ProjectUri = 'https://github.com/PowerShell/ConsoleGuiTools/'
 
         # A URL to an icon representing this module.
         # IconUri = ''
 
         # ReleaseNotes of this module
-        ReleaseNotes = '# Release Notes
-## v0.7.6
-
-* Fix child expand #223
-
-## v0.7.5
-
-* Adds Show-ObjectTree cmdlet #179
-* Fix clear last line on Windows Terminal Issue again #207
-* Adds support for -Diagnostic switch to Out-ConsoleGridView #208
-* Adds support for -UseNetDriver switch to Out-ConsoleGridView #208
-
-## v0.7.4
-
-* Fixes last line not cleared on exit in WT by updating to Terminal.Gui v1.13.5 #205
-
-## v0.7.3
-
-* Build updates and compliant release pipeline #168
-* Updates ConsoleGuiTools to Terminal.Gui v1.10 #184
-* Fixes #175. Column headers misaligned #185
-* Fixes# 148. Move to next row on select #187
-* Fixes #174. Changing Filter does not undo previously marked items #186
-* Marked are now at top; simplified code; fixed margin #188
-* Fixes #189 - Fixed typo in exception text. Added -verbose to launch.json #190
-* Fixes #195 - Incompatible with OpenSUS #196
-* Bump Newtonsoft.Json from 13.0.1 to 13.0.3 #198
-* Bump Newtonsoft.Json from 13.0.1 to 13.0.3 #200
-* Bump Microsoft.PowerShell.SDK from 7.2.6 to 7.2.13 #199
-* Bump Terminal.Gui from 1.13 to 1.13.4 #197
-* Remove PDB files from module #201
-
-## v0.7.2
-
-* Update Terminal.Gui to v1.7.1 #161
-* Filter edit chops off first char of filter string passed on command line #151
-* Color changes and terminal becomes unreadable #150
-If items are selected, then a filter is applied, items now hidden stay selected #121
-* Add UI for select-all/select-none #120
-* Add ability to minimize UI #116
-* Initial focus should be on the results (ListView) #87
-* Import-Module causes warning on PowerShell 7 RC3 #44
-* Runaway process on Ubuntu 20.4 displaying random characters upon exit. #139
-* PSAnsiRenderingFileInfo causes display issues with Out-ConsoleGridView #159
-* Removes building and distribution of Out-GridView and the other Avalonia-based components
-* Remove ANSI escape sequences from property values #158
-
-## v0.7.0
-
-Upgraded to PowerShell 7.2 and .NET target framework `net60`
-
-Updated Terminal.Gui to 1.7
-
-Fixed #131 - Strip ANSI
-
-## v0.6.3
-
-Unreleased!
-
-## v0.6.2
-
-Update Terminal.Gui to 1.0.
-
-Disable mouse mode to fix bug with mouse movement being printed to console.
-
-Gracefully fail when running in remote sessions.
-
-## v0.6.1
-
-Fix off-by-one error with ellipsis so columns should be better aligned.
-
-## v0.6.0
-
-Now supports `-Filter` parameter.
-
-Updated to use the final release of `Terminal.Gui` v0.90 (which is feature complete for 1.0).
-
-## v0.5.0
-
-`Out-ConsoleGridView` has been totally refactored!
-
-First off, no more silly F9 menu to accept!
-All you have to do is hit `ENTER` to accept your selection or `ESC` to cancel.
-
-Also, `-OutputMode` works as expected now. `Single` lets you only select one item. `Multiple` is the default.
-
-## v0.4.1
-
-* Fix filter indexing to return correct selected objects
-
-## v0.4.0
-
-* Regex filter
-* Newlines rendering fix (Thanks @tig!)
-
-## v0.3.0
-
-* Windows OS support (PS 6.2+)
-* dynamic column widths
-* Fix arrow key issue on non-Windows
-
-## v0.2.0
-
-Initial Release
-'
+        ReleaseNotes = 'Please see release notes at: https://github.com/PowerShell/ConsoleGuiTools/releases'
 
         # Prerelease string of this module
         # Prerelease = ''
diff --git a/src/Microsoft.PowerShell.ConsoleGuiTools/ModuleLayout.psd1 b/src/Microsoft.PowerShell.ConsoleGuiTools/ModuleLayout.psd1
deleted file mode 100644
index b1887f8..0000000
--- a/src/Microsoft.PowerShell.ConsoleGuiTools/ModuleLayout.psd1
+++ /dev/null
@@ -1,16 +0,0 @@
-@{
-    RequiredBuildAssets = @{
-        'Microsoft.PowerShell.ConsoleGuiTools' = @(
-            'publish/Microsoft.PowerShell.ConsoleGuiTools.dll',
-            'publish/Microsoft.PowerShell.ConsoleGuiTools.psd1',
-            'publish/Terminal.Gui.dll',
-            'publish/NStack.dll'
-        )
-
-        'Microsoft.PowerShell.OutGridView.Models' = @(
-            'publish/Microsoft.PowerShell.OutGridView.Models.dll'
-        )
-    }
-
-    NativeBuildAssets = @()
-}
diff --git a/src/Microsoft.PowerShell.OutGridView.Models/Microsoft.PowerShell.OutGridView.Models.csproj b/src/Microsoft.PowerShell.OutGridView.Models/Microsoft.PowerShell.OutGridView.Models.csproj
index 5604e73..a77f3c0 100644
--- a/src/Microsoft.PowerShell.OutGridView.Models/Microsoft.PowerShell.OutGridView.Models.csproj
+++ b/src/Microsoft.PowerShell.OutGridView.Models/Microsoft.PowerShell.OutGridView.Models.csproj
@@ -1,5 +1,5 @@
 <Project Sdk="Microsoft.NET.Sdk">
-  <Import Project="..\..\GraphicalTools.Common.props" />
+  <Import Project="..\..\ConsoleGuiTools.Common.props" />
   <PropertyGroup>
     <TargetFramework>net6.0</TargetFramework>
   </PropertyGroup>
diff --git a/tools/azurePipelinesBuild.ps1 b/tools/azurePipelinesBuild.ps1
deleted file mode 100644
index 788e64f..0000000
--- a/tools/azurePipelinesBuild.ps1
+++ /dev/null
@@ -1,12 +0,0 @@
-Push-Location (Join-Path $PSScriptRoot ..)
-
-if (!(Get-Module -ListAvailable InvokeBuild)) {
-    Install-Module InvokeBuild -Force -Scope CurrentUser
-}
-
-if (!(Get-Module -ListAvailable PlatyPS)) {
-    Install-Module PlatyPS -Force -Scope CurrentUser
-}
-
-Invoke-Build -Configuration Release
-Pop-Location
diff --git a/tools/installPSResources.ps1 b/tools/installPSResources.ps1
new file mode 100644
index 0000000..cfceed1
--- /dev/null
+++ b/tools/installPSResources.ps1
@@ -0,0 +1,14 @@
+# Copyright (c) Microsoft Corporation.
+# Licensed under the MIT License.
+
+$ErrorActionPreference = 'Stop'
+
+Set-PSRepository -Name PSGallery -InstallationPolicy Trusted | Out-Null
+if ($PSVersionTable.PSVersion.Major -lt 6) {
+    throw "The build script requires PowerShell 7!"
+}
+
+# TODO: Switch to Install-PSResource when CI uses PowerShell 7.4
+Install-Module -Name InvokeBuild -Scope CurrentUser
+Install-Module -Name platyPS -Scope CurrentUser
+Install-Module -Name Microsoft.PowerShell.PSResourceGet -Scope CurrentUser
diff --git a/tools/terms/FileTypeSet.xml b/tools/terms/FileTypeSet.xml
deleted file mode 100644
index 82f9f4d..0000000
--- a/tools/terms/FileTypeSet.xml
+++ /dev/null
@@ -1,379 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<xmldata>
-    <PckFileTypes TotalTypes="35" TotalExts="198" UnsupportedFilesOnly="False">
-        <Type ID="0" Check="1">
-            <Name>Pure Text Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.txt</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.des</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.pwd</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.asm</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.cmd</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.ini</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.poc</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.pwt</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.hpj</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.sql</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.inf</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.log</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.def</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.url</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.bat</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.aspx</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.idl</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.sys</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.resources</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.strings</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.md</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.yml</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.yaml</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.spelling</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.gitignore</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.gitattributes</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.gitmodules</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.csv</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.tsv</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="1" Check="1">
-            <Name>CodeFiles</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.frm</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.inc</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.cpp</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.cls</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.c</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.hpp</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.vbs</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.java</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.cs</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.cxx</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.h</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.jav</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.bas</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.hxx</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.js</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.pl</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.rc</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.vb</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.json</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.resjson</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.fs</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.fsi</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.fsx</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.m</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.psm1</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.config</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.ps1</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.psd1</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.cmake</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.sh</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.cshtml</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.plist</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.mof</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.mc</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="2" Check="1">
-            <Name>XML Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.xml</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.hxa</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.hxk</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.hxl</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.xsl</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.hxc</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.hxt</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.hxm</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.resx</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.hxe</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.hxf</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.hxv</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.acctb</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.accfl</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.xaml</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.ttml</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.ddue</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.sln</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.props</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.ps1xml</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.csproj</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.xsd</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.svg</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.clixml</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.nuspec</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.cdxml</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.manifest</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="3" Check="1">
-            <Name>Microsoft Word Documents</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.doc</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.dot</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.wiz</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="4" Check="1">
-            <Name>Microsoft Access Database Compatible</Name>
-            <Extensions>
-                <Ext Check="0" UseCustomParser="0" DllPath="" ClassName="">.mdb</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.mda</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.mde</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.mpd</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.mdt</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="5" Check="1">
-            <Name>Microsoft PowerPoint Presentation</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.ppt</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.pot</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.pps</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="6" Check="1">
-            <Name>Microsoft Publisher Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.pub</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="7" Check="1">
-            <Name>Microsoft Excel Workbooks</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.xls</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.xlt</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="8" Check="1">
-            <Name>Pure Binary Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.com</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.bin</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.tlb</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.drv</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.fon</Ext>
-                <Ext Check="0" UseCustomParser="0" DllPath="" ClassName="">.blg</Ext>
-                <Ext Check="0" UseCustomParser="0" DllPath="" ClassName="">.gif</Ext>
-                <Ext Check="0" UseCustomParser="0" DllPath="" ClassName="">.png</Ext>
-                <Ext Check="0" UseCustomParser="0" DllPath="" ClassName="">.icns</Ext>
-                <Ext Check="0" UseCustomParser="0" DllPath="" ClassName="">.ico</Ext>
-                <Ext Check="0" UseCustomParser="0" DllPath="" ClassName="">.bmp</Ext>
-                <Ext Check="0" UseCustomParser="0" DllPath="" ClassName="">.pfx</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="9" Check="1">
-            <Name>Localization resource databases</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.edb</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.lcl</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.xlf</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.xliff</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="10" Check="1">
-            <Name>Microsoft Project Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.mpp</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.mpt</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="11" Check="1">
-            <Name>Microsoft Visio Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.vsd</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.vdx</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.vss</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.vst</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="12" Check="1">
-            <Name>Windows Installer databases</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.msi</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.msm</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="13" Check="1">
-            <Name>Zip Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.zip</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.accdt</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.axtr</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="14" Check="1">
-            <Name>Cabinet / MS Compression Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.cab</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="15" Check="1">
-            <Name>Table driven IME lexicons</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.mb</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="16" Check="1">
-            <Name>IME ( IMD ) Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.imd</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="17" Check="1">
-            <Name>TrueType Font Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.ttf</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="18" Check="1">
-            <Name>Microsoft Outlook Mail Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.msg</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.oft</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="19" Check="1">
-            <Name>HTML Help 2.0 Files / InfoTech5.x Storage System Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.its</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.hxh</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.hxr</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.hxw</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.hxi</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.hxs</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.hxq</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="20" Check="1">
-            <Name>Adobe Acrobat PDF Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.pdf</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="21" Check="1">
-            <Name>HTML Files / Web Page</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.htm</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.dtd</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.hhk</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.htw</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.asp</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.htc</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.htx</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.html</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.hhc</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.css</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.stm</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="22" Check="1">
-            <Name>Rich Text Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.rtf</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="23" Check="1">
-            <Name>Windows 3.x Write Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.wri</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="24" Check="1">
-            <Name>MHTML Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.eml</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.nws</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.mht</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="25" Check="1">
-            <Name>Word 2007 Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.docx</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.docm</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.dotx</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.dotm</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="26" Check="1">
-            <Name>Excel 2007 Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.xlsx</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.xlsm</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.xltx</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.xltm</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.xlsb</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.xlam</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="27" Check="1">
-            <Name>Power Point 2007 Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.pptx</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.pptm</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.potx</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.potm</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.ppsx</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.ppsm</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.ppam</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="28" Check="1">
-            <Name>Access 2007 Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.accdb</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.accde</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.accdr</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="29" Check="1">
-            <Name>Win32/64-based executable (image) Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.exe</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.dll</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.ocx</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.scr</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.acm</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.rll</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.cpl</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.mui</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.ax</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.ime</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="30" Check="1">
-            <Name>HTML Help 1.0 Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.chm</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="31" Check="1">
-            <Name>LocStudio lsg</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.lsg</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="32" Check="1">
-            <Name>Microsoft Office OneNote Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.one</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.onepkg</Ext>
-            </Extensions>
-        </Type>
-        <Type ID="33" Check="1">
-            <Name>Custom Parsers</Name>
-            <Extensions>
-            </Extensions>
-        </Type>
-        <Type ID="34" Check="1">
-            <Name>Visio 2011 Files</Name>
-            <Extensions>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.vstx</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.vsdx</Ext>
-                <Ext Check="1" UseCustomParser="0" DllPath="" ClassName="">.vssx</Ext>
-            </Extensions>
-        </Type>
-
-    </PckFileTypes>
-</xmldata>
diff --git a/tools/terms/UserExclusions.xml b/tools/terms/UserExclusions.xml
deleted file mode 100644
index f7ff9f7..0000000
--- a/tools/terms/UserExclusions.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<PoliCheckExclusions>
-  <!-- All strings must be UPPER CASE -->
-  <!--Each of these exclusions is a folder name -if \[name]\exists in the file path, it will be skipped -->
-  <!--<Exclusion Type="FolderPathFull">ABC|XYZ</Exclusion>-->
-  <Exclusion Type="FolderPathFull">.GIT</Exclusion>
-  <!--Each of these exclusions is a folder name -if any folder or file starts with "\[name]", it will be skipped -->
-  <!--<Exclusion Type="FolderPathStart">ABC|XYZ</Exclusion>-->
-  <!--Each of these file types will be completely skipped for the entire scan -->
-  <!--<Exclusion Type="FileType">.ABC|.XYZ</Exclusion>-->
-  <!--The specified file names will be skipped during the scan regardless which folder they are in -->
-  <!--<Exclusion Type="FileName">ABC.TXT|XYZ.CS</Exclusion>-->
-</PoliCheckExclusions>
diff --git a/tools/updateVersion.ps1 b/tools/updateVersion.ps1
new file mode 100644
index 0000000..16b7f79
--- /dev/null
+++ b/tools/updateVersion.ps1
@@ -0,0 +1,32 @@
+# Copyright (c) Microsoft Corporation.
+# Licensed under the MIT License.
+
+param(
+    [Parameter(Mandatory)]
+    [semver]$Version,
+
+    [Parameter(Mandatory)]
+    [string]$Changes
+)
+
+git diff --staged --quiet --exit-code
+if ($LASTEXITCODE -ne 0) {
+    throw "There are staged changes in the repository. Please commit or reset them before running this script."
+}
+
+$v = "$($Version.Major).$($Version.Minor).$($Version.Patch)"
+
+$Path = "ConsoleGuiTools.Common.props"
+$f = Get-Content -Path $Path
+$f = $f -replace '^(?<prefix>\s+<VersionPrefix>)(.+)(?<suffix></VersionPrefix>)$', "`${prefix}${v}`${suffix}"
+$f = $f -replace '^(?<prefix>\s+<VersionSuffix>)(.*)(?<suffix></VersionSuffix>)$', "`${prefix}$($Version.PreReleaseLabel)`${suffix}"
+$f | Set-Content -Path $Path
+git add $Path
+
+$Path = "src/Microsoft.PowerShell.ConsoleGuiTools/Microsoft.PowerShell.ConsoleGuiTools.psd1"
+$f = Get-Content -Path $Path
+$f = $f -replace "^(?<prefix>ModuleVersion\s+=\s+')(.+)(?<suffix>')`$", "`${prefix}${v}`${suffix}"
+$f | Set-Content -Path $Path
+git add $Path
+
+git commit --edit --message "v$($Version): $Changes"