diff --git a/.appveyor.yml b/.appveyor.yml
deleted file mode 100644
index 41beaa59a69be65652ab7d979295614ebef62053..0000000000000000000000000000000000000000
--- a/.appveyor.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-init:
-  - git config --global core.autocrlf true
-branches:
-  only:
-    - master
-    - release
-    - dev
-    - /^(.*\/)?ci-.*$/
-    - /^rel\/.*/
-build_script:
-  - ps: .\run.ps1 default-build
-clone_depth: 1
-environment:
-  global:
-    DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
-    DOTNET_CLI_TELEMETRY_OPTOUT: 1
-test: off
-deploy: off
-image: Visual Studio 2017
diff --git a/.editorconfig b/.editorconfig
deleted file mode 100644
index abd3d485538e81ae07ea93a86c9896b6693f5aa8..0000000000000000000000000000000000000000
--- a/.editorconfig
+++ /dev/null
@@ -1,56 +0,0 @@
-# EditorConfig is awesome:http://EditorConfig.org
-
-# top-most EditorConfig file
-root = true
-
-# Don't use tabs for indentation.
-[*]
-indent_style = space
-# (Please don't specify an indent_size here; that has too many unintended consequences.)
-
-# Code files
-[*.{cs,csx,vb,vbx}]
-indent_size = 4
-
-# Xml project files
-[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}]
-indent_size = 2
-
-# Xml config files
-[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}]
-indent_size = 2
-
-# JSON files
-[*.json]
-indent_size = 2
-
-# Dotnet code style settings:
-[*.cs]
-# Sort using and Import directives with System.* appearing first
-dotnet_sort_system_directives_first = true
-
-# Don't use this. qualifier
-dotnet_style_qualification_for_field = false:suggestion
-dotnet_style_qualification_for_property = false:suggestion
-
-# use int x = .. over Int32
-dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
-
-# use int.MaxValue over Int32.MaxValue
-dotnet_style_predefined_type_for_member_access = true:suggestion
-
-# Require var all the time.
-csharp_style_var_for_built_in_types = true:suggestion
-csharp_style_var_when_type_is_apparent = true:suggestion
-csharp_style_var_elsewhere = true:suggestion
-
-# Disallow throw expressions.
-csharp_style_throw_expression = false:suggestion
-
-# Newline settings
-csharp_new_line_before_open_brace = all
-csharp_new_line_before_else = true
-csharp_new_line_before_catch = true
-csharp_new_line_before_finally = true
-csharp_new_line_before_members_in_object_initializers = true
-csharp_new_line_before_members_in_anonymous_types = true
diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index d4ee1cb7f39c17015b32c592b582b92245670fd5..0000000000000000000000000000000000000000
--- a/.gitattributes
+++ /dev/null
@@ -1,52 +0,0 @@
-*.doc  diff=astextplain
-*.DOC	diff=astextplain
-*.docx	diff=astextplain
-*.DOCX	diff=astextplain
-*.dot	diff=astextplain
-*.DOT	diff=astextplain
-*.pdf	diff=astextplain
-*.PDF	diff=astextplain
-*.rtf	diff=astextplain
-*.RTF	diff=astextplain
-
-*.jpg  	binary
-*.png 	binary
-*.gif 	binary
-
-*.cs text=auto diff=csharp 
-*.vb text=auto
-*.resx text=auto
-*.c text=auto
-*.cpp text=auto
-*.cxx text=auto
-*.h text=auto
-*.hxx text=auto
-*.py text=auto
-*.rb text=auto
-*.java text=auto
-*.html text=auto
-*.htm text=auto
-*.css text=auto
-*.scss text=auto
-*.sass text=auto
-*.less text=auto
-*.js text=auto
-*.lisp text=auto
-*.clj text=auto
-*.sql text=auto
-*.php text=auto
-*.lua text=auto
-*.m text=auto
-*.asm text=auto
-*.erl text=auto
-*.fs text=auto
-*.fsx text=auto
-*.hs text=auto
-
-*.csproj text=auto
-*.vbproj text=auto
-*.fsproj text=auto
-*.dbproj text=auto
-*.sln text=auto eol=crlf
-
-*.sh eol=lf
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 9976c80e26e66cddb8eb08417a5766559a5c5aa5..0000000000000000000000000000000000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-language: csharp
-sudo: required
-dist: trusty
-env:
-  global:
-    - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
-    - DOTNET_CLI_TELEMETRY_OPTOUT: 1
-addons:
-  apt:
-    packages:
-      - libunwind8
-mono: none
-os:
-  - linux
-  - osx
-osx_image: xcode8.2
-branches:
-  only:
-    - master
-    - release
-    - dev
-    - /^rel\/.*$/
-    - /^(.*\/)?ci-.*$/
-before_install:
-  - if test "$TRAVIS_OS_NAME" == "osx"; then brew update; brew install openssl; ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/; ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/; fi
-script:
-  - ./build.sh
diff --git a/.vsts-pipelines/builds/ci-internal.yml b/.vsts-pipelines/builds/ci-internal.yml
deleted file mode 100644
index dc7b8a3cb925e3f44e58446f5e397d8ba5113ddc..0000000000000000000000000000000000000000
--- a/.vsts-pipelines/builds/ci-internal.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-trigger:
-- master
-- release/*
-
-resources:
-  repositories:
-  - repository: buildtools
-    type: git
-    name: aspnet-BuildTools
-    ref: refs/heads/release/2.2
-
-phases:
-- template: .vsts-pipelines/templates/project-ci.yml@buildtools
diff --git a/.vsts-pipelines/builds/ci-public.yml b/.vsts-pipelines/builds/ci-public.yml
deleted file mode 100644
index f5087d9c309f8987e144c2ccd5273bfd95707797..0000000000000000000000000000000000000000
--- a/.vsts-pipelines/builds/ci-public.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-trigger:
-- master
-- release/*
-
-# See https://github.com/aspnet/BuildTools
-resources:
-  repositories:
-  - repository: buildtools
-    type: github
-    endpoint: DotNet-Bot GitHub Connection
-    name: aspnet/BuildTools
-    ref: refs/heads/release/2.2
-
-phases:
-- template: .vsts-pipelines/templates/project-ci.yml@buildtools
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
index 64ff041d5caf65de66e8e966129f689e5919fb64..0000000000000000000000000000000000000000
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1,4 +0,0 @@
-Contributing
-======
-
-Information on contributing to this repo is in the [Contributing Guide](https://github.com/aspnet/Home/blob/dev/CONTRIBUTING.md) in the Home repo.
diff --git a/LICENSE.txt b/LICENSE.txt
deleted file mode 100644
index 7b2956eceee150029e2e230349cd23e9f6927c24..0000000000000000000000000000000000000000
--- a/LICENSE.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright (c) .NET Foundation and Contributors
-
-All rights reserved.
-
-Licensed under the Apache License, Version 2.0 (the "License"); you may not use
-this file except in compliance with the License. You may obtain a copy of the
-License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software distributed
-under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-CONDITIONS OF ANY KIND, either express or implied. See the License for the
-specific language governing permissions and limitations under the License.
diff --git a/NuGet.config b/NuGet.config
deleted file mode 100644
index e32bddfd514287b0b63cece097f11ecb1410ec64..0000000000000000000000000000000000000000
--- a/NuGet.config
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <packageSources>
-    <clear />
-    <!-- Restore sources should be defined in build/sources.props. -->
-  </packageSources>
-</configuration>
diff --git a/Settings.StyleCop b/Settings.StyleCop
deleted file mode 100644
index 7b8130298caac28616163e75a32c5f21e1ecdaa1..0000000000000000000000000000000000000000
--- a/Settings.StyleCop
+++ /dev/null
@@ -1,455 +0,0 @@
-<StyleCopSettings Version="105">
-  <GlobalSettings>
-    <StringProperty Name="MergeSettingsFiles">NoMerge</StringProperty>
-  </GlobalSettings>
-  <Parsers>
-    <Parser ParserId="StyleCop.CSharp.CsParser">
-      <ParserSettings>
-        <BooleanProperty Name="AnalyzeDesignerFiles">False</BooleanProperty>
-      </ParserSettings>
-    </Parser>
-  </Parsers>
-  <Analyzers>
-    <Analyzer AnalyzerId="StyleCop.CSharp.NamingRules">
-      <Rules>
-        <Rule Name="ConstFieldNamesMustBeginWithUpperCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldNamesMustNotBeginWithUnderscore">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldNamesMustNotUseHungarianNotation">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="StaticReadonlyFieldsMustBeginWithUpperCaseLetter">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings>
-        <CollectionProperty Name="Hungarian">
-          <Value>as</Value>
-          <Value>db</Value>
-          <Value>dc</Value>
-          <Value>do</Value>
-          <Value>ef</Value>
-          <Value>id</Value>
-          <Value>if</Value>
-          <Value>in</Value>
-          <Value>is</Value>
-          <Value>my</Value>
-          <Value>no</Value>
-          <Value>on</Value>
-          <Value>sl</Value>
-          <Value>to</Value>
-          <Value>ui</Value>
-          <Value>vs</Value>
-        </CollectionProperty>
-      </AnalyzerSettings>
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.DocumentationRules">
-      <Rules>
-        <Rule Name="FileMustHaveHeader">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderMustContainFileName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderFileNameDocumentationMustMatchFileName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderMustHaveValidCompanyText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ConstructorSummaryDocumentationMustBeginWithStandardText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DestructorSummaryDocumentationMustBeginWithStandardText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationHeadersMustNotContainBlankLines">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementsMustBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PartialElementsMustBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="EnumerationItemsMustBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationMustContainValidXml">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustHaveSummary">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PartialElementDocumentationMustHaveSummary">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustHaveSummaryText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PartialElementDocumentationMustHaveSummaryText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustNotHaveDefaultSummary">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementParametersMustBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementParameterDocumentationMustMatchElementParameters">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementParameterDocumentationMustDeclareParameterName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementParameterDocumentationMustHaveText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementReturnValueMustBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementReturnValueDocumentationMustHaveText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="VoidReturnValueMustNotBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParametersMustBeDocumented">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParametersMustBeDocumentedPartialClass">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParameterDocumentationMustMatchTypeParameters">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParameterDocumentationMustDeclareParameterName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="GenericTypeParameterDocumentationMustHaveText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PropertySummaryDocumentationMustMatchAccessors">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PropertySummaryDocumentationMustOmitSetAccessorWithRestrictedAccess">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementDocumentationMustNotBeCopiedAndPasted">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SingleLineCommentsMustNotUseDocumentationStyleSlashes">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationTextMustNotBeEmpty">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationTextMustContainWhitespace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DocumentationMustMeetCharacterPercentage">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="IncludedDocumentationXPathDoesNotExist">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="IncludeNodeDoesNotContainValidFileAndPath">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="InheritDocMustBeUsedWithInheritingClass">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderMustShowCopyright">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderMustHaveCopyrightText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FileHeaderFileNameDocumentationMustMatchTypeName">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings>
-        <BooleanProperty Name="IgnorePrivates">True</BooleanProperty>
-        <BooleanProperty Name="IgnoreInternals">True</BooleanProperty>
-      </AnalyzerSettings>
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.ReadabilityRules">
-      <Rules>
-        <Rule Name="OpeningParenthesisMustBeOnDeclarationLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ParameterMustNotSpanMultipleLines">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UseStringEmptyForEmptyStrings">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PrefixCallsCorrectly">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="PrefixLocalCallsWithThis">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ParameterMustFollowComma">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SplitParametersMustStartOnLineAfterDeclaration">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ParametersMustBeOnSameLineOrSeparateLines">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="UseBuiltInTypeAlias">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="Microsoft.Web.StyleCop.Rules">
-      <AnalyzerSettings>
-        <StringProperty Name="FileHeaderText"> Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.</StringProperty>
-      </AnalyzerSettings>
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.LayoutRules">
-      <Rules>
-        <Rule Name="AllAccessorsMustBeMultiLineOrSingleLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SingleLineCommentsMustNotBeFollowedByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingCurlyBracketMustBeFollowedByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="SingleLineCommentMustBePrecededByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementsMustBeSeparatedByBlankLine">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.MaintainabilityRules">
-      <Rules>
-        <Rule Name="ConditionalExpressionsMustDeclarePrecedence">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="FieldsMustBePrivate">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="DebugAssertMustProvideMessageText">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="StatementMustNotUseUnnecessaryParenthesis">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.OrderingRules">
-      <Rules>
-        <Rule Name="UsingDirectivesMustBePlacedWithinNamespace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementsMustAppearInTheCorrectOrder">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ElementsMustBeOrderedByAccess">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ConstantsMustAppearBeforeFields">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="InstanceReadonlyElementsMustAppearBeforeInstanceNonReadonlyElements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="StaticElementsMustAppearBeforeInstanceElements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="StaticReadonlyElementsMustAppearBeforeStaticNonReadonlyElements">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.CSharp.SpacingRules">
-      <Rules>
-        <Rule Name="SingleLineCommentsMustBeginWithSingleSpace">
-          <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-
-        <!-- Creates a lot of noise with anonymous objects -->
-        <Rule Name="OpeningCurlyBracketsMustBeSpacedCorrectly">
-           <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-        <Rule Name="ClosingCurlyBracketsMustBeSpacedCorrectly">
-           <RuleSettings>
-            <BooleanProperty Name="Enabled">False</BooleanProperty>
-          </RuleSettings>
-        </Rule>
-      </Rules>
-      <AnalyzerSettings />
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.KRules.FileHeaderRule">
-      <Rules />
-      <AnalyzerSettings>
-        <StringProperty Name="FileHeaderText"> Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.</StringProperty>
-      </AnalyzerSettings>
-    </Analyzer>
-    <Analyzer AnalyzerId="StyleCop.KRules.LineLengthRule">
-      <Rules />
-      <AnalyzerSettings>
-        <IntegerProperty Name="LineLength">120</IntegerProperty>
-      </AnalyzerSettings>
-    </Analyzer>
-  </Analyzers>
-</StyleCopSettings>
\ No newline at end of file
diff --git a/build.cmd b/build.cmd
deleted file mode 100644
index c0050bda125e73f3745de70a4021262eaa048c7b..0000000000000000000000000000000000000000
--- a/build.cmd
+++ /dev/null
@@ -1,2 +0,0 @@
-@ECHO OFF
-PowerShell -NoProfile -NoLogo -ExecutionPolicy unrestricted -Command "[System.Threading.Thread]::CurrentThread.CurrentCulture = ''; [System.Threading.Thread]::CurrentThread.CurrentUICulture = '';& '%~dp0run.ps1' default-build %*; exit $LASTEXITCODE"
diff --git a/build.sh b/build.sh
deleted file mode 100755
index 98a4b227658413eca2adb0d1d2d68178a80155cf..0000000000000000000000000000000000000000
--- a/build.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env bash
-
-set -euo pipefail
-DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-
-# Call "sync" between "chmod" and execution to prevent "text file busy" error in Docker (aufs)
-chmod +x "$DIR/run.sh"; sync
-"$DIR/run.sh" default-build "$@"
diff --git a/korebuild-lock.txt b/korebuild-lock.txt
deleted file mode 100644
index 26697a21fa91a7b4f2a665bf39836272c7c19545..0000000000000000000000000000000000000000
--- a/korebuild-lock.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-version:2.2.0-preview1-20180928.5
-commithash:43faa29f679f47b88689d645b39e6be5e0055d70
diff --git a/korebuild.json b/korebuild.json
deleted file mode 100644
index d217d06e3e488af39546ed5018a238ef68d53085..0000000000000000000000000000000000000000
--- a/korebuild.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "$schema": "https://raw.githubusercontent.com/aspnet/BuildTools/release/2.2/tools/korebuild.schema.json",
-  "channel": "release/2.2"
-}
diff --git a/run.cmd b/run.cmd
deleted file mode 100644
index d52d5c7e689e8108ed0f0b83a22b61375fde8fef..0000000000000000000000000000000000000000
--- a/run.cmd
+++ /dev/null
@@ -1,2 +0,0 @@
-@ECHO OFF
-PowerShell -NoProfile -NoLogo -ExecutionPolicy unrestricted -Command "[System.Threading.Thread]::CurrentThread.CurrentCulture = ''; [System.Threading.Thread]::CurrentThread.CurrentUICulture = '';& '%~dp0run.ps1' %*; exit $LASTEXITCODE"
diff --git a/run.ps1 b/run.ps1
deleted file mode 100644
index 34604c7175877351351d0a60c3f60c90673c8cdf..0000000000000000000000000000000000000000
--- a/run.ps1
+++ /dev/null
@@ -1,209 +0,0 @@
-#!/usr/bin/env powershell
-#requires -version 4
-
-<#
-.SYNOPSIS
-Executes KoreBuild commands.
-
-.DESCRIPTION
-Downloads korebuild if required. Then executes the KoreBuild command. To see available commands, execute with `-Command help`.
-
-.PARAMETER Command
-The KoreBuild command to run.
-
-.PARAMETER Path
-The folder to build. Defaults to the folder containing this script.
-
-.PARAMETER Channel
-The channel of KoreBuild to download. Overrides the value from the config file.
-
-.PARAMETER DotNetHome
-The directory where .NET Core tools will be stored.
-
-.PARAMETER ToolsSource
-The base url where build tools can be downloaded. Overrides the value from the config file.
-
-.PARAMETER Update
-Updates KoreBuild to the latest version even if a lock file is present.
-
-.PARAMETER Reinstall
-Re-installs KoreBuild
-
-.PARAMETER ConfigFile
-The path to the configuration file that stores values. Defaults to korebuild.json.
-
-.PARAMETER ToolsSourceSuffix
-The Suffix to append to the end of the ToolsSource. Useful for query strings in blob stores.
-
-.PARAMETER CI
-Sets up CI specific settings and variables.
-
-.PARAMETER Arguments
-Arguments to be passed to the command
-
-.NOTES
-This function will create a file $PSScriptRoot/korebuild-lock.txt. This lock file can be committed to source, but does not have to be.
-When the lockfile is not present, KoreBuild will create one using latest available version from $Channel.
-
-The $ConfigFile is expected to be an JSON file. It is optional, and the configuration values in it are optional as well. Any options set
-in the file are overridden by command line parameters.
-
-.EXAMPLE
-Example config file:
-```json
-{
-  "$schema": "https://raw.githubusercontent.com/aspnet/BuildTools/master/tools/korebuild.schema.json",
-  "channel": "master",
-  "toolsSource": "https://aspnetcore.blob.core.windows.net/buildtools"
-}
-```
-#>
-[CmdletBinding(PositionalBinding = $false)]
-param(
-    [Parameter(Mandatory = $true, Position = 0)]
-    [string]$Command,
-    [string]$Path = $PSScriptRoot,
-    [Alias('c')]
-    [string]$Channel,
-    [Alias('d')]
-    [string]$DotNetHome,
-    [Alias('s')]
-    [string]$ToolsSource,
-    [Alias('u')]
-    [switch]$Update,
-    [switch]$Reinstall,
-    [string]$ToolsSourceSuffix,
-    [string]$ConfigFile = $null,
-    [switch]$CI,
-    [Parameter(ValueFromRemainingArguments = $true)]
-    [string[]]$Arguments
-)
-
-Set-StrictMode -Version 2
-$ErrorActionPreference = 'Stop'
-
-#
-# Functions
-#
-
-function Get-KoreBuild {
-
-    $lockFile = Join-Path $Path 'korebuild-lock.txt'
-
-    if (!(Test-Path $lockFile) -or $Update) {
-        Get-RemoteFile "$ToolsSource/korebuild/channels/$Channel/latest.txt" $lockFile $ToolsSourceSuffix
-    }
-
-    $version = Get-Content $lockFile | Where-Object { $_ -like 'version:*' } | Select-Object -first 1
-    if (!$version) {
-        Write-Error "Failed to parse version from $lockFile. Expected a line that begins with 'version:'"
-    }
-    $version = $version.TrimStart('version:').Trim()
-    $korebuildPath = Join-Paths $DotNetHome ('buildtools', 'korebuild', $version)
-
-    if ($Reinstall -and (Test-Path $korebuildPath)) {
-        Remove-Item -Force -Recurse $korebuildPath
-    }
-
-    if (!(Test-Path $korebuildPath)) {
-        Write-Host -ForegroundColor Magenta "Downloading KoreBuild $version"
-        New-Item -ItemType Directory -Path $korebuildPath | Out-Null
-        $remotePath = "$ToolsSource/korebuild/artifacts/$version/korebuild.$version.zip"
-
-        try {
-            $tmpfile = Join-Path ([IO.Path]::GetTempPath()) "KoreBuild-$([guid]::NewGuid()).zip"
-            Get-RemoteFile $remotePath $tmpfile $ToolsSourceSuffix
-            if (Get-Command -Name 'Microsoft.PowerShell.Archive\Expand-Archive' -ErrorAction Ignore) {
-                # Use built-in commands where possible as they are cross-plat compatible
-                Microsoft.PowerShell.Archive\Expand-Archive -Path $tmpfile -DestinationPath $korebuildPath
-            }
-            else {
-                # Fallback to old approach for old installations of PowerShell
-                Add-Type -AssemblyName System.IO.Compression.FileSystem
-                [System.IO.Compression.ZipFile]::ExtractToDirectory($tmpfile, $korebuildPath)
-            }
-        }
-        catch {
-            Remove-Item -Recurse -Force $korebuildPath -ErrorAction Ignore
-            throw
-        }
-        finally {
-            Remove-Item $tmpfile -ErrorAction Ignore
-        }
-    }
-
-    return $korebuildPath
-}
-
-function Join-Paths([string]$path, [string[]]$childPaths) {
-    $childPaths | ForEach-Object { $path = Join-Path $path $_ }
-    return $path
-}
-
-function Get-RemoteFile([string]$RemotePath, [string]$LocalPath, [string]$RemoteSuffix) {
-    if ($RemotePath -notlike 'http*') {
-        Copy-Item $RemotePath $LocalPath
-        return
-    }
-
-    $retries = 10
-    while ($retries -gt 0) {
-        $retries -= 1
-        try {
-            Invoke-WebRequest -UseBasicParsing -Uri $($RemotePath + $RemoteSuffix) -OutFile $LocalPath
-            return
-        }
-        catch {
-            Write-Verbose "Request failed. $retries retries remaining"
-        }
-    }
-
-    Write-Error "Download failed: '$RemotePath'."
-}
-
-#
-# Main
-#
-
-# Load configuration or set defaults
-
-$Path = Resolve-Path $Path
-if (!$ConfigFile) { $ConfigFile = Join-Path $Path 'korebuild.json' }
-
-if (Test-Path $ConfigFile) {
-    try {
-        $config = Get-Content -Raw -Encoding UTF8 -Path $ConfigFile | ConvertFrom-Json
-        if ($config) {
-            if (!($Channel) -and (Get-Member -Name 'channel' -InputObject $config)) { [string] $Channel = $config.channel }
-            if (!($ToolsSource) -and (Get-Member -Name 'toolsSource' -InputObject $config)) { [string] $ToolsSource = $config.toolsSource}
-        }
-    }
-    catch {
-        Write-Host -ForegroundColor Red $Error[0]
-        Write-Error "$ConfigFile contains invalid JSON."
-        exit 1
-    }
-}
-
-if (!$DotNetHome) {
-    $DotNetHome = if ($env:DOTNET_HOME) { $env:DOTNET_HOME } `
-        elseif ($env:USERPROFILE) { Join-Path $env:USERPROFILE '.dotnet'} `
-        elseif ($env:HOME) {Join-Path $env:HOME '.dotnet'}`
-        else { Join-Path $PSScriptRoot '.dotnet'}
-}
-
-if (!$Channel) { $Channel = 'master' }
-if (!$ToolsSource) { $ToolsSource = 'https://aspnetcore.blob.core.windows.net/buildtools' }
-
-# Execute
-
-$korebuildPath = Get-KoreBuild
-Import-Module -Force -Scope Local (Join-Path $korebuildPath 'KoreBuild.psd1')
-
-try {
-    Set-KoreBuildSettings -ToolsSource $ToolsSource -DotNetHome $DotNetHome -RepoPath $Path -ConfigFile $ConfigFile -CI:$CI
-    Invoke-KoreBuildCommand $Command @Arguments
-}
-finally {
-    Remove-Module 'KoreBuild' -ErrorAction Ignore
-}
diff --git a/run.sh b/run.sh
deleted file mode 100755
index 4c1fed5646ca811ed28e7bd5f47ec62da9a1fe9f..0000000000000000000000000000000000000000
--- a/run.sh
+++ /dev/null
@@ -1,256 +0,0 @@
-#!/usr/bin/env bash
-
-set -euo pipefail
-
-#
-# variables
-#
-
-RESET="\033[0m"
-RED="\033[0;31m"
-YELLOW="\033[0;33m"
-MAGENTA="\033[0;95m"
-DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-[ -z "${DOTNET_HOME:-}" ] && DOTNET_HOME="$HOME/.dotnet"
-verbose=false
-update=false
-reinstall=false
-repo_path="$DIR"
-channel=''
-tools_source=''
-tools_source_suffix=''
-ci=false
-
-#
-# Functions
-#
-__usage() {
-    echo "Usage: $(basename "${BASH_SOURCE[0]}") command [options] [[--] <Arguments>...]"
-    echo ""
-    echo "Arguments:"
-    echo "    command                The command to be run."
-    echo "    <Arguments>...         Arguments passed to the command. Variable number of arguments allowed."
-    echo ""
-    echo "Options:"
-    echo "    --verbose                                             Show verbose output."
-    echo "    -c|--channel <CHANNEL>                                The channel of KoreBuild to download. Overrides the value from the config file.."
-    echo "    --config-file <FILE>                                  The path to the configuration file that stores values. Defaults to korebuild.json."
-    echo "    -d|--dotnet-home <DIR>                                The directory where .NET Core tools will be stored. Defaults to '\$DOTNET_HOME' or '\$HOME/.dotnet."
-    echo "    --path <PATH>                                         The directory to build. Defaults to the directory containing the script."
-    echo "    -s|--tools-source|-ToolsSource <URL>                  The base url where build tools can be downloaded. Overrides the value from the config file."
-    echo "    --tools-source-suffix|-ToolsSourceSuffix <SUFFIX>     The suffix to append to tools-source. Useful for query strings."
-    echo "    -u|--update                                           Update to the latest KoreBuild even if the lock file is present."
-    echo "    --reinstall                                           Reinstall KoreBuild."
-    echo "    --ci                                                  Apply CI specific settings and environment variables."
-    echo ""
-    echo "Description:"
-    echo "    This function will create a file \$DIR/korebuild-lock.txt. This lock file can be committed to source, but does not have to be."
-    echo "    When the lockfile is not present, KoreBuild will create one using latest available version from \$channel."
-
-    if [[ "${1:-}" != '--no-exit' ]]; then
-        exit 2
-    fi
-}
-
-get_korebuild() {
-    local version
-    local lock_file="$repo_path/korebuild-lock.txt"
-    if [ ! -f "$lock_file" ] || [ "$update" = true ]; then
-        __get_remote_file "$tools_source/korebuild/channels/$channel/latest.txt" "$lock_file" "$tools_source_suffix"
-    fi
-    version="$(grep 'version:*' -m 1 "$lock_file")"
-    if [[ "$version" == '' ]]; then
-        __error "Failed to parse version from $lock_file. Expected a line that begins with 'version:'"
-        return 1
-    fi
-    version="$(echo "${version#version:}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
-    local korebuild_path="$DOTNET_HOME/buildtools/korebuild/$version"
-
-    if [ "$reinstall" = true ] && [ -d "$korebuild_path" ]; then
-        rm -rf "$korebuild_path"
-    fi
-
-    {
-        if [ ! -d "$korebuild_path" ]; then
-            mkdir -p "$korebuild_path"
-            local remote_path="$tools_source/korebuild/artifacts/$version/korebuild.$version.zip"
-            tmpfile="$(mktemp)"
-            echo -e "${MAGENTA}Downloading KoreBuild ${version}${RESET}"
-            if __get_remote_file "$remote_path" "$tmpfile" "$tools_source_suffix"; then
-                unzip -q -d "$korebuild_path" "$tmpfile"
-            fi
-            rm "$tmpfile" || true
-        fi
-
-        source "$korebuild_path/KoreBuild.sh"
-    } || {
-        if [ -d "$korebuild_path" ]; then
-            echo "Cleaning up after failed installation"
-            rm -rf "$korebuild_path" || true
-        fi
-        return 1
-    }
-}
-
-__error() {
-    echo -e "${RED}error: $*${RESET}" 1>&2
-}
-
-__warn() {
-    echo -e "${YELLOW}warning: $*${RESET}"
-}
-
-__machine_has() {
-    hash "$1" > /dev/null 2>&1
-    return $?
-}
-
-__get_remote_file() {
-    local remote_path=$1
-    local local_path=$2
-    local remote_path_suffix=$3
-
-    if [[ "$remote_path" != 'http'* ]]; then
-        cp "$remote_path" "$local_path"
-        return 0
-    fi
-
-    local failed=false
-    if __machine_has wget; then
-        wget --tries 10 --quiet -O "$local_path" "${remote_path}${remote_path_suffix}" || failed=true
-    else
-        failed=true
-    fi
-
-    if [ "$failed" = true ] && __machine_has curl; then
-        failed=false
-        curl --retry 10 -sSL -f --create-dirs -o "$local_path" "${remote_path}${remote_path_suffix}" || failed=true
-    fi
-
-    if [ "$failed" = true ]; then
-        __error "Download failed: $remote_path" 1>&2
-        return 1
-    fi
-}
-
-#
-# main
-#
-
-command="${1:-}"
-shift
-
-while [[ $# -gt 0 ]]; do
-    case $1 in
-        -\?|-h|--help)
-            __usage --no-exit
-            exit 0
-            ;;
-        -c|--channel|-Channel)
-            shift
-            channel="${1:-}"
-            [ -z "$channel" ] && __usage
-            ;;
-        --config-file|-ConfigFile)
-            shift
-            config_file="${1:-}"
-            [ -z "$config_file" ] && __usage
-            if [ ! -f "$config_file" ]; then
-                __error "Invalid value for --config-file. $config_file does not exist."
-                exit 1
-            fi
-            ;;
-        -d|--dotnet-home|-DotNetHome)
-            shift
-            DOTNET_HOME="${1:-}"
-            [ -z "$DOTNET_HOME" ] && __usage
-            ;;
-        --path|-Path)
-            shift
-            repo_path="${1:-}"
-            [ -z "$repo_path" ] && __usage
-            ;;
-        -s|--tools-source|-ToolsSource)
-            shift
-            tools_source="${1:-}"
-            [ -z "$tools_source" ] && __usage
-            ;;
-        --tools-source-suffix|-ToolsSourceSuffix)
-            shift
-            tools_source_suffix="${1:-}"
-            [ -z "$tools_source_suffix" ] && __usage
-            ;;
-        -u|--update|-Update)
-            update=true
-            ;;
-        --reinstall|-[Rr]einstall)
-            reinstall=true
-            ;;
-        --ci|-[Cc][Ii])
-            ci=true
-            ;;
-        --verbose|-Verbose)
-            verbose=true
-            ;;
-        --)
-            shift
-            break
-            ;;
-        *)
-            break
-            ;;
-    esac
-    shift
-done
-
-if ! __machine_has unzip; then
-    __error 'Missing required command: unzip'
-    exit 1
-fi
-
-if ! __machine_has curl && ! __machine_has wget; then
-    __error 'Missing required command. Either wget or curl is required.'
-    exit 1
-fi
-
-[ -z "${config_file:-}" ] && config_file="$repo_path/korebuild.json"
-if [ -f "$config_file" ]; then
-    if __machine_has jq ; then
-        if jq '.' "$config_file" >/dev/null ; then
-            config_channel="$(jq -r 'select(.channel!=null) | .channel' "$config_file")"
-            config_tools_source="$(jq -r 'select(.toolsSource!=null) | .toolsSource' "$config_file")"
-        else
-            __error "$config_file contains invalid JSON."
-            exit 1
-        fi
-    elif __machine_has python ; then
-        if python -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'))" >/dev/null ; then
-            config_channel="$(python -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'));print(obj['channel'] if 'channel' in obj else '')")"
-            config_tools_source="$(python -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'));print(obj['toolsSource'] if 'toolsSource' in obj else '')")"
-        else
-            __error "$config_file contains invalid JSON."
-            exit 1
-        fi
-    elif __machine_has python3 ; then
-        if python3 -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'))" >/dev/null ; then
-            config_channel="$(python3 -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'));print(obj['channel'] if 'channel' in obj else '')")"
-            config_tools_source="$(python3 -c "import json,codecs;obj=json.load(codecs.open('$config_file', 'r', 'utf-8-sig'));print(obj['toolsSource'] if 'toolsSource' in obj else '')")"
-        else
-            __error "$config_file contains invalid JSON."
-            exit 1
-        fi
-    else
-        __error 'Missing required command: jq or python. Could not parse the JSON file.'
-        exit 1
-    fi
-
-    [ ! -z "${config_channel:-}" ] && channel="$config_channel"
-    [ ! -z "${config_tools_source:-}" ] && tools_source="$config_tools_source"
-fi
-
-[ -z "$channel" ] && channel='master'
-[ -z "$tools_source" ] && tools_source='https://aspnetcore.blob.core.windows.net/buildtools'
-
-get_korebuild
-set_korebuildsettings "$tools_source" "$DOTNET_HOME" "$repo_path" "$config_file" "$ci"
-invoke_korebuild_command "$command" "$@"
diff --git a/.gitignore b/src/AADIntegration/.gitignore
similarity index 100%
rename from .gitignore
rename to src/AADIntegration/.gitignore
diff --git a/AADIntegration.sln b/src/AADIntegration/AADIntegration.sln
similarity index 100%
rename from AADIntegration.sln
rename to src/AADIntegration/AADIntegration.sln
diff --git a/Directory.Build.props b/src/AADIntegration/Directory.Build.props
similarity index 100%
rename from Directory.Build.props
rename to src/AADIntegration/Directory.Build.props
diff --git a/Directory.Build.targets b/src/AADIntegration/Directory.Build.targets
similarity index 100%
rename from Directory.Build.targets
rename to src/AADIntegration/Directory.Build.targets
diff --git a/NuGetPackageVerifier.json b/src/AADIntegration/NuGetPackageVerifier.json
similarity index 100%
rename from NuGetPackageVerifier.json
rename to src/AADIntegration/NuGetPackageVerifier.json
diff --git a/README.md b/src/AADIntegration/README.md
similarity index 100%
rename from README.md
rename to src/AADIntegration/README.md
diff --git a/build/Key.snk b/src/AADIntegration/build/Key.snk
similarity index 100%
rename from build/Key.snk
rename to src/AADIntegration/build/Key.snk
diff --git a/build/dependencies.props b/src/AADIntegration/build/dependencies.props
similarity index 100%
rename from build/dependencies.props
rename to src/AADIntegration/build/dependencies.props
diff --git a/build/repo.props b/src/AADIntegration/build/repo.props
similarity index 100%
rename from build/repo.props
rename to src/AADIntegration/build/repo.props
diff --git a/build/sources.props b/src/AADIntegration/build/sources.props
similarity index 100%
rename from build/sources.props
rename to src/AADIntegration/build/sources.props
diff --git a/samples/AzureADB2CSample/AzureADB2CSample.csproj b/src/AADIntegration/samples/AzureADB2CSample/AzureADB2CSample.csproj
similarity index 100%
rename from samples/AzureADB2CSample/AzureADB2CSample.csproj
rename to src/AADIntegration/samples/AzureADB2CSample/AzureADB2CSample.csproj
diff --git a/samples/AzureADB2CSample/Pages/Index.cshtml b/src/AADIntegration/samples/AzureADB2CSample/Pages/Index.cshtml
similarity index 100%
rename from samples/AzureADB2CSample/Pages/Index.cshtml
rename to src/AADIntegration/samples/AzureADB2CSample/Pages/Index.cshtml
diff --git a/samples/AzureADB2CSample/Pages/Index.cshtml.cs b/src/AADIntegration/samples/AzureADB2CSample/Pages/Index.cshtml.cs
similarity index 100%
rename from samples/AzureADB2CSample/Pages/Index.cshtml.cs
rename to src/AADIntegration/samples/AzureADB2CSample/Pages/Index.cshtml.cs
diff --git a/samples/AzureADB2CSample/Pages/Shared/_Layout.cshtml b/src/AADIntegration/samples/AzureADB2CSample/Pages/Shared/_Layout.cshtml
similarity index 100%
rename from samples/AzureADB2CSample/Pages/Shared/_Layout.cshtml
rename to src/AADIntegration/samples/AzureADB2CSample/Pages/Shared/_Layout.cshtml
diff --git a/samples/AzureADB2CSample/Pages/Shared/_LoginPartial.cshtml b/src/AADIntegration/samples/AzureADB2CSample/Pages/Shared/_LoginPartial.cshtml
similarity index 100%
rename from samples/AzureADB2CSample/Pages/Shared/_LoginPartial.cshtml
rename to src/AADIntegration/samples/AzureADB2CSample/Pages/Shared/_LoginPartial.cshtml
diff --git a/samples/AzureADB2CSample/Pages/_ViewImports.cshtml b/src/AADIntegration/samples/AzureADB2CSample/Pages/_ViewImports.cshtml
similarity index 100%
rename from samples/AzureADB2CSample/Pages/_ViewImports.cshtml
rename to src/AADIntegration/samples/AzureADB2CSample/Pages/_ViewImports.cshtml
diff --git a/samples/AzureADB2CSample/Pages/_ViewStart.cshtml b/src/AADIntegration/samples/AzureADB2CSample/Pages/_ViewStart.cshtml
similarity index 100%
rename from samples/AzureADB2CSample/Pages/_ViewStart.cshtml
rename to src/AADIntegration/samples/AzureADB2CSample/Pages/_ViewStart.cshtml
diff --git a/samples/AzureADB2CSample/Program.cs b/src/AADIntegration/samples/AzureADB2CSample/Program.cs
similarity index 100%
rename from samples/AzureADB2CSample/Program.cs
rename to src/AADIntegration/samples/AzureADB2CSample/Program.cs
diff --git a/samples/AzureADB2CSample/Properties/launchSettings.json b/src/AADIntegration/samples/AzureADB2CSample/Properties/launchSettings.json
similarity index 100%
rename from samples/AzureADB2CSample/Properties/launchSettings.json
rename to src/AADIntegration/samples/AzureADB2CSample/Properties/launchSettings.json
diff --git a/samples/AzureADB2CSample/Startup.cs b/src/AADIntegration/samples/AzureADB2CSample/Startup.cs
similarity index 100%
rename from samples/AzureADB2CSample/Startup.cs
rename to src/AADIntegration/samples/AzureADB2CSample/Startup.cs
diff --git a/samples/AzureADB2CSample/appsettings.Development.json b/src/AADIntegration/samples/AzureADB2CSample/appsettings.Development.json
similarity index 100%
rename from samples/AzureADB2CSample/appsettings.Development.json
rename to src/AADIntegration/samples/AzureADB2CSample/appsettings.Development.json
diff --git a/samples/AzureADB2CSample/appsettings.json b/src/AADIntegration/samples/AzureADB2CSample/appsettings.json
similarity index 100%
rename from samples/AzureADB2CSample/appsettings.json
rename to src/AADIntegration/samples/AzureADB2CSample/appsettings.json
diff --git a/samples/AzureADB2CSample/wwwroot/css/site.css b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/css/site.css
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/css/site.css
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/css/site.css
diff --git a/samples/AzureADB2CSample/wwwroot/css/site.min.css b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/css/site.min.css
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/css/site.min.css
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/css/site.min.css
diff --git a/samples/AzureADB2CSample/wwwroot/favicon.ico b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/favicon.ico
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/favicon.ico
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/favicon.ico
diff --git a/samples/AzureADB2CSample/wwwroot/images/banner1.svg b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/images/banner1.svg
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/images/banner1.svg
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/images/banner1.svg
diff --git a/samples/AzureADB2CSample/wwwroot/images/banner2.svg b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/images/banner2.svg
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/images/banner2.svg
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/images/banner2.svg
diff --git a/samples/AzureADB2CSample/wwwroot/images/banner3.svg b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/images/banner3.svg
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/images/banner3.svg
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/images/banner3.svg
diff --git a/samples/AzureADB2CSample/wwwroot/images/banner4.svg b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/images/banner4.svg
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/images/banner4.svg
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/images/banner4.svg
diff --git a/samples/AzureADB2CSample/wwwroot/js/site.js b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/js/site.js
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/js/site.js
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/js/site.js
diff --git a/samples/AzureADB2CSample/wwwroot/js/site.min.js b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/js/site.min.js
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/js/site.min.js
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/js/site.min.js
diff --git a/samples/AzureADB2CSample/wwwroot/lib/bootstrap/.bower.json b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/.bower.json
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/bootstrap/.bower.json
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/.bower.json
diff --git a/samples/AzureADB2CSample/wwwroot/lib/bootstrap/LICENSE b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/LICENSE
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/bootstrap/LICENSE
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/LICENSE
diff --git a/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css
diff --git a/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.css.map
diff --git a/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap-theme.min.css.map
diff --git a/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap.css b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap.css
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap.css
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap.css
diff --git a/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map
diff --git a/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map
diff --git a/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot
diff --git a/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg
diff --git a/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf
diff --git a/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff
diff --git a/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2
diff --git a/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/js/bootstrap.js b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/js/bootstrap.js
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/js/bootstrap.js
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/js/bootstrap.js
diff --git a/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/js/npm.js b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/js/npm.js
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/js/npm.js
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/bootstrap/dist/js/npm.js
diff --git a/samples/AzureADB2CSample/wwwroot/lib/jquery-validation-unobtrusive/.bower.json b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/jquery-validation-unobtrusive/.bower.json
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/jquery-validation-unobtrusive/.bower.json
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/jquery-validation-unobtrusive/.bower.json
diff --git a/samples/AzureADB2CSample/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js
diff --git a/samples/AzureADB2CSample/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js
diff --git a/samples/AzureADB2CSample/wwwroot/lib/jquery-validation/.bower.json b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/jquery-validation/.bower.json
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/jquery-validation/.bower.json
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/jquery-validation/.bower.json
diff --git a/samples/AzureADB2CSample/wwwroot/lib/jquery-validation/LICENSE.md b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/jquery-validation/LICENSE.md
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/jquery-validation/LICENSE.md
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/jquery-validation/LICENSE.md
diff --git a/samples/AzureADB2CSample/wwwroot/lib/jquery-validation/dist/additional-methods.js b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/jquery-validation/dist/additional-methods.js
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/jquery-validation/dist/additional-methods.js
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/jquery-validation/dist/additional-methods.js
diff --git a/samples/AzureADB2CSample/wwwroot/lib/jquery-validation/dist/jquery.validate.js b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/jquery-validation/dist/jquery.validate.js
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/jquery-validation/dist/jquery.validate.js
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/jquery-validation/dist/jquery.validate.js
diff --git a/samples/AzureADB2CSample/wwwroot/lib/jquery/.bower.json b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/jquery/.bower.json
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/jquery/.bower.json
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/jquery/.bower.json
diff --git a/samples/AzureADB2CSample/wwwroot/lib/jquery/LICENSE.txt b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/jquery/LICENSE.txt
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/jquery/LICENSE.txt
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/jquery/LICENSE.txt
diff --git a/samples/AzureADB2CSample/wwwroot/lib/jquery/dist/jquery.js b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/jquery/dist/jquery.js
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/jquery/dist/jquery.js
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/jquery/dist/jquery.js
diff --git a/samples/AzureADB2CSample/wwwroot/lib/jquery/dist/jquery.min.map b/src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/jquery/dist/jquery.min.map
similarity index 100%
rename from samples/AzureADB2CSample/wwwroot/lib/jquery/dist/jquery.min.map
rename to src/AADIntegration/samples/AzureADB2CSample/wwwroot/lib/jquery/dist/jquery.min.map
diff --git a/src/Directory.Build.props b/src/AADIntegration/src/Directory.Build.props
similarity index 100%
rename from src/Directory.Build.props
rename to src/AADIntegration/src/Directory.Build.props
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Controllers/AccountController.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Controllers/AccountController.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Controllers/AccountController.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Controllers/AccountController.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/AccessDenied.cshtml b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/AccessDenied.cshtml
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/AccessDenied.cshtml
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/AccessDenied.cshtml
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/AccessDenied.cshtml.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/AccessDenied.cshtml.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/AccessDenied.cshtml.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/AccessDenied.cshtml.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/Error.cshtml b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/Error.cshtml
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/Error.cshtml
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/Error.cshtml
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/Error.cshtml.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/Error.cshtml.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/Error.cshtml.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/Error.cshtml.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/SignedOut.cshtml b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/SignedOut.cshtml
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/SignedOut.cshtml
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/SignedOut.cshtml
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/SignedOut.cshtml.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/SignedOut.cshtml.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/SignedOut.cshtml.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/SignedOut.cshtml.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/_viewImports.cshtml b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/_viewImports.cshtml
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/_viewImports.cshtml
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/Account/_viewImports.cshtml
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/_ViewStart.cshtml b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/_ViewStart.cshtml
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/_ViewStart.cshtml
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Areas/AzureAD/Pages/_ViewStart.cshtml
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADAccountControllerFeatureProvider.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADAccountControllerFeatureProvider.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADAccountControllerFeatureProvider.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADAccountControllerFeatureProvider.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADAuthenticationBuilderExtensions.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADAuthenticationBuilderExtensions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADAuthenticationBuilderExtensions.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADAuthenticationBuilderExtensions.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADDefaults.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADDefaults.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADDefaults.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADDefaults.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADOptions.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADOptions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADOptions.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADOptions.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADOptionsConfiguration.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADOptionsConfiguration.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADOptionsConfiguration.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADOptionsConfiguration.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADSchemeOptions.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADSchemeOptions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADSchemeOptions.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/AzureADSchemeOptions.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/CookieOptionsConfiguration.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/CookieOptionsConfiguration.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureAD.UI/CookieOptionsConfiguration.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/CookieOptionsConfiguration.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/JwtBearerOptionsConfiguration.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/JwtBearerOptionsConfiguration.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureAD.UI/JwtBearerOptionsConfiguration.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/JwtBearerOptionsConfiguration.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Microsoft.AspNetCore.Authentication.AzureAD.UI.csproj b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Microsoft.AspNetCore.Authentication.AzureAD.UI.csproj
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Microsoft.AspNetCore.Authentication.AzureAD.UI.csproj
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Microsoft.AspNetCore.Authentication.AzureAD.UI.csproj
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/OpenIdConnectOptionsConfiguration.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/OpenIdConnectOptionsConfiguration.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureAD.UI/OpenIdConnectOptionsConfiguration.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/OpenIdConnectOptionsConfiguration.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Properties/AssemblyInfo.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Properties/AssemblyInfo.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Properties/AssemblyInfo.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/Properties/AssemblyInfo.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/baseline.netcore.json b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/baseline.netcore.json
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureAD.UI/baseline.netcore.json
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureAD.UI/baseline.netcore.json
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Controllers/AccountController.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Controllers/AccountController.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Controllers/AccountController.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Controllers/AccountController.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/AccessDenied.cshtml b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/AccessDenied.cshtml
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/AccessDenied.cshtml
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/AccessDenied.cshtml
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/AccessDenied.cshtml.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/AccessDenied.cshtml.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/AccessDenied.cshtml.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/AccessDenied.cshtml.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/Error.cshtml b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/Error.cshtml
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/Error.cshtml
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/Error.cshtml
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/Error.cshtml.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/Error.cshtml.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/Error.cshtml.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/Error.cshtml.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/SignedOut.cshtml b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/SignedOut.cshtml
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/SignedOut.cshtml
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/SignedOut.cshtml
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/SignedOut.cshtml.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/SignedOut.cshtml.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/SignedOut.cshtml.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/SignedOut.cshtml.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/_viewImports.cshtml b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/_viewImports.cshtml
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/_viewImports.cshtml
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/Account/_viewImports.cshtml
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/_ViewStart.cshtml b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/_ViewStart.cshtml
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/_ViewStart.cshtml
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Areas/AzureADB2C/Pages/_ViewStart.cshtml
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureADB2CAccountControllerFeatureProvider.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureADB2CAccountControllerFeatureProvider.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureADB2CAccountControllerFeatureProvider.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureADB2CAccountControllerFeatureProvider.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2CAuthenticationBuilderExtensions.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2CAuthenticationBuilderExtensions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2CAuthenticationBuilderExtensions.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2CAuthenticationBuilderExtensions.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2CDefaults.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2CDefaults.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2CDefaults.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2CDefaults.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2COpenIDConnectEventHandlers.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2COpenIDConnectEventHandlers.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2COpenIDConnectEventHandlers.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2COpenIDConnectEventHandlers.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2COptions.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2COptions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2COptions.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2COptions.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2COptionsConfiguration.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2COptionsConfiguration.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2COptionsConfiguration.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2COptionsConfiguration.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2CSchemeOptions.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2CSchemeOptions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2CSchemeOptions.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/AzureAdB2CSchemeOptions.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/CookieOptionsConfiguration.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/CookieOptionsConfiguration.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/CookieOptionsConfiguration.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/CookieOptionsConfiguration.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/JwtBearerOptionsConfiguration.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/JwtBearerOptionsConfiguration.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/JwtBearerOptionsConfiguration.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/JwtBearerOptionsConfiguration.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.csproj b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.csproj
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.csproj
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.csproj
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/OpenIdConnectOptionsConfiguration.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/OpenIdConnectOptionsConfiguration.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/OpenIdConnectOptionsConfiguration.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/OpenIdConnectOptionsConfiguration.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Properties/AssemblyInfo.cs b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Properties/AssemblyInfo.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Properties/AssemblyInfo.cs
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/Properties/AssemblyInfo.cs
diff --git a/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/baseline.netcore.json b/src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/baseline.netcore.json
similarity index 100%
rename from src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/baseline.netcore.json
rename to src/AADIntegration/src/Microsoft.AspNetCore.Authentication.AzureADB2C.UI/baseline.netcore.json
diff --git a/test/AADIntegration.ruleset b/src/AADIntegration/test/AADIntegration.ruleset
similarity index 100%
rename from test/AADIntegration.ruleset
rename to src/AADIntegration/test/AADIntegration.ruleset
diff --git a/test/Directory.Build.props b/src/AADIntegration/test/Directory.Build.props
similarity index 100%
rename from test/Directory.Build.props
rename to src/AADIntegration/test/Directory.Build.props
diff --git a/test/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests/ApiAuthenticationTests.cs b/src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests/ApiAuthenticationTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests/ApiAuthenticationTests.cs
rename to src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests/ApiAuthenticationTests.cs
diff --git a/test/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests.csproj b/src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests.csproj
similarity index 100%
rename from test/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests.csproj
rename to src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests.csproj
diff --git a/test/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests/WebAuthenticationTests.cs b/src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests/WebAuthenticationTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests/WebAuthenticationTests.cs
rename to src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests/WebAuthenticationTests.cs
diff --git a/test/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests/xunit.runner.json b/src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests/xunit.runner.json
similarity index 100%
rename from test/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests/xunit.runner.json
rename to src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests/xunit.runner.json
diff --git a/test/Microsoft.AspNetCore.Authentication.AzureAD.UI.Test/AzureADAuthenticationBuilderExtensionsTests.cs b/src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureAD.UI.Test/AzureADAuthenticationBuilderExtensionsTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Authentication.AzureAD.UI.Test/AzureADAuthenticationBuilderExtensionsTests.cs
rename to src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureAD.UI.Test/AzureADAuthenticationBuilderExtensionsTests.cs
diff --git a/test/Microsoft.AspNetCore.Authentication.AzureAD.UI.Test/Controllers/AccountControllerTests.cs b/src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureAD.UI.Test/Controllers/AccountControllerTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Authentication.AzureAD.UI.Test/Controllers/AccountControllerTests.cs
rename to src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureAD.UI.Test/Controllers/AccountControllerTests.cs
diff --git a/test/Microsoft.AspNetCore.Authentication.AzureAD.UI.Test/Microsoft.AspNetCore.Authentication.AzureAD.UI.Test.csproj b/src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureAD.UI.Test/Microsoft.AspNetCore.Authentication.AzureAD.UI.Test.csproj
similarity index 100%
rename from test/Microsoft.AspNetCore.Authentication.AzureAD.UI.Test/Microsoft.AspNetCore.Authentication.AzureAD.UI.Test.csproj
rename to src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureAD.UI.Test/Microsoft.AspNetCore.Authentication.AzureAD.UI.Test.csproj
diff --git a/test/Microsoft.AspNetCore.Authentication.AzureAD.UI.Test/xunit.runner.json b/src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureAD.UI.Test/xunit.runner.json
similarity index 100%
rename from test/Microsoft.AspNetCore.Authentication.AzureAD.UI.Test/xunit.runner.json
rename to src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureAD.UI.Test/xunit.runner.json
diff --git a/test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test/AzureAdB2CAuthenticationBuilderExtensionsTests.cs b/src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test/AzureAdB2CAuthenticationBuilderExtensionsTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test/AzureAdB2CAuthenticationBuilderExtensionsTests.cs
rename to src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test/AzureAdB2CAuthenticationBuilderExtensionsTests.cs
diff --git a/test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test/AzureAdB2COpenIDConnectEventHandlersTests.cs b/src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test/AzureAdB2COpenIDConnectEventHandlersTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test/AzureAdB2COpenIDConnectEventHandlersTests.cs
rename to src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test/AzureAdB2COpenIDConnectEventHandlersTests.cs
diff --git a/test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test/Controllers/AccountControllerTests.cs b/src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test/Controllers/AccountControllerTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test/Controllers/AccountControllerTests.cs
rename to src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test/Controllers/AccountControllerTests.cs
diff --git a/test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test.csproj b/src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test.csproj
similarity index 100%
rename from test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test.csproj
rename to src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test.csproj
diff --git a/test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test/xunit.runner.json b/src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test/xunit.runner.json
similarity index 100%
rename from test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test/xunit.runner.json
rename to src/AADIntegration/test/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Test/xunit.runner.json
diff --git a/test/WebSites/AzureAD.WebSite/AzureAD.WebSite.csproj b/src/AADIntegration/test/WebSites/AzureAD.WebSite/AzureAD.WebSite.csproj
similarity index 100%
rename from test/WebSites/AzureAD.WebSite/AzureAD.WebSite.csproj
rename to src/AADIntegration/test/WebSites/AzureAD.WebSite/AzureAD.WebSite.csproj
diff --git a/test/WebSites/AzureAD.WebSite/Controllers/TestController.cs b/src/AADIntegration/test/WebSites/AzureAD.WebSite/Controllers/TestController.cs
similarity index 100%
rename from test/WebSites/AzureAD.WebSite/Controllers/TestController.cs
rename to src/AADIntegration/test/WebSites/AzureAD.WebSite/Controllers/TestController.cs
diff --git a/test/WebSites/AzureAD.WebSite/Program.cs b/src/AADIntegration/test/WebSites/AzureAD.WebSite/Program.cs
similarity index 100%
rename from test/WebSites/AzureAD.WebSite/Program.cs
rename to src/AADIntegration/test/WebSites/AzureAD.WebSite/Program.cs
diff --git a/test/WebSites/AzureAD.WebSite/Startup.cs b/src/AADIntegration/test/WebSites/AzureAD.WebSite/Startup.cs
similarity index 100%
rename from test/WebSites/AzureAD.WebSite/Startup.cs
rename to src/AADIntegration/test/WebSites/AzureAD.WebSite/Startup.cs
diff --git a/test/WebSites/Directory.Build.props b/src/AADIntegration/test/WebSites/Directory.Build.props
similarity index 100%
rename from test/WebSites/Directory.Build.props
rename to src/AADIntegration/test/WebSites/Directory.Build.props
diff --git a/version.props b/src/AADIntegration/version.props
similarity index 100%
rename from version.props
rename to src/AADIntegration/version.props