diff --git a/.appveyor.yml b/.appveyor.yml
deleted file mode 100644
index 4eea96ab69cc8d48f6598c397e2139ca52b5f4fc..0000000000000000000000000000000000000000
--- a/.appveyor.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-init:
-- git config --global core.autocrlf true
-branches:
-  only:
-  - dev
-  - /^release\/.*$/
-  - /^(.*\/)?ci-.*$/
-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'
-os: Visual Studio 2017
diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index 66abdf279e0d33e588a54c28e4de44621220da41..0000000000000000000000000000000000000000
--- a/.gitattributes
+++ /dev/null
@@ -1,51 +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
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index c8dd6c52d58a34e63d3d1ff175dd84e0a1408f63..0000000000000000000000000000000000000000
--- a/.gitignore
+++ /dev/null
@@ -1,35 +0,0 @@
-[Oo]bj/
-[Bb]in/
-TestResults/
-.nuget/
-*.sln.ide/
-_ReSharper.*/
-packages/
-artifacts/
-PublishProfiles/
-*.user
-*.suo
-*.cache
-*.docstates
-_ReSharper.*
-nuget.exe
-project.lock.json
-*net45.csproj
-*net451.csproj
-*k10.csproj
-*.psess
-*.vsp
-*.pidb
-*.userprefs
-*DS_Store
-*.ncrunchsolution
-*.*sdf
-*.ipch
-.vs/
-.build/
-.testPublish/
-.idea/
-.vscode/
-*.nuget.props
-*.nuget.targets
-global.json
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 64bdbb4441c431cb5a5774e91fd4e5072c058ce5..0000000000000000000000000000000000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-language: csharp
-sudo: false
-dist: trusty
-env:
-  global:
-  - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
-  - DOTNET_CLI_TELEMETRY_OPTOUT: 1
-mono: none
-os:
-- linux
-- osx
-osx_image: xcode8.2
-addons:
-  apt:
-    packages:
-    - libunwind8
-branches:
-  only:
-  - dev
-  - /^release\/.*$/
-  - /^(.*\/)?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/BasicMiddleware.sln b/BasicMiddleware.sln
deleted file mode 100644
index 8810201f5aee6623dda1f2deb963b20270798dda..0000000000000000000000000000000000000000
--- a/BasicMiddleware.sln
+++ /dev/null
@@ -1,185 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27130.2027
-MinimumVisualStudioVersion = 15.0.26730.03
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.HttpOverrides", "src\Microsoft.AspNetCore.HttpOverrides\Microsoft.AspNetCore.HttpOverrides.csproj", "{517308C3-B477-4B01-B461-CAB9C10B6928}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{A5076D28-FA7E-4606-9410-FEDD0D603527}"
-	ProjectSection(SolutionItems) = preProject
-		src\Directory.Build.props = src\Directory.Build.props
-	EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{8437B0F3-3894-4828-A945-A9187F37631D}"
-	ProjectSection(SolutionItems) = preProject
-		test\Directory.Build.props = test\Directory.Build.props
-	EndProjectSection
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.HttpOverrides.Tests", "test\Microsoft.AspNetCore.HttpOverrides.Tests\Microsoft.AspNetCore.HttpOverrides.Tests.csproj", "{D6341B92-3416-4F11-8DF4-CB274296175F}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Buffering", "src\Microsoft.AspNetCore.Buffering\Microsoft.AspNetCore.Buffering.csproj", "{2363D0DD-A3BF-437E-9B64-B33AE132D875}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Buffering.Tests", "test\Microsoft.AspNetCore.Buffering.Tests\Microsoft.AspNetCore.Buffering.Tests.csproj", "{F5F1D123-9C81-4A9E-8644-AA46B8E578FB}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{9587FE9F-5A17-42C4-8021-E87F59CECB98}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ResponseBufferingSample", "samples\ResponseBufferingSample\ResponseBufferingSample.csproj", "{E5C55B80-7827-40EB-B661-32B0E0E431CA}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HttpOverridesSample", "samples\HttpOverridesSample\HttpOverridesSample.csproj", "{7F95478D-E1D4-4A64-BA42-B041591A96EB}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Rewrite", "src\Microsoft.AspNetCore.Rewrite\Microsoft.AspNetCore.Rewrite.csproj", "{0E7CA1A7-1DC3-4CE6-B9C7-1688FE1410F1}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RewriteSample", "samples\RewriteSample\RewriteSample.csproj", "{9E049645-13BC-4598-89E1-5B43D36E5D14}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Rewrite.Tests", "test\Microsoft.AspNetCore.Rewrite.Tests\Microsoft.AspNetCore.Rewrite.Tests.csproj", "{31794F9E-A1AA-4535-B03C-A3233737CD1A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.ResponseCompression", "src\Microsoft.AspNetCore.ResponseCompression\Microsoft.AspNetCore.ResponseCompression.csproj", "{45308A9D-F4C6-46A8-A24F-E73D995CC223}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.ResponseCompression.Tests", "test\Microsoft.AspNetCore.ResponseCompression.Tests\Microsoft.AspNetCore.ResponseCompression.Tests.csproj", "{3360A5D1-70C0-49EE-9051-04A6A6B836DC}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ResponseCompressionSample", "samples\ResponseCompressionSample\ResponseCompressionSample.csproj", "{B2A3CE38-51B2-4486-982C-98C380AF140E}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{59A9B64C-E9BE-409E-89A2-58D72E2918F5}"
-	ProjectSection(SolutionItems) = preProject
-		.appveyor.yml = .appveyor.yml
-		.gitattributes = .gitattributes
-		.gitignore = .gitignore
-		.travis.yml = .travis.yml
-		build.cmd = build.cmd
-		build.ps1 = build.ps1
-		build.sh = build.sh
-		CONTRIBUTING.md = CONTRIBUTING.md
-		Directory.Build.props = Directory.Build.props
-		Directory.Build.targets = Directory.Build.targets
-		LICENSE.txt = LICENSE.txt
-		NuGet.config = NuGet.config
-		NuGetPackageVerifier.json = NuGetPackageVerifier.json
-		README.md = README.md
-		version.xml = version.xml
-	EndProjectSection
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.HttpsPolicy", "src\Microsoft.AspNetCore.HttpsPolicy\Microsoft.AspNetCore.HttpsPolicy.csproj", "{4D39C29B-4EC8-497C-B411-922DA494D71B}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HttpsPolicySample", "samples\HttpsPolicySample\HttpsPolicySample.csproj", "{AC424AEE-4883-49C6-945F-2FC916B8CA1C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.HttpsPolicy.Tests", "test\Microsoft.AspNetCore.HttpsPolicy.Tests\Microsoft.AspNetCore.HttpsPolicy.Tests.csproj", "{1C67B0F1-6E70-449E-A2F1-98B9D5C576CE}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HostFilteringSample", "samples\HostFilteringSample\HostFilteringSample.csproj", "{368B00A2-992A-4B0E-9085-A8136A22922D}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{5CEA6F31-A829-4A02-8CD5-EC3DDD4CC1EA}"
-	ProjectSection(SolutionItems) = preProject
-		build\dependencies.props = build\dependencies.props
-		build\repo.props = build\repo.props
-		build\sources.props = build\sources.props
-	EndProjectSection
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.HostFiltering.Tests", "test\Microsoft.AspNetCore.HostFiltering.Tests\Microsoft.AspNetCore.HostFiltering.Tests.csproj", "{4BC947ED-13B8-4BE6-82A4-96A48D86980B}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.HostFiltering", "src\Microsoft.AspNetCore.HostFiltering\Microsoft.AspNetCore.HostFiltering.csproj", "{762F7276-C916-4111-A6C0-41668ABB3823}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Any CPU = Debug|Any CPU
-		Release|Any CPU = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{517308C3-B477-4B01-B461-CAB9C10B6928}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{517308C3-B477-4B01-B461-CAB9C10B6928}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{517308C3-B477-4B01-B461-CAB9C10B6928}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{517308C3-B477-4B01-B461-CAB9C10B6928}.Release|Any CPU.Build.0 = Release|Any CPU
-		{D6341B92-3416-4F11-8DF4-CB274296175F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{D6341B92-3416-4F11-8DF4-CB274296175F}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{D6341B92-3416-4F11-8DF4-CB274296175F}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{D6341B92-3416-4F11-8DF4-CB274296175F}.Release|Any CPU.Build.0 = Release|Any CPU
-		{2363D0DD-A3BF-437E-9B64-B33AE132D875}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{2363D0DD-A3BF-437E-9B64-B33AE132D875}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{2363D0DD-A3BF-437E-9B64-B33AE132D875}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{2363D0DD-A3BF-437E-9B64-B33AE132D875}.Release|Any CPU.Build.0 = Release|Any CPU
-		{F5F1D123-9C81-4A9E-8644-AA46B8E578FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{F5F1D123-9C81-4A9E-8644-AA46B8E578FB}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{F5F1D123-9C81-4A9E-8644-AA46B8E578FB}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{F5F1D123-9C81-4A9E-8644-AA46B8E578FB}.Release|Any CPU.Build.0 = Release|Any CPU
-		{E5C55B80-7827-40EB-B661-32B0E0E431CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{E5C55B80-7827-40EB-B661-32B0E0E431CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{E5C55B80-7827-40EB-B661-32B0E0E431CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{E5C55B80-7827-40EB-B661-32B0E0E431CA}.Release|Any CPU.Build.0 = Release|Any CPU
-		{7F95478D-E1D4-4A64-BA42-B041591A96EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{7F95478D-E1D4-4A64-BA42-B041591A96EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{7F95478D-E1D4-4A64-BA42-B041591A96EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{7F95478D-E1D4-4A64-BA42-B041591A96EB}.Release|Any CPU.Build.0 = Release|Any CPU
-		{0E7CA1A7-1DC3-4CE6-B9C7-1688FE1410F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{0E7CA1A7-1DC3-4CE6-B9C7-1688FE1410F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{0E7CA1A7-1DC3-4CE6-B9C7-1688FE1410F1}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{0E7CA1A7-1DC3-4CE6-B9C7-1688FE1410F1}.Release|Any CPU.Build.0 = Release|Any CPU
-		{9E049645-13BC-4598-89E1-5B43D36E5D14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{9E049645-13BC-4598-89E1-5B43D36E5D14}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{9E049645-13BC-4598-89E1-5B43D36E5D14}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{9E049645-13BC-4598-89E1-5B43D36E5D14}.Release|Any CPU.Build.0 = Release|Any CPU
-		{31794F9E-A1AA-4535-B03C-A3233737CD1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{31794F9E-A1AA-4535-B03C-A3233737CD1A}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{31794F9E-A1AA-4535-B03C-A3233737CD1A}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{31794F9E-A1AA-4535-B03C-A3233737CD1A}.Release|Any CPU.Build.0 = Release|Any CPU
-		{45308A9D-F4C6-46A8-A24F-E73D995CC223}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{45308A9D-F4C6-46A8-A24F-E73D995CC223}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{45308A9D-F4C6-46A8-A24F-E73D995CC223}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{45308A9D-F4C6-46A8-A24F-E73D995CC223}.Release|Any CPU.Build.0 = Release|Any CPU
-		{3360A5D1-70C0-49EE-9051-04A6A6B836DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{3360A5D1-70C0-49EE-9051-04A6A6B836DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{3360A5D1-70C0-49EE-9051-04A6A6B836DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{3360A5D1-70C0-49EE-9051-04A6A6B836DC}.Release|Any CPU.Build.0 = Release|Any CPU
-		{B2A3CE38-51B2-4486-982C-98C380AF140E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{B2A3CE38-51B2-4486-982C-98C380AF140E}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{B2A3CE38-51B2-4486-982C-98C380AF140E}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{B2A3CE38-51B2-4486-982C-98C380AF140E}.Release|Any CPU.Build.0 = Release|Any CPU
-		{4D39C29B-4EC8-497C-B411-922DA494D71B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{4D39C29B-4EC8-497C-B411-922DA494D71B}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{4D39C29B-4EC8-497C-B411-922DA494D71B}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{4D39C29B-4EC8-497C-B411-922DA494D71B}.Release|Any CPU.Build.0 = Release|Any CPU
-		{AC424AEE-4883-49C6-945F-2FC916B8CA1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{AC424AEE-4883-49C6-945F-2FC916B8CA1C}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{AC424AEE-4883-49C6-945F-2FC916B8CA1C}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{AC424AEE-4883-49C6-945F-2FC916B8CA1C}.Release|Any CPU.Build.0 = Release|Any CPU
-		{1C67B0F1-6E70-449E-A2F1-98B9D5C576CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{1C67B0F1-6E70-449E-A2F1-98B9D5C576CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{1C67B0F1-6E70-449E-A2F1-98B9D5C576CE}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{1C67B0F1-6E70-449E-A2F1-98B9D5C576CE}.Release|Any CPU.Build.0 = Release|Any CPU
-		{368B00A2-992A-4B0E-9085-A8136A22922D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{368B00A2-992A-4B0E-9085-A8136A22922D}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{368B00A2-992A-4B0E-9085-A8136A22922D}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{368B00A2-992A-4B0E-9085-A8136A22922D}.Release|Any CPU.Build.0 = Release|Any CPU
-		{4BC947ED-13B8-4BE6-82A4-96A48D86980B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{4BC947ED-13B8-4BE6-82A4-96A48D86980B}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{4BC947ED-13B8-4BE6-82A4-96A48D86980B}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{4BC947ED-13B8-4BE6-82A4-96A48D86980B}.Release|Any CPU.Build.0 = Release|Any CPU
-		{762F7276-C916-4111-A6C0-41668ABB3823}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{762F7276-C916-4111-A6C0-41668ABB3823}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{762F7276-C916-4111-A6C0-41668ABB3823}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{762F7276-C916-4111-A6C0-41668ABB3823}.Release|Any CPU.Build.0 = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-	GlobalSection(NestedProjects) = preSolution
-		{517308C3-B477-4B01-B461-CAB9C10B6928} = {A5076D28-FA7E-4606-9410-FEDD0D603527}
-		{D6341B92-3416-4F11-8DF4-CB274296175F} = {8437B0F3-3894-4828-A945-A9187F37631D}
-		{2363D0DD-A3BF-437E-9B64-B33AE132D875} = {A5076D28-FA7E-4606-9410-FEDD0D603527}
-		{F5F1D123-9C81-4A9E-8644-AA46B8E578FB} = {8437B0F3-3894-4828-A945-A9187F37631D}
-		{E5C55B80-7827-40EB-B661-32B0E0E431CA} = {9587FE9F-5A17-42C4-8021-E87F59CECB98}
-		{7F95478D-E1D4-4A64-BA42-B041591A96EB} = {9587FE9F-5A17-42C4-8021-E87F59CECB98}
-		{0E7CA1A7-1DC3-4CE6-B9C7-1688FE1410F1} = {A5076D28-FA7E-4606-9410-FEDD0D603527}
-		{9E049645-13BC-4598-89E1-5B43D36E5D14} = {9587FE9F-5A17-42C4-8021-E87F59CECB98}
-		{31794F9E-A1AA-4535-B03C-A3233737CD1A} = {8437B0F3-3894-4828-A945-A9187F37631D}
-		{45308A9D-F4C6-46A8-A24F-E73D995CC223} = {A5076D28-FA7E-4606-9410-FEDD0D603527}
-		{3360A5D1-70C0-49EE-9051-04A6A6B836DC} = {8437B0F3-3894-4828-A945-A9187F37631D}
-		{B2A3CE38-51B2-4486-982C-98C380AF140E} = {9587FE9F-5A17-42C4-8021-E87F59CECB98}
-		{4D39C29B-4EC8-497C-B411-922DA494D71B} = {A5076D28-FA7E-4606-9410-FEDD0D603527}
-		{AC424AEE-4883-49C6-945F-2FC916B8CA1C} = {9587FE9F-5A17-42C4-8021-E87F59CECB98}
-		{1C67B0F1-6E70-449E-A2F1-98B9D5C576CE} = {8437B0F3-3894-4828-A945-A9187F37631D}
-		{368B00A2-992A-4B0E-9085-A8136A22922D} = {9587FE9F-5A17-42C4-8021-E87F59CECB98}
-		{5CEA6F31-A829-4A02-8CD5-EC3DDD4CC1EA} = {59A9B64C-E9BE-409E-89A2-58D72E2918F5}
-		{4BC947ED-13B8-4BE6-82A4-96A48D86980B} = {8437B0F3-3894-4828-A945-A9187F37631D}
-		{762F7276-C916-4111-A6C0-41668ABB3823} = {A5076D28-FA7E-4606-9410-FEDD0D603527}
-	EndGlobalSection
-	GlobalSection(ExtensibilityGlobals) = postSolution
-		SolutionGuid = {4518E9CE-3680-4E05-9259-B64EA7807158}
-	EndGlobalSection
-EndGlobal
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/Directory.Build.props b/Directory.Build.props
deleted file mode 100644
index 0600ee6c34156b74644d18d6dfb14c524f2bcfe2..0000000000000000000000000000000000000000
--- a/Directory.Build.props
+++ /dev/null
@@ -1,21 +0,0 @@
-<Project>
-  <Import
-    Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), AspNetCoreSettings.props))\AspNetCoreSettings.props"
-    Condition=" '$(CI)' != 'true' AND '$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), AspNetCoreSettings.props))' != '' " />
-
-  <Import Project="version.props" />
-  <Import Project="build\dependencies.props" />
-  <Import Project="build\sources.props" />
-
-  <PropertyGroup>
-    <Product>Microsoft ASP.NET Core</Product>
-    <RepositoryUrl>https://github.com/aspnet/BasicMiddleware</RepositoryUrl>
-    <RepositoryType>git</RepositoryType>
-    <RepositoryRoot>$(MSBuildThisFileDirectory)</RepositoryRoot>
-    <AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)build\Key.snk</AssemblyOriginatorKeyFile>
-    <SignAssembly>true</SignAssembly>
-    <PublicSign Condition="'$(OS)' != 'Windows_NT'">true</PublicSign>
-    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
-  </PropertyGroup>
-
-</Project>
diff --git a/Directory.Build.targets b/Directory.Build.targets
deleted file mode 100644
index 53b3f6e1dabae0bb4e5f8a2cdf3ce1cea06375c1..0000000000000000000000000000000000000000
--- a/Directory.Build.targets
+++ /dev/null
@@ -1,7 +0,0 @@
-<Project>
-  <PropertyGroup>
-    <RuntimeFrameworkVersion Condition=" '$(TargetFramework)' == 'netcoreapp2.0' ">$(MicrosoftNETCoreApp20PackageVersion)</RuntimeFrameworkVersion>
-    <RuntimeFrameworkVersion Condition=" '$(TargetFramework)' == 'netcoreapp2.1' ">$(MicrosoftNETCoreApp21PackageVersion)</RuntimeFrameworkVersion>
-    <NETStandardImplicitPackageVersion Condition=" '$(TargetFramework)' == 'netstandard2.0' ">$(NETStandardLibrary20PackageVersion)</NETStandardImplicitPackageVersion>
-  </PropertyGroup>
-</Project>
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/NuGetPackageVerifier.json b/NuGetPackageVerifier.json
deleted file mode 100644
index b153ab15150d5a8d3d962d47c52261d0373d1ab8..0000000000000000000000000000000000000000
--- a/NuGetPackageVerifier.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-    "Default": {
-        "rules": [
-            "DefaultCompositeRule"
-        ]
-    }
-}
\ No newline at end of file
diff --git a/README.md b/README.md
deleted file mode 100644
index 1ce333f1b4819a9d366d423951ad0165963d0b8f..0000000000000000000000000000000000000000
--- a/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-ASP.NET Core Basic Middleware Components
-========
-
-AppVeyor: [![AppVeyor](https://ci.appveyor.com/api/projects/status/02a73gv9gq02jw0j/branch/dev?svg=true)](https://ci.appveyor.com/project/aspnetci/basicmiddleware/branch/dev)
-
-Travis:   [![Travis](https://travis-ci.org/aspnet/BasicMiddleware.svg?branch=dev)](https://travis-ci.org/aspnet/BasicMiddleware)
-
-This repo hosts a collection of basic middleware components for ASP.NET Core. This includes Buffering, HTTP Overrides, Response Compression, and URL Rewriting. 
-The Rewrite middleware can import rules from IIS's UrlRewrite and Apache's mod_rewrite.
-
-This project is part of ASP.NET Core. You can find samples, documentation and getting started instructions for ASP.NET Core at the [Home](https://github.com/aspnet/home) repo.
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/build/Key.snk b/build/Key.snk
deleted file mode 100644
index e10e4889c125d3120cd9e81582243d70f7cbb806..0000000000000000000000000000000000000000
Binary files a/build/Key.snk and /dev/null differ
diff --git a/build/dependencies.props b/build/dependencies.props
deleted file mode 100644
index 8924c74e64926d76bd9a255a9cec268abbf1e1de..0000000000000000000000000000000000000000
--- a/build/dependencies.props
+++ /dev/null
@@ -1,43 +0,0 @@
-<Project>
-  <PropertyGroup>
-    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
-  </PropertyGroup>
-
-  <!-- These package versions may be overridden or updated by automation. -->
-  <PropertyGroup Label="Package Versions: Auto">
-    <InternalAspNetCoreSdkPackageVersion>2.1.3-rtm-15802</InternalAspNetCoreSdkPackageVersion>
-    <MicrosoftNETCoreApp20PackageVersion>2.0.0</MicrosoftNETCoreApp20PackageVersion>
-    <MicrosoftNETCoreApp21PackageVersion>2.1.2</MicrosoftNETCoreApp21PackageVersion>
-    <MicrosoftNETTestSdkPackageVersion>15.6.1</MicrosoftNETTestSdkPackageVersion>
-    <MoqPackageVersion>4.7.49</MoqPackageVersion>
-    <NETStandardLibrary20PackageVersion>2.0.3</NETStandardLibrary20PackageVersion>
-    <XunitAnalyzersPackageVersion>0.8.0</XunitAnalyzersPackageVersion>
-    <XunitPackageVersion>2.3.1</XunitPackageVersion>
-    <XunitRunnerVisualStudioPackageVersion>2.4.0-beta.1.build3945</XunitRunnerVisualStudioPackageVersion>
-  </PropertyGroup>
-
-  <!-- This may import a generated file which may override the variables above. -->
-  <Import Project="$(DotNetPackageVersionPropsPath)" Condition=" '$(DotNetPackageVersionPropsPath)' != '' " />
-
-  <!-- These are package versions that should not be overridden or updated by automation. -->
-  <PropertyGroup Label="Package Versions: Pinned">
-    <MicrosoftAspNetCoreHostingAbstractionsPackageVersion>2.1.1</MicrosoftAspNetCoreHostingAbstractionsPackageVersion>
-    <MicrosoftAspNetCoreHttpAbstractionsPackageVersion>2.1.1</MicrosoftAspNetCoreHttpAbstractionsPackageVersion>
-    <MicrosoftAspNetCoreHttpExtensionsPackageVersion>2.1.1</MicrosoftAspNetCoreHttpExtensionsPackageVersion>
-    <MicrosoftAspNetCoreHttpPackageVersion>2.1.1</MicrosoftAspNetCoreHttpPackageVersion>
-    <MicrosoftAspNetCoreServerKestrelCorePackageVersion>2.1.2</MicrosoftAspNetCoreServerKestrelCorePackageVersion>
-    <MicrosoftAspNetCoreServerKestrelHttpsPackageVersion>2.1.2</MicrosoftAspNetCoreServerKestrelHttpsPackageVersion>
-    <MicrosoftAspNetCoreServerKestrelPackageVersion>2.1.2</MicrosoftAspNetCoreServerKestrelPackageVersion>
-    <MicrosoftAspNetCoreTestHostPackageVersion>2.1.1</MicrosoftAspNetCoreTestHostPackageVersion>
-    <MicrosoftExtensionsConfigurationAbstractionsPackageVersion>2.1.1</MicrosoftExtensionsConfigurationAbstractionsPackageVersion>
-    <MicrosoftExtensionsConfigurationBinderPackageVersion>2.1.1</MicrosoftExtensionsConfigurationBinderPackageVersion>
-    <MicrosoftExtensionsConfigurationJsonPackageVersion>2.1.1</MicrosoftExtensionsConfigurationJsonPackageVersion>
-    <MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>2.1.1</MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>
-    <MicrosoftExtensionsLoggingAbstractionsPackageVersion>2.1.1</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
-    <MicrosoftExtensionsLoggingConsolePackageVersion>2.1.1</MicrosoftExtensionsLoggingConsolePackageVersion>
-    <MicrosoftExtensionsLoggingTestingPackageVersion>2.1.1</MicrosoftExtensionsLoggingTestingPackageVersion>
-    <MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>2.1.1</MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>
-    <MicrosoftExtensionsOptionsPackageVersion>2.1.1</MicrosoftExtensionsOptionsPackageVersion>
-    <MicrosoftNetHttpHeadersPackageVersion>2.1.1</MicrosoftNetHttpHeadersPackageVersion>
-  </PropertyGroup>
-</Project>
\ No newline at end of file
diff --git a/build/repo.props b/build/repo.props
deleted file mode 100644
index dab1601c883261efea9d7fb6e966ffd86be4bc12..0000000000000000000000000000000000000000
--- a/build/repo.props
+++ /dev/null
@@ -1,15 +0,0 @@
-<Project>
-  <Import Project="dependencies.props" />
-
-  <PropertyGroup>
-    <!-- These properties are use by the automation that updates dependencies.props -->
-    <LineupPackageId>Internal.AspNetCore.Universe.Lineup</LineupPackageId>
-    <LineupPackageVersion>2.1.0-rc1-*</LineupPackageVersion>
-    <LineupPackageRestoreSource>https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json</LineupPackageRestoreSource>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <DotNetCoreRuntime Include="$(MicrosoftNETCoreApp20PackageVersion)" />
-    <DotNetCoreRuntime Include="$(MicrosoftNETCoreApp21PackageVersion)" />
-  </ItemGroup>
-</Project>
diff --git a/build/sources.props b/build/sources.props
deleted file mode 100644
index 9215df9751b4623d725e930464480ecb9a62065d..0000000000000000000000000000000000000000
--- a/build/sources.props
+++ /dev/null
@@ -1,17 +0,0 @@
-<Project>
-  <Import Project="$(DotNetRestoreSourcePropsPath)" Condition="'$(DotNetRestoreSourcePropsPath)' != ''"/>
-
-  <PropertyGroup Label="RestoreSources">
-    <RestoreSources>$(DotNetRestoreSources)</RestoreSources>
-    <RestoreSources Condition="'$(DotNetBuildOffline)' != 'true' AND '$(AspNetUniverseBuildOffline)' != 'true' ">
-      $(RestoreSources);
-      https://dotnet.myget.org/F/dotnet-core/api/v3/index.json;
-      https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json;
-      https://dotnet.myget.org/F/aspnetcore-tools/api/v3/index.json;
-    </RestoreSources>
-    <RestoreSources Condition="'$(DotNetBuildOffline)' != 'true'">
-      $(RestoreSources);
-      https://api.nuget.org/v3/index.json;
-    </RestoreSources>
-  </PropertyGroup>
-</Project>
diff --git a/korebuild-lock.txt b/korebuild-lock.txt
deleted file mode 100644
index 251c227c83e3b220e1cf01419573422bfbf45d24..0000000000000000000000000000000000000000
--- a/korebuild-lock.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-version:2.1.3-rtm-15802
-commithash:a7c08b45b440a7d2058a0aa1eaa3eb6ba811976a
diff --git a/korebuild.json b/korebuild.json
deleted file mode 100644
index 678d8bb94838ea300151a3009963fafafeb01bfd..0000000000000000000000000000000000000000
--- a/korebuild.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "$schema": "https://raw.githubusercontent.com/aspnet/BuildTools/release/2.1/tools/korebuild.schema.json",
-  "channel": "release/2.1"
-}
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 27dcf848f8445f321e7d5ff8667dad07499ea607..0000000000000000000000000000000000000000
--- a/run.ps1
+++ /dev/null
@@ -1,196 +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 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 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/dev/tools/korebuild.schema.json",
-  "channel": "dev",
-  "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,
-    [string]$ConfigFile,
-    [string]$ToolsSourceSuffix,
-    [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 (!(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 'Expand-Archive' -ErrorAction Ignore) {
-                # Use built-in commands where possible as they are cross-plat compatible
-                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-Warning "$ConfigFile could not be read. Its settings will be ignored."
-        Write-Warning $Error[0]
-    }
-}
-
-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 = 'dev' }
-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
-    Invoke-KoreBuildCommand $Command @Arguments
-}
-finally {
-    Remove-Module 'KoreBuild' -ErrorAction Ignore
-}
diff --git a/run.sh b/run.sh
deleted file mode 100755
index 834961fc3a5fecd727170838ce043d604829da6a..0000000000000000000000000000000000000000
--- a/run.sh
+++ /dev/null
@@ -1,231 +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
-repo_path="$DIR"
-channel=''
-tools_source=''
-tools_source_suffix=''
-
-#
-# 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 ""
-    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 [ ! -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
-            ;;
-        --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
-            __warn "$config_file is invalid JSON. Its settings will be ignored."
-        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
-            __warn "$config_file is invalid JSON. Its settings will be ignored."
-        fi
-    else
-        __warn 'Missing required command: jq or pyton. Could not parse the JSON file. Its settings will be ignored.'
-    fi
-
-    [ ! -z "${config_channel:-}" ] && channel="$config_channel"
-    [ ! -z "${config_tools_source:-}" ] && tools_source="$config_tools_source"
-fi
-
-[ -z "$channel" ] && channel='dev'
-[ -z "$tools_source" ] && tools_source='https://aspnetcore.blob.core.windows.net/buildtools'
-
-get_korebuild
-set_korebuildsettings "$tools_source" "$DOTNET_HOME" "$repo_path" "$config_file"
-invoke_korebuild_command "$command" "$@"
diff --git a/samples/HostFilteringSample/HostFilteringSample.csproj b/samples/HostFilteringSample/HostFilteringSample.csproj
deleted file mode 100644
index 7818be1fb04514e311f2d4a77f2155e885d72de4..0000000000000000000000000000000000000000
--- a/samples/HostFilteringSample/HostFilteringSample.csproj
+++ /dev/null
@@ -1,29 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk.Web">
-
-  <PropertyGroup>
-    <TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\..\src\Microsoft.AspNetCore.HostFiltering\Microsoft.AspNetCore.HostFiltering.csproj" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="$(MicrosoftAspNetCoreServerKestrelPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="$(MicrosoftExtensionsConfigurationJsonPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="$(MicrosoftExtensionsLoggingConsolePackageVersion)" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <Content Update="appsettings.Development.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Update="appsettings.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Update="appsettings.Production.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-  </ItemGroup>
-
-</Project>
diff --git a/samples/HttpOverridesSample/HttpOverridesSample.csproj b/samples/HttpOverridesSample/HttpOverridesSample.csproj
deleted file mode 100644
index e966dd09a75a0bf016f1783f63ff5a7f99888cba..0000000000000000000000000000000000000000
--- a/samples/HttpOverridesSample/HttpOverridesSample.csproj
+++ /dev/null
@@ -1,15 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk.Web">
-
-  <PropertyGroup>
-    <TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\..\src\Microsoft.AspNetCore.HttpOverrides\Microsoft.AspNetCore.HttpOverrides.csproj" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="$(MicrosoftAspNetCoreServerKestrelPackageVersion)" />
-  </ItemGroup>
-
-</Project>
diff --git a/samples/HttpsPolicySample/HttpsPolicySample.csproj b/samples/HttpsPolicySample/HttpsPolicySample.csproj
deleted file mode 100644
index fdfa71647842accf1a71d6009c1b6621a7e2b1de..0000000000000000000000000000000000000000
--- a/samples/HttpsPolicySample/HttpsPolicySample.csproj
+++ /dev/null
@@ -1,18 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk.Web">
-
-  <PropertyGroup>
-    <TargetFrameworks>net461;netcoreapp2.0</TargetFrameworks>
-    <TargetFrameworks Condition=" '$(OS)' != 'Windows_NT' ">netcoreapp2.0</TargetFrameworks>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="$(MicrosoftAspNetCoreServerKestrelPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel.Https" Version="$(MicrosoftAspNetCoreServerKestrelHttpsPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="$(MicrosoftExtensionsLoggingConsolePackageVersion)" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\..\src\Microsoft.AspNetCore.HttpsPolicy\Microsoft.AspNetCore.HttpsPolicy.csproj" />
-  </ItemGroup>
-
-</Project>
diff --git a/samples/ResponseBufferingSample/Properties/launchSettings.json b/samples/ResponseBufferingSample/Properties/launchSettings.json
deleted file mode 100644
index 2555984271b5056f57cd42a88b14b4e5cb56b273..0000000000000000000000000000000000000000
--- a/samples/ResponseBufferingSample/Properties/launchSettings.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-  "iisSettings": {
-    "windowsAuthentication": false,
-    "anonymousAuthentication": true,
-    "iisExpress": {
-      "applicationUrl": "http://localhost:49657/",
-      "sslPort": 0
-    }
-  },
-  "profiles": {
-    "IIS Express": {
-      "commandName": "IISExpress",
-      "launchBrowser": true,
-      "environmentVariables": {
-        "ASPNET_ENV": "Development"
-      }
-    },
-    "web": {
-      "commandName": "web",
-      "environmentVariables": {
-        "Hosting:Environment": "Development"
-      }
-    }
-  }
-}
\ No newline at end of file
diff --git a/samples/ResponseBufferingSample/ResponseBufferingSample.csproj b/samples/ResponseBufferingSample/ResponseBufferingSample.csproj
deleted file mode 100644
index b9595a89d8ade65d6a8878a5434d82cceb28e587..0000000000000000000000000000000000000000
--- a/samples/ResponseBufferingSample/ResponseBufferingSample.csproj
+++ /dev/null
@@ -1,15 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk.Web">
-
-  <PropertyGroup>
-    <TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\..\src\Microsoft.AspNetCore.Buffering\Microsoft.AspNetCore.Buffering.csproj" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="$(MicrosoftAspNetCoreServerKestrelPackageVersion)" />
-  </ItemGroup>
-
-</Project>
diff --git a/samples/ResponseBufferingSample/Startup.cs b/samples/ResponseBufferingSample/Startup.cs
deleted file mode 100644
index c2189ad1ee8ed37ce7ad2b547e43f77c6933aab1..0000000000000000000000000000000000000000
--- a/samples/ResponseBufferingSample/Startup.cs
+++ /dev/null
@@ -1,50 +0,0 @@
-using Microsoft.AspNetCore.Builder;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.Http;
-using Microsoft.Extensions.DependencyInjection;
-
-namespace ResponseBufferingSample
-{
-    public class Startup
-    {
-        // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
-        public void ConfigureServices(IServiceCollection services)
-        {
-        }
-
-        public void Configure(IApplicationBuilder app)
-        {
-            app.UseResponseBuffering();
-            app.Run(async (context) =>
-            {
-                // Write some stuff
-                context.Response.ContentType = "text/other";
-                await context.Response.WriteAsync("Hello World!");
-
-                // ... more work ...
-
-                // Something went wrong and we want to replace the response
-                context.Response.StatusCode = 200;
-                context.Response.Headers.Clear();
-                context.Response.Body.SetLength(0);
-
-                // Try again
-                context.Response.ContentType = "text/plain";
-                await context.Response.WriteAsync("Hi Bob!");
-            });
-        }
-
-        // Entry point for the application.
-        public static void Main(string[] args)
-        {
-            var host = new WebHostBuilder()
-                .UseKestrel()
-                // .UseIIS() // This repo can no longer reference IIS because IISIntegration depends on it.
-                .UseStartup<Startup>()
-                .Build();
-
-            host.Run();
-        }
-    }
-}
-
diff --git a/samples/ResponseCompressionSample/ResponseCompressionSample.csproj b/samples/ResponseCompressionSample/ResponseCompressionSample.csproj
deleted file mode 100644
index 2a7f4cfbb76fdaea91b7b65a88cc57b964cb60fb..0000000000000000000000000000000000000000
--- a/samples/ResponseCompressionSample/ResponseCompressionSample.csproj
+++ /dev/null
@@ -1,20 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk.Web">
-
-  <PropertyGroup>
-    <TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <Content Update="testfile1kb.txt" CopyToOutputDirectory="PreserveNewest" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\..\src\Microsoft.AspNetCore.ResponseCompression\Microsoft.AspNetCore.ResponseCompression.csproj" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="$(MicrosoftAspNetCoreServerKestrelPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="$(MicrosoftExtensionsLoggingConsolePackageVersion)" />
-  </ItemGroup>
-
-</Project>
diff --git a/samples/RewriteSample/RewriteSample.csproj b/samples/RewriteSample/RewriteSample.csproj
deleted file mode 100644
index a74fc45b8577a202390c547189172dfd1b08e16a..0000000000000000000000000000000000000000
--- a/samples/RewriteSample/RewriteSample.csproj
+++ /dev/null
@@ -1,16 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk.Web">
-
-  <PropertyGroup>
-    <TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\..\src\Microsoft.AspNetCore.Rewrite\Microsoft.AspNetCore.Rewrite.csproj" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="$(MicrosoftAspNetCoreServerKestrelPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel.Https" Version="$(MicrosoftAspNetCoreServerKestrelHttpsPackageVersion)" />
-  </ItemGroup>
-
-</Project>
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
deleted file mode 100644
index 4b89a431e7f239398aec95bc914cccb5c59e3d3e..0000000000000000000000000000000000000000
--- a/src/Directory.Build.props
+++ /dev/null
@@ -1,7 +0,0 @@
-<Project>
-  <Import Project="..\Directory.Build.props" />
-
-  <ItemGroup>
-    <PackageReference Include="Internal.AspNetCore.Sdk" PrivateAssets="All" Version="$(InternalAspNetCoreSdkPackageVersion)" />
-  </ItemGroup>
-</Project>
diff --git a/src/Microsoft.AspNetCore.Buffering/BufferingWriteStream.cs b/src/Microsoft.AspNetCore.Buffering/BufferingWriteStream.cs
deleted file mode 100644
index db3aacf5ddc8bc5580ed11b490f4f6c5e25fec87..0000000000000000000000000000000000000000
--- a/src/Microsoft.AspNetCore.Buffering/BufferingWriteStream.cs
+++ /dev/null
@@ -1,218 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-using System;
-using System.IO;
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace Microsoft.AspNetCore.Buffering
-{
-    internal class BufferingWriteStream : Stream
-    {
-        private readonly Stream _innerStream;
-        private readonly MemoryStream _buffer = new MemoryStream();
-        private bool _isBuffering = true;
-
-        public BufferingWriteStream(Stream innerStream)
-        {
-            _innerStream = innerStream;
-        }
-
-        public override bool CanRead
-        {
-            get { return false; }
-        }
-
-        public override bool CanSeek
-        {
-            get { return _isBuffering; }
-        }
-
-        public override bool CanWrite
-        {
-            get { return _innerStream.CanWrite; }
-        }
-
-        public override long Length
-        {
-            get
-            {
-                if (_isBuffering)
-                {
-                    return _buffer.Length;
-                }
-                // May throw
-                return _innerStream.Length;
-            }
-        }
-
-        // Clear/Reset the buffer by setting Position, Seek, or SetLength to 0. Random access is not supported.
-        public override long Position
-        {
-            get
-            {
-                if (_isBuffering)
-                {
-                    return _buffer.Position;
-                }
-                // May throw
-                return _innerStream.Position;
-            }
-            set
-            {
-                if (_isBuffering)
-                {
-                    if (value != 0)
-                    {
-                        throw new ArgumentOutOfRangeException(nameof(value), value, nameof(Position) + " can only be set to 0.");
-                    }
-                    _buffer.Position = value;
-                    _buffer.SetLength(value);
-                }
-                else
-                {
-                    // May throw
-                    _innerStream.Position = value;
-                }
-            }
-        }
-
-        // Clear/Reset the buffer by setting Position, Seek, or SetLength to 0. Random access is not supported.
-        public override void SetLength(long value)
-        {
-            if (_isBuffering)
-            {
-                if (value != 0)
-                {
-                    throw new ArgumentOutOfRangeException(nameof(value), value, nameof(Length) + " can only be set to 0.");
-                }
-                _buffer.Position = value;
-                _buffer.SetLength(value);
-            }
-            else
-            {
-                // May throw
-                _innerStream.SetLength(value);
-            }
-        }
-
-        // Clear/Reset the buffer by setting Position, Seek, or SetLength to 0. Random access is not supported.
-        public override long Seek(long offset, SeekOrigin origin)
-        {
-            if (_isBuffering)
-            {
-                if (origin != SeekOrigin.Begin)
-                {
-                    throw new ArgumentException(nameof(origin), nameof(Seek) + " can only be set to " + nameof(SeekOrigin.Begin) + ".");
-                }
-                if (offset != 0)
-                {
-                    throw new ArgumentOutOfRangeException(nameof(offset), offset, nameof(Seek) + " can only be set to 0.");
-                }
-                _buffer.SetLength(offset);
-                return _buffer.Seek(offset, origin);
-            }
-            // Try the inner stream instead, but this will usually fail.
-            return _innerStream.Seek(offset, origin);
-        }
-
-        internal void DisableBuffering()
-        {
-            _isBuffering = false;
-            if (_buffer.Length > 0)
-            {
-                Flush();
-            }
-        }
-
-        internal Task DisableBufferingAsync(CancellationToken cancellationToken)
-        {
-            _isBuffering = false;
-            if (_buffer.Length > 0)
-            {
-                return FlushAsync(cancellationToken);
-            }
-            return Task.CompletedTask;
-        }
-
-        public override void Write(byte[] buffer, int offset, int count)
-        {
-            if (_isBuffering)
-            {
-                _buffer.Write(buffer, offset, count);
-            }
-            else
-            {
-                _innerStream.Write(buffer, offset, count);
-            }
-        }
-
-        public override Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
-        {
-            if (_isBuffering)
-            {
-                return _buffer.WriteAsync(buffer, offset, count, cancellationToken);
-            }
-            else
-            {
-                return _innerStream.WriteAsync(buffer, offset, count, cancellationToken);
-            }
-        }
-
-        public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
-        {
-            if (_isBuffering)
-            {
-                return _buffer.BeginWrite(buffer, offset, count, callback, state);
-            }
-            else
-            {
-                return _innerStream.BeginWrite(buffer, offset, count, callback, state);
-            }
-        }
-
-        public override void EndWrite(IAsyncResult asyncResult)
-        {
-            if (_isBuffering)
-            {
-                _buffer.EndWrite(asyncResult);
-            }
-            else
-            {
-                _innerStream.EndWrite(asyncResult);
-            }
-        }
-
-        public override void Flush()
-        {
-            _isBuffering = false;
-            if (_buffer.Length > 0)
-            {
-                _buffer.Seek(0, SeekOrigin.Begin);
-                _buffer.CopyTo(_innerStream);
-                _buffer.Seek(0, SeekOrigin.Begin);
-                _buffer.SetLength(0);
-            }
-            _innerStream.Flush();
-        }
-
-        public override async Task FlushAsync(CancellationToken cancellationToken)
-        {
-            _isBuffering = false;
-            if (_buffer.Length > 0)
-            {
-                _buffer.Seek(0, SeekOrigin.Begin);
-                await _buffer.CopyToAsync(_innerStream, 1024 * 16, cancellationToken);
-                _buffer.Seek(0, SeekOrigin.Begin);
-                _buffer.SetLength(0);
-            }
-            await _innerStream.FlushAsync(cancellationToken);
-        }
-
-        public override int Read(byte[] buffer, int offset, int count)
-        {
-            throw new NotSupportedException("This Stream only supports Write operations.");
-        }
-    }
-}
diff --git a/src/Microsoft.AspNetCore.Buffering/HttpBufferingFeature.cs b/src/Microsoft.AspNetCore.Buffering/HttpBufferingFeature.cs
deleted file mode 100644
index 746712f5c87ed45786111ad510c39aa321c8efda..0000000000000000000000000000000000000000
--- a/src/Microsoft.AspNetCore.Buffering/HttpBufferingFeature.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-using Microsoft.AspNetCore.Http.Features;
-
-namespace Microsoft.AspNetCore.Buffering
-{
-    internal class HttpBufferingFeature : IHttpBufferingFeature
-    {
-        private readonly BufferingWriteStream _buffer;
-        private readonly IHttpBufferingFeature _innerFeature;
-
-        internal HttpBufferingFeature(BufferingWriteStream buffer, IHttpBufferingFeature innerFeature)
-        {
-            _buffer = buffer;
-            _innerFeature = innerFeature;
-        }
-
-        public void DisableRequestBuffering()
-        {
-            _innerFeature?.DisableRequestBuffering();
-        }
-
-        public void DisableResponseBuffering()
-        {
-            _buffer.DisableBuffering();
-            _innerFeature?.DisableResponseBuffering();
-        }
-    }
-}
diff --git a/src/Microsoft.AspNetCore.Buffering/Microsoft.AspNetCore.Buffering.csproj b/src/Microsoft.AspNetCore.Buffering/Microsoft.AspNetCore.Buffering.csproj
deleted file mode 100644
index 953716c6c119c6c121b599d3557fe2cd2b986bac..0000000000000000000000000000000000000000
--- a/src/Microsoft.AspNetCore.Buffering/Microsoft.AspNetCore.Buffering.csproj
+++ /dev/null
@@ -1,19 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <VersionPrefix Condition="'$(ExperimentalVersionPrefix)' != ''">$(ExperimentalVersionPrefix)</VersionPrefix>
-    <VersionSuffix Condition="'$(ExperimentalVersionSuffix)' != ''">$(ExperimentalVersionSuffix)</VersionSuffix>
-    <VerifyVersion Condition="'$(ExperimentalVersionPrefix)' != ''">false</VerifyVersion>
-    <PackageVersion Condition="'$(ExperimentalPackageVersion)' != ''">$(ExperimentalPackageVersion)</PackageVersion>
-    <Description>ASP.NET Core middleware for buffering response bodies.</Description>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <NoWarn>$(NoWarn);CS1591</NoWarn>
-    <GenerateDocumentationFile>true</GenerateDocumentationFile>
-    <PackageTags>aspnetcore;buffer;buffering</PackageTags>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="$(MicrosoftAspNetCoreHttpAbstractionsPackageVersion)" />
-  </ItemGroup>
-
-</Project>
diff --git a/src/Microsoft.AspNetCore.Buffering/ResponseBufferingMiddleware.cs b/src/Microsoft.AspNetCore.Buffering/ResponseBufferingMiddleware.cs
deleted file mode 100644
index bd5b8e1515f7bfabb2b735d4fa3808db8f908b30..0000000000000000000000000000000000000000
--- a/src/Microsoft.AspNetCore.Buffering/ResponseBufferingMiddleware.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-using System.Threading.Tasks;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Http.Features;
-
-namespace Microsoft.AspNetCore.Buffering
-{
-    public class ResponseBufferingMiddleware
-    {
-        private readonly RequestDelegate _next;
-
-        public ResponseBufferingMiddleware(RequestDelegate next)
-        {
-            _next = next;
-        }
-
-        public async Task Invoke(HttpContext httpContext)
-        {
-            var originalResponseBody = httpContext.Response.Body;
-
-            // no-op if buffering is already available.
-            if (originalResponseBody.CanSeek)
-            {
-                await _next(httpContext);
-                return;
-            }
-
-            var originalBufferingFeature = httpContext.Features.Get<IHttpBufferingFeature>();
-            var originalSendFileFeature = httpContext.Features.Get<IHttpSendFileFeature>();
-            try
-            {
-                // Shim the response stream
-                var bufferStream = new BufferingWriteStream(originalResponseBody);
-                httpContext.Response.Body = bufferStream;
-                httpContext.Features.Set<IHttpBufferingFeature>(new HttpBufferingFeature(bufferStream, originalBufferingFeature));
-                if (originalSendFileFeature != null)
-                {
-                    httpContext.Features.Set<IHttpSendFileFeature>(new SendFileFeatureWrapper(originalSendFileFeature, bufferStream));
-                }
-
-                await _next(httpContext);
-
-                // If we're still buffered, set the content-length header and flush the buffer.
-                // Only if the content-length header is not already set, and some content was buffered.
-                if (!httpContext.Response.HasStarted && bufferStream.CanSeek && bufferStream.Length > 0)
-                {
-                    if (!httpContext.Response.ContentLength.HasValue)
-                    {
-                        httpContext.Response.ContentLength = bufferStream.Length;
-                    }
-                    await bufferStream.FlushAsync();
-                }
-            }
-            finally
-            {
-                // undo everything
-                httpContext.Features.Set(originalBufferingFeature);
-                httpContext.Features.Set(originalSendFileFeature);
-                httpContext.Response.Body = originalResponseBody;
-            }
-        }
-    }
-}
diff --git a/src/Microsoft.AspNetCore.Buffering/ResponseBufferingMiddlewareExtensions.cs b/src/Microsoft.AspNetCore.Buffering/ResponseBufferingMiddlewareExtensions.cs
deleted file mode 100644
index 5092dba3c43f9d88da7438b3a9cf7b067374228d..0000000000000000000000000000000000000000
--- a/src/Microsoft.AspNetCore.Buffering/ResponseBufferingMiddlewareExtensions.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-using Microsoft.AspNetCore.Buffering;
-
-namespace Microsoft.AspNetCore.Builder
-{
-    public static class ResponseBufferingMiddlewareExtensions
-    {
-        /// <summary>
-        /// Enables full buffering of response bodies. This can be disabled on a per request basis using IHttpBufferingFeature.
-        /// </summary>
-        /// <param name="builder"></param>
-        /// <returns></returns>
-        public static IApplicationBuilder UseResponseBuffering(this IApplicationBuilder builder)
-        {
-            return builder.UseMiddleware<ResponseBufferingMiddleware>();
-        }
-    }
-}
diff --git a/src/Microsoft.AspNetCore.Buffering/SendFileFeatureWrapper.cs b/src/Microsoft.AspNetCore.Buffering/SendFileFeatureWrapper.cs
deleted file mode 100644
index 346173e315da930b2513c2d6e08fc8fd8108ac90..0000000000000000000000000000000000000000
--- a/src/Microsoft.AspNetCore.Buffering/SendFileFeatureWrapper.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-using System.Threading;
-using System.Threading.Tasks;
-using Microsoft.AspNetCore.Http.Features;
-
-namespace Microsoft.AspNetCore.Buffering
-{
-    internal class SendFileFeatureWrapper : IHttpSendFileFeature
-    {
-        private readonly IHttpSendFileFeature _originalSendFileFeature;
-        private readonly BufferingWriteStream _bufferStream;
-
-        public SendFileFeatureWrapper(IHttpSendFileFeature originalSendFileFeature, BufferingWriteStream bufferStream)
-        {
-            _originalSendFileFeature = originalSendFileFeature;
-            _bufferStream = bufferStream;
-        }
-
-        // Flush and disable the buffer if anyone tries to call the SendFile feature.
-        public async Task SendFileAsync(string path, long offset, long? length, CancellationToken cancellation)
-        {
-            await _bufferStream.DisableBufferingAsync(cancellation);
-            await _originalSendFileFeature.SendFileAsync(path, offset, length, cancellation);
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/Microsoft.AspNetCore.HostFiltering/Microsoft.AspNetCore.HostFiltering.csproj b/src/Microsoft.AspNetCore.HostFiltering/Microsoft.AspNetCore.HostFiltering.csproj
deleted file mode 100644
index ec6d6423407537dd80495e8cb811bd81b7aa194c..0000000000000000000000000000000000000000
--- a/src/Microsoft.AspNetCore.HostFiltering/Microsoft.AspNetCore.HostFiltering.csproj
+++ /dev/null
@@ -1,18 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <Description>
-      ASP.NET Core middleware for filtering out requests with unknown HTTP host headers.
-    </Description>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <GenerateDocumentationFile>true</GenerateDocumentationFile>
-    <PackageTags>aspnetcore</PackageTags>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Http" Version="$(MicrosoftAspNetCoreHttpAbstractionsPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="$(MicrosoftAspNetCoreHttpExtensionsPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Options" Version="$(MicrosoftExtensionsOptionsPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Hosting.Abstractions" Version="$(MicrosoftAspNetCoreHostingAbstractionsPackageVersion)" /> 
-  </ItemGroup>
-</Project>
diff --git a/src/Microsoft.AspNetCore.HttpsPolicy/Microsoft.AspNetCore.HttpsPolicy.csproj b/src/Microsoft.AspNetCore.HttpsPolicy/Microsoft.AspNetCore.HttpsPolicy.csproj
deleted file mode 100644
index ee7e611a4751b70cce60d7f734f5cf2a4f945af2..0000000000000000000000000000000000000000
--- a/src/Microsoft.AspNetCore.HttpsPolicy/Microsoft.AspNetCore.HttpsPolicy.csproj
+++ /dev/null
@@ -1,20 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <Description>
-      ASP.NET Core basic middleware for supporting HTTPS Redirection and HTTP Strict-Transport-Security.
-    </Description>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <NoWarn>$(NoWarn);CS1591</NoWarn>
-    <GenerateDocumentationFile>true</GenerateDocumentationFile>
-    <PackageTags>aspnetcore;https;hsts</PackageTags>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Http" Version="$(MicrosoftAspNetCoreHttpAbstractionsPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="$(MicrosoftAspNetCoreHttpExtensionsPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="$(MicrosoftExtensionsConfigurationBinderPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Options" Version="$(MicrosoftExtensionsOptionsPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Hosting.Abstractions" Version="$(MicrosoftAspNetCoreHostingAbstractionsPackageVersion)" /> 
-  </ItemGroup>
-</Project>
diff --git a/src/Microsoft.AspNetCore.Rewrite/Microsoft.AspNetCore.Rewrite.csproj b/src/Microsoft.AspNetCore.Rewrite/Microsoft.AspNetCore.Rewrite.csproj
deleted file mode 100644
index 03c3e53b64e8fae1bbc8c7780d03f51f646f6f4d..0000000000000000000000000000000000000000
--- a/src/Microsoft.AspNetCore.Rewrite/Microsoft.AspNetCore.Rewrite.csproj
+++ /dev/null
@@ -1,23 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <Description>ASP.NET Core basic middleware for rewriting URLs. Includes:
-* Support for custom URL rewrite rules
-* Support for running IIS URL Rewrite module rules
-* Support for running Apache mod_rewrite rules.</Description>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <NoWarn>$(NoWarn);CS1591</NoWarn>
-    <GenerateDocumentationFile>true</GenerateDocumentationFile>
-    <PackageTags>aspnetcore;urlrewrite;mod_rewrite</PackageTags>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Hosting.Abstractions" Version="$(MicrosoftAspNetCoreHostingAbstractionsPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="$(MicrosoftAspNetCoreHttpExtensionsPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="$(MicrosoftExtensionsConfigurationAbstractionsPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.FileProviders.Abstractions" Version="$(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="$(MicrosoftExtensionsLoggingAbstractionsPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Options" Version="$(MicrosoftExtensionsOptionsPackageVersion)" />
-  </ItemGroup>
-
-</Project>
diff --git a/src/Middleware/HostFiltering/sample/HostFilteringSample.csproj b/src/Middleware/HostFiltering/sample/HostFilteringSample.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..2bf095937a14f7e470f79714a38de63b76adc739
--- /dev/null
+++ b/src/Middleware/HostFiltering/sample/HostFilteringSample.csproj
@@ -0,0 +1,26 @@
+<Project Sdk="Microsoft.NET.Sdk.Web">
+
+  <PropertyGroup>
+    <TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.HostFiltering" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
+    <Reference Include="Microsoft.Extensions.Configuration.Json" />
+    <Reference Include="Microsoft.Extensions.Logging.Console" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Content Update="appsettings.Development.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Update="appsettings.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Update="appsettings.Production.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+  </ItemGroup>
+
+</Project>
diff --git a/samples/HostFilteringSample/Program.cs b/src/Middleware/HostFiltering/sample/Program.cs
similarity index 100%
rename from samples/HostFilteringSample/Program.cs
rename to src/Middleware/HostFiltering/sample/Program.cs
diff --git a/samples/HostFilteringSample/Properties/launchSettings.json b/src/Middleware/HostFiltering/sample/Properties/launchSettings.json
similarity index 100%
rename from samples/HostFilteringSample/Properties/launchSettings.json
rename to src/Middleware/HostFiltering/sample/Properties/launchSettings.json
diff --git a/samples/HostFilteringSample/Startup.cs b/src/Middleware/HostFiltering/sample/Startup.cs
similarity index 100%
rename from samples/HostFilteringSample/Startup.cs
rename to src/Middleware/HostFiltering/sample/Startup.cs
diff --git a/samples/HostFilteringSample/appsettings.Development.json b/src/Middleware/HostFiltering/sample/appsettings.Development.json
similarity index 100%
rename from samples/HostFilteringSample/appsettings.Development.json
rename to src/Middleware/HostFiltering/sample/appsettings.Development.json
diff --git a/samples/HostFilteringSample/appsettings.Production.json b/src/Middleware/HostFiltering/sample/appsettings.Production.json
similarity index 100%
rename from samples/HostFilteringSample/appsettings.Production.json
rename to src/Middleware/HostFiltering/sample/appsettings.Production.json
diff --git a/samples/HostFilteringSample/appsettings.json b/src/Middleware/HostFiltering/sample/appsettings.json
similarity index 100%
rename from samples/HostFilteringSample/appsettings.json
rename to src/Middleware/HostFiltering/sample/appsettings.json
diff --git a/src/Microsoft.AspNetCore.HostFiltering/HostFilteringBuilderExtensions.cs b/src/Middleware/HostFiltering/src/HostFilteringBuilderExtensions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HostFiltering/HostFilteringBuilderExtensions.cs
rename to src/Middleware/HostFiltering/src/HostFilteringBuilderExtensions.cs
diff --git a/src/Microsoft.AspNetCore.HostFiltering/HostFilteringMiddleware.cs b/src/Middleware/HostFiltering/src/HostFilteringMiddleware.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HostFiltering/HostFilteringMiddleware.cs
rename to src/Middleware/HostFiltering/src/HostFilteringMiddleware.cs
diff --git a/src/Microsoft.AspNetCore.HostFiltering/HostFilteringOptions.cs b/src/Middleware/HostFiltering/src/HostFilteringOptions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HostFiltering/HostFilteringOptions.cs
rename to src/Middleware/HostFiltering/src/HostFilteringOptions.cs
diff --git a/src/Microsoft.AspNetCore.HostFiltering/HostFilteringServicesExtensions.cs b/src/Middleware/HostFiltering/src/HostFilteringServicesExtensions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HostFiltering/HostFilteringServicesExtensions.cs
rename to src/Middleware/HostFiltering/src/HostFilteringServicesExtensions.cs
diff --git a/src/Middleware/HostFiltering/src/Microsoft.AspNetCore.HostFiltering.csproj b/src/Middleware/HostFiltering/src/Microsoft.AspNetCore.HostFiltering.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..a8eb42bb026b7d9eb834e4d5cbdfc8e78a0db4e7
--- /dev/null
+++ b/src/Middleware/HostFiltering/src/Microsoft.AspNetCore.HostFiltering.csproj
@@ -0,0 +1,18 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <Description>
+      ASP.NET Core middleware for filtering out requests with unknown HTTP host headers.
+    </Description>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateDocumentationFile>true</GenerateDocumentationFile>
+    <PackageTags>aspnetcore</PackageTags>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.Http" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.Extensions.Options" />
+    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions" /> 
+  </ItemGroup>
+</Project>
diff --git a/src/Microsoft.AspNetCore.HostFiltering/baseline.netcore.json b/src/Middleware/HostFiltering/src/baseline.netcore.json
similarity index 100%
rename from src/Microsoft.AspNetCore.HostFiltering/baseline.netcore.json
rename to src/Middleware/HostFiltering/src/baseline.netcore.json
diff --git a/test/Microsoft.AspNetCore.HostFiltering.Tests/HostFilteringMiddlewareTests.cs b/src/Middleware/HostFiltering/test/HostFilteringMiddlewareTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.HostFiltering.Tests/HostFilteringMiddlewareTests.cs
rename to src/Middleware/HostFiltering/test/HostFilteringMiddlewareTests.cs
diff --git a/src/Middleware/HostFiltering/test/Microsoft.AspNetCore.HostFiltering.Tests.csproj b/src/Middleware/HostFiltering/test/Microsoft.AspNetCore.HostFiltering.Tests.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..a430a2df2397c19d5ac240d0d85b24f7f52ab402
--- /dev/null
+++ b/src/Middleware/HostFiltering/test/Microsoft.AspNetCore.HostFiltering.Tests.csproj
@@ -0,0 +1,12 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFrameworks>$(StandardTestTfms)</TargetFrameworks>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.HostFiltering" />
+    <Reference Include="Microsoft.Extensions.Options.ConfigurationExtensions" />
+  </ItemGroup>
+
+</Project>
diff --git a/src/Middleware/HttpOverrides/sample/HttpOverridesSample.csproj b/src/Middleware/HttpOverrides/sample/HttpOverridesSample.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..1d5cf506c10ece1224f91feddc4be2c7e984be9a
--- /dev/null
+++ b/src/Middleware/HttpOverrides/sample/HttpOverridesSample.csproj
@@ -0,0 +1,12 @@
+<Project Sdk="Microsoft.NET.Sdk.Web">
+
+  <PropertyGroup>
+    <TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.HttpOverrides" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
+  </ItemGroup>
+
+</Project>
diff --git a/samples/HttpOverridesSample/Properties/launchSettings.json b/src/Middleware/HttpOverrides/sample/Properties/launchSettings.json
similarity index 100%
rename from samples/HttpOverridesSample/Properties/launchSettings.json
rename to src/Middleware/HttpOverrides/sample/Properties/launchSettings.json
diff --git a/samples/HttpOverridesSample/Startup.cs b/src/Middleware/HttpOverrides/sample/Startup.cs
similarity index 100%
rename from samples/HttpOverridesSample/Startup.cs
rename to src/Middleware/HttpOverrides/sample/Startup.cs
diff --git a/src/Microsoft.AspNetCore.HttpOverrides/ForwardedHeaders.cs b/src/Middleware/HttpOverrides/src/ForwardedHeaders.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HttpOverrides/ForwardedHeaders.cs
rename to src/Middleware/HttpOverrides/src/ForwardedHeaders.cs
diff --git a/src/Microsoft.AspNetCore.HttpOverrides/ForwardedHeadersDefaults.cs b/src/Middleware/HttpOverrides/src/ForwardedHeadersDefaults.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HttpOverrides/ForwardedHeadersDefaults.cs
rename to src/Middleware/HttpOverrides/src/ForwardedHeadersDefaults.cs
diff --git a/src/Microsoft.AspNetCore.HttpOverrides/ForwardedHeadersExtensions.cs b/src/Middleware/HttpOverrides/src/ForwardedHeadersExtensions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HttpOverrides/ForwardedHeadersExtensions.cs
rename to src/Middleware/HttpOverrides/src/ForwardedHeadersExtensions.cs
diff --git a/src/Microsoft.AspNetCore.HttpOverrides/ForwardedHeadersMiddleware.cs b/src/Middleware/HttpOverrides/src/ForwardedHeadersMiddleware.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HttpOverrides/ForwardedHeadersMiddleware.cs
rename to src/Middleware/HttpOverrides/src/ForwardedHeadersMiddleware.cs
diff --git a/src/Microsoft.AspNetCore.HttpOverrides/ForwardedHeadersOptions.cs b/src/Middleware/HttpOverrides/src/ForwardedHeadersOptions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HttpOverrides/ForwardedHeadersOptions.cs
rename to src/Middleware/HttpOverrides/src/ForwardedHeadersOptions.cs
diff --git a/src/Microsoft.AspNetCore.HttpOverrides/HttpMethodOverrideExtensions.cs b/src/Middleware/HttpOverrides/src/HttpMethodOverrideExtensions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HttpOverrides/HttpMethodOverrideExtensions.cs
rename to src/Middleware/HttpOverrides/src/HttpMethodOverrideExtensions.cs
diff --git a/src/Microsoft.AspNetCore.HttpOverrides/HttpMethodOverrideMiddleware.cs b/src/Middleware/HttpOverrides/src/HttpMethodOverrideMiddleware.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HttpOverrides/HttpMethodOverrideMiddleware.cs
rename to src/Middleware/HttpOverrides/src/HttpMethodOverrideMiddleware.cs
diff --git a/src/Microsoft.AspNetCore.HttpOverrides/HttpMethodOverrideOptions.cs b/src/Middleware/HttpOverrides/src/HttpMethodOverrideOptions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HttpOverrides/HttpMethodOverrideOptions.cs
rename to src/Middleware/HttpOverrides/src/HttpMethodOverrideOptions.cs
diff --git a/src/Microsoft.AspNetCore.HttpOverrides/IPNetwork.cs b/src/Middleware/HttpOverrides/src/IPNetwork.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HttpOverrides/IPNetwork.cs
rename to src/Middleware/HttpOverrides/src/IPNetwork.cs
diff --git a/src/Microsoft.AspNetCore.HttpOverrides/Internal/IPEndPointParser.cs b/src/Middleware/HttpOverrides/src/Internal/IPEndPointParser.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HttpOverrides/Internal/IPEndPointParser.cs
rename to src/Middleware/HttpOverrides/src/Internal/IPEndPointParser.cs
diff --git a/src/Microsoft.AspNetCore.HttpOverrides/Microsoft.AspNetCore.HttpOverrides.csproj b/src/Middleware/HttpOverrides/src/Microsoft.AspNetCore.HttpOverrides.csproj
similarity index 57%
rename from src/Microsoft.AspNetCore.HttpOverrides/Microsoft.AspNetCore.HttpOverrides.csproj
rename to src/Middleware/HttpOverrides/src/Microsoft.AspNetCore.HttpOverrides.csproj
index c922f7f94f3775e14fade80c23004d4ca164e9b7..11b2130693c4302e7666c769b42af6ab207c80f0 100644
--- a/src/Microsoft.AspNetCore.HttpOverrides/Microsoft.AspNetCore.HttpOverrides.csproj
+++ b/src/Middleware/HttpOverrides/src/Microsoft.AspNetCore.HttpOverrides.csproj
@@ -11,9 +11,9 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="$(MicrosoftAspNetCoreHttpExtensionsPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="$(MicrosoftExtensionsLoggingAbstractionsPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Options" Version="$(MicrosoftExtensionsOptionsPackageVersion)" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
   </ItemGroup>
 
 </Project>
diff --git a/src/Microsoft.AspNetCore.HttpOverrides/baseline.net45.json b/src/Middleware/HttpOverrides/src/baseline.net45.json
similarity index 100%
rename from src/Microsoft.AspNetCore.HttpOverrides/baseline.net45.json
rename to src/Middleware/HttpOverrides/src/baseline.net45.json
diff --git a/src/Microsoft.AspNetCore.HttpOverrides/baseline.netcore.json b/src/Middleware/HttpOverrides/src/baseline.netcore.json
similarity index 100%
rename from src/Microsoft.AspNetCore.HttpOverrides/baseline.netcore.json
rename to src/Middleware/HttpOverrides/src/baseline.netcore.json
diff --git a/test/Microsoft.AspNetCore.HttpOverrides.Tests/ForwardedHeadersMiddlewareTest.cs b/src/Middleware/HttpOverrides/test/ForwardedHeadersMiddlewareTest.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.HttpOverrides.Tests/ForwardedHeadersMiddlewareTest.cs
rename to src/Middleware/HttpOverrides/test/ForwardedHeadersMiddlewareTest.cs
diff --git a/test/Microsoft.AspNetCore.HttpOverrides.Tests/HttpMethodOverrideMiddlewareTest.cs b/src/Middleware/HttpOverrides/test/HttpMethodOverrideMiddlewareTest.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.HttpOverrides.Tests/HttpMethodOverrideMiddlewareTest.cs
rename to src/Middleware/HttpOverrides/test/HttpMethodOverrideMiddlewareTest.cs
diff --git a/test/Microsoft.AspNetCore.HttpOverrides.Tests/IPEndPointParserTest.cs b/src/Middleware/HttpOverrides/test/IPEndPointParserTest.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.HttpOverrides.Tests/IPEndPointParserTest.cs
rename to src/Middleware/HttpOverrides/test/IPEndPointParserTest.cs
diff --git a/test/Microsoft.AspNetCore.HttpOverrides.Tests/IPNetworkTest.cs b/src/Middleware/HttpOverrides/test/IPNetworkTest.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.HttpOverrides.Tests/IPNetworkTest.cs
rename to src/Middleware/HttpOverrides/test/IPNetworkTest.cs
diff --git a/test/Microsoft.AspNetCore.Buffering.Tests/Microsoft.AspNetCore.Buffering.Tests.csproj b/src/Middleware/HttpOverrides/test/Microsoft.AspNetCore.HttpOverrides.Tests.csproj
similarity index 58%
rename from test/Microsoft.AspNetCore.Buffering.Tests/Microsoft.AspNetCore.Buffering.Tests.csproj
rename to src/Middleware/HttpOverrides/test/Microsoft.AspNetCore.HttpOverrides.Tests.csproj
index 5f8209ea44b148bc44675bff1a043acb9c378774..880dffd329bfadfaee69c38822c04a49a3cbe9d0 100644
--- a/test/Microsoft.AspNetCore.Buffering.Tests/Microsoft.AspNetCore.Buffering.Tests.csproj
+++ b/src/Middleware/HttpOverrides/test/Microsoft.AspNetCore.HttpOverrides.Tests.csproj
@@ -5,7 +5,8 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <ProjectReference Include="..\..\src\Microsoft.AspNetCore.Buffering\Microsoft.AspNetCore.Buffering.csproj" />
+    <Reference Include="Microsoft.AspNetCore.HttpOverrides" />
+    <Reference Include="Microsoft.Extensions.Logging.Testing" />
   </ItemGroup>
 
 </Project>
diff --git a/src/Middleware/HttpsPolicy/sample/HttpsPolicySample.csproj b/src/Middleware/HttpsPolicy/sample/HttpsPolicySample.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..3bbe805f9f314e16a97c6c08077faf7d8439deee
--- /dev/null
+++ b/src/Middleware/HttpsPolicy/sample/HttpsPolicySample.csproj
@@ -0,0 +1,14 @@
+<Project Sdk="Microsoft.NET.Sdk.Web">
+
+  <PropertyGroup>
+    <TargetFrameworks>net461;netcoreapp2.0</TargetFrameworks>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Https" />
+    <Reference Include="Microsoft.Extensions.Logging.Console" />
+    <Reference Include="Microsoft.AspNetCore.HttpsPolicy" />
+  </ItemGroup>
+
+</Project>
diff --git a/samples/HttpsPolicySample/Properties/launchSettings.json b/src/Middleware/HttpsPolicy/sample/Properties/launchSettings.json
similarity index 100%
rename from samples/HttpsPolicySample/Properties/launchSettings.json
rename to src/Middleware/HttpsPolicy/sample/Properties/launchSettings.json
diff --git a/samples/HttpsPolicySample/Startup.cs b/src/Middleware/HttpsPolicy/sample/Startup.cs
similarity index 100%
rename from samples/HttpsPolicySample/Startup.cs
rename to src/Middleware/HttpsPolicy/sample/Startup.cs
diff --git a/samples/HttpsPolicySample/testCert.pfx b/src/Middleware/HttpsPolicy/sample/testCert.pfx
similarity index 100%
rename from samples/HttpsPolicySample/testCert.pfx
rename to src/Middleware/HttpsPolicy/sample/testCert.pfx
diff --git a/src/Microsoft.AspNetCore.HttpsPolicy/HstsBuilderExtensions.cs b/src/Middleware/HttpsPolicy/src/HstsBuilderExtensions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HttpsPolicy/HstsBuilderExtensions.cs
rename to src/Middleware/HttpsPolicy/src/HstsBuilderExtensions.cs
diff --git a/src/Microsoft.AspNetCore.HttpsPolicy/HstsMiddleware.cs b/src/Middleware/HttpsPolicy/src/HstsMiddleware.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HttpsPolicy/HstsMiddleware.cs
rename to src/Middleware/HttpsPolicy/src/HstsMiddleware.cs
diff --git a/src/Microsoft.AspNetCore.HttpsPolicy/HstsOptions.cs b/src/Middleware/HttpsPolicy/src/HstsOptions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HttpsPolicy/HstsOptions.cs
rename to src/Middleware/HttpsPolicy/src/HstsOptions.cs
diff --git a/src/Microsoft.AspNetCore.HttpsPolicy/HstsServicesExtensions.cs b/src/Middleware/HttpsPolicy/src/HstsServicesExtensions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HttpsPolicy/HstsServicesExtensions.cs
rename to src/Middleware/HttpsPolicy/src/HstsServicesExtensions.cs
diff --git a/src/Microsoft.AspNetCore.HttpsPolicy/HttpsRedirectionBuilderExtensions.cs b/src/Middleware/HttpsPolicy/src/HttpsRedirectionBuilderExtensions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HttpsPolicy/HttpsRedirectionBuilderExtensions.cs
rename to src/Middleware/HttpsPolicy/src/HttpsRedirectionBuilderExtensions.cs
diff --git a/src/Microsoft.AspNetCore.HttpsPolicy/HttpsRedirectionMiddleware.cs b/src/Middleware/HttpsPolicy/src/HttpsRedirectionMiddleware.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HttpsPolicy/HttpsRedirectionMiddleware.cs
rename to src/Middleware/HttpsPolicy/src/HttpsRedirectionMiddleware.cs
diff --git a/src/Microsoft.AspNetCore.HttpsPolicy/HttpsRedirectionOptions.cs b/src/Middleware/HttpsPolicy/src/HttpsRedirectionOptions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HttpsPolicy/HttpsRedirectionOptions.cs
rename to src/Middleware/HttpsPolicy/src/HttpsRedirectionOptions.cs
diff --git a/src/Microsoft.AspNetCore.HttpsPolicy/HttpsRedirectionServicesExtensions.cs b/src/Middleware/HttpsPolicy/src/HttpsRedirectionServicesExtensions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HttpsPolicy/HttpsRedirectionServicesExtensions.cs
rename to src/Middleware/HttpsPolicy/src/HttpsRedirectionServicesExtensions.cs
diff --git a/src/Middleware/HttpsPolicy/src/Microsoft.AspNetCore.HttpsPolicy.csproj b/src/Middleware/HttpsPolicy/src/Microsoft.AspNetCore.HttpsPolicy.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..f367ea28ccb12464eff1c2319dfeb82e2ac7b2f7
--- /dev/null
+++ b/src/Middleware/HttpsPolicy/src/Microsoft.AspNetCore.HttpsPolicy.csproj
@@ -0,0 +1,20 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <Description>
+      ASP.NET Core basic middleware for supporting HTTPS Redirection and HTTP Strict-Transport-Security.
+    </Description>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <NoWarn>$(NoWarn);CS1591</NoWarn>
+    <GenerateDocumentationFile>true</GenerateDocumentationFile>
+    <PackageTags>aspnetcore;https;hsts</PackageTags>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.Http" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.Extensions.Configuration.Binder" />
+    <Reference Include="Microsoft.Extensions.Options" />
+    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions" /> 
+  </ItemGroup>
+</Project>
diff --git a/src/Microsoft.AspNetCore.HttpsPolicy/baseline.netcore.json b/src/Middleware/HttpsPolicy/src/baseline.netcore.json
similarity index 100%
rename from src/Microsoft.AspNetCore.HttpsPolicy/baseline.netcore.json
rename to src/Middleware/HttpsPolicy/src/baseline.netcore.json
diff --git a/src/Microsoft.AspNetCore.HttpsPolicy/internal/HttpsLoggingExtensions.cs b/src/Middleware/HttpsPolicy/src/internal/HttpsLoggingExtensions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.HttpsPolicy/internal/HttpsLoggingExtensions.cs
rename to src/Middleware/HttpsPolicy/src/internal/HttpsLoggingExtensions.cs
diff --git a/test/Microsoft.AspNetCore.HttpsPolicy.Tests/HstsMiddlewareTests.cs b/src/Middleware/HttpsPolicy/test/HstsMiddlewareTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.HttpsPolicy.Tests/HstsMiddlewareTests.cs
rename to src/Middleware/HttpsPolicy/test/HstsMiddlewareTests.cs
diff --git a/test/Microsoft.AspNetCore.HttpsPolicy.Tests/HttpsPolicyTests.cs b/src/Middleware/HttpsPolicy/test/HttpsPolicyTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.HttpsPolicy.Tests/HttpsPolicyTests.cs
rename to src/Middleware/HttpsPolicy/test/HttpsPolicyTests.cs
diff --git a/test/Microsoft.AspNetCore.HttpsPolicy.Tests/HttpsRedirectionMiddlewareTests.cs b/src/Middleware/HttpsPolicy/test/HttpsRedirectionMiddlewareTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.HttpsPolicy.Tests/HttpsRedirectionMiddlewareTests.cs
rename to src/Middleware/HttpsPolicy/test/HttpsRedirectionMiddlewareTests.cs
diff --git a/test/Microsoft.AspNetCore.HttpsPolicy.Tests/Microsoft.AspNetCore.HttpsPolicy.Tests.csproj b/src/Middleware/HttpsPolicy/test/Microsoft.AspNetCore.HttpsPolicy.Tests.csproj
similarity index 50%
rename from test/Microsoft.AspNetCore.HttpsPolicy.Tests/Microsoft.AspNetCore.HttpsPolicy.Tests.csproj
rename to src/Middleware/HttpsPolicy/test/Microsoft.AspNetCore.HttpsPolicy.Tests.csproj
index e51e3a6640d0908a5412f97209ad9a5fe29b9dfb..097990a99a4ac50db9ada5311e1e34788efc7a14 100644
--- a/test/Microsoft.AspNetCore.HttpsPolicy.Tests/Microsoft.AspNetCore.HttpsPolicy.Tests.csproj
+++ b/src/Middleware/HttpsPolicy/test/Microsoft.AspNetCore.HttpsPolicy.Tests.csproj
@@ -6,10 +6,7 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <ProjectReference Include="..\..\src\Microsoft.AspNetCore.HttpsPolicy\Microsoft.AspNetCore.HttpsPolicy.csproj" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.Extensions.Logging.Testing" Version="$(MicrosoftExtensionsLoggingTestingPackageVersion)" />
+    <Reference Include="Microsoft.AspNetCore.HttpsPolicy" />
+    <Reference Include="Microsoft.Extensions.Logging.Testing" />
   </ItemGroup>
 </Project>
diff --git a/samples/ResponseCompressionSample/CustomCompressionProvider.cs b/src/Middleware/ResponseCompression/sample/CustomCompressionProvider.cs
similarity index 100%
rename from samples/ResponseCompressionSample/CustomCompressionProvider.cs
rename to src/Middleware/ResponseCompression/sample/CustomCompressionProvider.cs
diff --git a/samples/ResponseCompressionSample/LoremIpsum.cs b/src/Middleware/ResponseCompression/sample/LoremIpsum.cs
similarity index 100%
rename from samples/ResponseCompressionSample/LoremIpsum.cs
rename to src/Middleware/ResponseCompression/sample/LoremIpsum.cs
diff --git a/samples/ResponseCompressionSample/Properties/launchSettings.json b/src/Middleware/ResponseCompression/sample/Properties/launchSettings.json
similarity index 100%
rename from samples/ResponseCompressionSample/Properties/launchSettings.json
rename to src/Middleware/ResponseCompression/sample/Properties/launchSettings.json
diff --git a/src/Middleware/ResponseCompression/sample/ResponseCompressionSample.csproj b/src/Middleware/ResponseCompression/sample/ResponseCompressionSample.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..c9aa982896d675f3bd24cce83ffd3eecbaca601c
--- /dev/null
+++ b/src/Middleware/ResponseCompression/sample/ResponseCompressionSample.csproj
@@ -0,0 +1,17 @@
+<Project Sdk="Microsoft.NET.Sdk.Web">
+
+  <PropertyGroup>
+    <TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Content Update="testfile1kb.txt" CopyToOutputDirectory="PreserveNewest" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.ResponseCompression" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
+    <Reference Include="Microsoft.Extensions.Logging.Console" />
+  </ItemGroup>
+
+</Project>
diff --git a/samples/ResponseCompressionSample/Startup.cs b/src/Middleware/ResponseCompression/sample/Startup.cs
similarity index 100%
rename from samples/ResponseCompressionSample/Startup.cs
rename to src/Middleware/ResponseCompression/sample/Startup.cs
diff --git a/samples/ResponseCompressionSample/testfile1kb.txt b/src/Middleware/ResponseCompression/sample/testfile1kb.txt
similarity index 100%
rename from samples/ResponseCompressionSample/testfile1kb.txt
rename to src/Middleware/ResponseCompression/sample/testfile1kb.txt
diff --git a/src/Microsoft.AspNetCore.ResponseCompression/BodyWrapperStream.cs b/src/Middleware/ResponseCompression/src/BodyWrapperStream.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.ResponseCompression/BodyWrapperStream.cs
rename to src/Middleware/ResponseCompression/src/BodyWrapperStream.cs
diff --git a/src/Microsoft.AspNetCore.ResponseCompression/CompressionProviderCollection.cs b/src/Middleware/ResponseCompression/src/CompressionProviderCollection.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.ResponseCompression/CompressionProviderCollection.cs
rename to src/Middleware/ResponseCompression/src/CompressionProviderCollection.cs
diff --git a/src/Microsoft.AspNetCore.ResponseCompression/CompressionProviderFactory.cs b/src/Middleware/ResponseCompression/src/CompressionProviderFactory.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.ResponseCompression/CompressionProviderFactory.cs
rename to src/Middleware/ResponseCompression/src/CompressionProviderFactory.cs
diff --git a/src/Microsoft.AspNetCore.ResponseCompression/GzipCompressionProvider.cs b/src/Middleware/ResponseCompression/src/GzipCompressionProvider.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.ResponseCompression/GzipCompressionProvider.cs
rename to src/Middleware/ResponseCompression/src/GzipCompressionProvider.cs
diff --git a/src/Microsoft.AspNetCore.ResponseCompression/GzipCompressionProviderOptions.cs b/src/Middleware/ResponseCompression/src/GzipCompressionProviderOptions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.ResponseCompression/GzipCompressionProviderOptions.cs
rename to src/Middleware/ResponseCompression/src/GzipCompressionProviderOptions.cs
diff --git a/src/Microsoft.AspNetCore.ResponseCompression/ICompressionProvider.cs b/src/Middleware/ResponseCompression/src/ICompressionProvider.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.ResponseCompression/ICompressionProvider.cs
rename to src/Middleware/ResponseCompression/src/ICompressionProvider.cs
diff --git a/src/Microsoft.AspNetCore.ResponseCompression/IResponseCompressionProvider.cs b/src/Middleware/ResponseCompression/src/IResponseCompressionProvider.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.ResponseCompression/IResponseCompressionProvider.cs
rename to src/Middleware/ResponseCompression/src/IResponseCompressionProvider.cs
diff --git a/src/Microsoft.AspNetCore.ResponseCompression/Microsoft.AspNetCore.ResponseCompression.csproj b/src/Middleware/ResponseCompression/src/Microsoft.AspNetCore.ResponseCompression.csproj
similarity index 59%
rename from src/Microsoft.AspNetCore.ResponseCompression/Microsoft.AspNetCore.ResponseCompression.csproj
rename to src/Middleware/ResponseCompression/src/Microsoft.AspNetCore.ResponseCompression.csproj
index e6529613221cf48aa335b531d02523686d289653..1b20b7b4a9115e239e415b08cde785e7414d6bdd 100644
--- a/src/Microsoft.AspNetCore.ResponseCompression/Microsoft.AspNetCore.ResponseCompression.csproj
+++ b/src/Middleware/ResponseCompression/src/Microsoft.AspNetCore.ResponseCompression.csproj
@@ -8,8 +8,8 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="$(MicrosoftAspNetCoreHttpExtensionsPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Options" Version="$(MicrosoftExtensionsOptionsPackageVersion)" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.Extensions.Options" />
   </ItemGroup>
 
 </Project>
diff --git a/src/Microsoft.AspNetCore.ResponseCompression/Properties/AssemblyInfo.cs b/src/Middleware/ResponseCompression/src/Properties/AssemblyInfo.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.ResponseCompression/Properties/AssemblyInfo.cs
rename to src/Middleware/ResponseCompression/src/Properties/AssemblyInfo.cs
diff --git a/src/Microsoft.AspNetCore.ResponseCompression/ResponseCompressionBuilderExtensions.cs b/src/Middleware/ResponseCompression/src/ResponseCompressionBuilderExtensions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.ResponseCompression/ResponseCompressionBuilderExtensions.cs
rename to src/Middleware/ResponseCompression/src/ResponseCompressionBuilderExtensions.cs
diff --git a/src/Microsoft.AspNetCore.ResponseCompression/ResponseCompressionDefaults.cs b/src/Middleware/ResponseCompression/src/ResponseCompressionDefaults.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.ResponseCompression/ResponseCompressionDefaults.cs
rename to src/Middleware/ResponseCompression/src/ResponseCompressionDefaults.cs
diff --git a/src/Microsoft.AspNetCore.ResponseCompression/ResponseCompressionMiddleware.cs b/src/Middleware/ResponseCompression/src/ResponseCompressionMiddleware.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.ResponseCompression/ResponseCompressionMiddleware.cs
rename to src/Middleware/ResponseCompression/src/ResponseCompressionMiddleware.cs
diff --git a/src/Microsoft.AspNetCore.ResponseCompression/ResponseCompressionOptions.cs b/src/Middleware/ResponseCompression/src/ResponseCompressionOptions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.ResponseCompression/ResponseCompressionOptions.cs
rename to src/Middleware/ResponseCompression/src/ResponseCompressionOptions.cs
diff --git a/src/Microsoft.AspNetCore.ResponseCompression/ResponseCompressionProvider.cs b/src/Middleware/ResponseCompression/src/ResponseCompressionProvider.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.ResponseCompression/ResponseCompressionProvider.cs
rename to src/Middleware/ResponseCompression/src/ResponseCompressionProvider.cs
diff --git a/src/Microsoft.AspNetCore.ResponseCompression/ResponseCompressionServicesExtensions.cs b/src/Middleware/ResponseCompression/src/ResponseCompressionServicesExtensions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.ResponseCompression/ResponseCompressionServicesExtensions.cs
rename to src/Middleware/ResponseCompression/src/ResponseCompressionServicesExtensions.cs
diff --git a/src/Microsoft.AspNetCore.ResponseCompression/baseline.netcore.json b/src/Middleware/ResponseCompression/src/baseline.netcore.json
similarity index 100%
rename from src/Microsoft.AspNetCore.ResponseCompression/baseline.netcore.json
rename to src/Middleware/ResponseCompression/src/baseline.netcore.json
diff --git a/src/Microsoft.AspNetCore.ResponseCompression/baseline.netframework.json b/src/Middleware/ResponseCompression/src/baseline.netframework.json
similarity index 100%
rename from src/Microsoft.AspNetCore.ResponseCompression/baseline.netframework.json
rename to src/Middleware/ResponseCompression/src/baseline.netframework.json
diff --git a/test/Microsoft.AspNetCore.ResponseCompression.Tests/BodyWrapperStreamTests.cs b/src/Middleware/ResponseCompression/test/BodyWrapperStreamTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.ResponseCompression.Tests/BodyWrapperStreamTests.cs
rename to src/Middleware/ResponseCompression/test/BodyWrapperStreamTests.cs
diff --git a/src/Middleware/ResponseCompression/test/Microsoft.AspNetCore.ResponseCompression.Tests.csproj b/src/Middleware/ResponseCompression/test/Microsoft.AspNetCore.ResponseCompression.Tests.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..47cadb7eeb23666b5837435934d318386c20f3dd
--- /dev/null
+++ b/src/Middleware/ResponseCompression/test/Microsoft.AspNetCore.ResponseCompression.Tests.csproj
@@ -0,0 +1,18 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFrameworks>$(StandardTestTfms)</TargetFrameworks>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Content Include="testfile1kb.txt" CopyToOutputDirectory="PreserveNewest" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.ResponseCompression" />
+    <Reference Include="Microsoft.AspNetCore.Http" />
+    <Reference Include="Microsoft.Net.Http.Headers" />
+    <Reference Include="Moq" />
+  </ItemGroup>
+
+</Project>
diff --git a/test/Microsoft.AspNetCore.ResponseCompression.Tests/ResponseCompressionMiddlewareTest.cs b/src/Middleware/ResponseCompression/test/ResponseCompressionMiddlewareTest.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.ResponseCompression.Tests/ResponseCompressionMiddlewareTest.cs
rename to src/Middleware/ResponseCompression/test/ResponseCompressionMiddlewareTest.cs
diff --git a/test/Microsoft.AspNetCore.ResponseCompression.Tests/testfile1kb.txt b/src/Middleware/ResponseCompression/test/testfile1kb.txt
similarity index 100%
rename from test/Microsoft.AspNetCore.ResponseCompression.Tests/testfile1kb.txt
rename to src/Middleware/ResponseCompression/test/testfile1kb.txt
diff --git a/samples/RewriteSample/Properties/launchSettings.json b/src/Middleware/Rewrite/sample/Properties/launchSettings.json
similarity index 100%
rename from samples/RewriteSample/Properties/launchSettings.json
rename to src/Middleware/Rewrite/sample/Properties/launchSettings.json
diff --git a/samples/RewriteSample/Rewrite.txt b/src/Middleware/Rewrite/sample/Rewrite.txt
similarity index 100%
rename from samples/RewriteSample/Rewrite.txt
rename to src/Middleware/Rewrite/sample/Rewrite.txt
diff --git a/src/Middleware/Rewrite/sample/RewriteSample.csproj b/src/Middleware/Rewrite/sample/RewriteSample.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..310e7d676a15b350404c326846df9db44c1d96c9
--- /dev/null
+++ b/src/Middleware/Rewrite/sample/RewriteSample.csproj
@@ -0,0 +1,13 @@
+<Project Sdk="Microsoft.NET.Sdk.Web">
+
+  <PropertyGroup>
+    <TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.Rewrite" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel.Https" />
+  </ItemGroup>
+
+</Project>
diff --git a/samples/RewriteSample/Startup.cs b/src/Middleware/Rewrite/sample/Startup.cs
similarity index 100%
rename from samples/RewriteSample/Startup.cs
rename to src/Middleware/Rewrite/sample/Startup.cs
diff --git a/samples/RewriteSample/UrlRewrite.xml b/src/Middleware/Rewrite/sample/UrlRewrite.xml
similarity index 100%
rename from samples/RewriteSample/UrlRewrite.xml
rename to src/Middleware/Rewrite/sample/UrlRewrite.xml
diff --git a/samples/RewriteSample/testCert.pfx b/src/Middleware/Rewrite/sample/testCert.pfx
similarity index 100%
rename from samples/RewriteSample/testCert.pfx
rename to src/Middleware/Rewrite/sample/testCert.pfx
diff --git a/src/Microsoft.AspNetCore.Rewrite/ApacheModRewriteOptionsExtensions.cs b/src/Middleware/Rewrite/src/ApacheModRewriteOptionsExtensions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/ApacheModRewriteOptionsExtensions.cs
rename to src/Middleware/Rewrite/src/ApacheModRewriteOptionsExtensions.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Extensions/RewriteMiddlewareLoggingExtensions.cs b/src/Middleware/Rewrite/src/Extensions/RewriteMiddlewareLoggingExtensions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Extensions/RewriteMiddlewareLoggingExtensions.cs
rename to src/Middleware/Rewrite/src/Extensions/RewriteMiddlewareLoggingExtensions.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/IISUrlRewriteOptionsExtensions.cs b/src/Middleware/Rewrite/src/IISUrlRewriteOptionsExtensions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/IISUrlRewriteOptionsExtensions.cs
rename to src/Middleware/Rewrite/src/IISUrlRewriteOptionsExtensions.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/IRule.cs b/src/Middleware/Rewrite/src/IRule.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/IRule.cs
rename to src/Middleware/Rewrite/src/IRule.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/ApacheModRewriteRule.cs b/src/Middleware/Rewrite/src/Internal/ApacheModRewrite/ApacheModRewriteRule.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/ApacheModRewriteRule.cs
rename to src/Middleware/Rewrite/src/Internal/ApacheModRewrite/ApacheModRewriteRule.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/Condition.cs b/src/Middleware/Rewrite/src/Internal/ApacheModRewrite/Condition.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/Condition.cs
rename to src/Middleware/Rewrite/src/Internal/ApacheModRewrite/Condition.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/ConditionEvaluator.cs b/src/Middleware/Rewrite/src/Internal/ApacheModRewrite/ConditionEvaluator.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/ConditionEvaluator.cs
rename to src/Middleware/Rewrite/src/Internal/ApacheModRewrite/ConditionEvaluator.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/ConditionPatternParser.cs b/src/Middleware/Rewrite/src/Internal/ApacheModRewrite/ConditionPatternParser.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/ConditionPatternParser.cs
rename to src/Middleware/Rewrite/src/Internal/ApacheModRewrite/ConditionPatternParser.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/ConditionType.cs b/src/Middleware/Rewrite/src/Internal/ApacheModRewrite/ConditionType.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/ConditionType.cs
rename to src/Middleware/Rewrite/src/Internal/ApacheModRewrite/ConditionType.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/CookieActionFactory.cs b/src/Middleware/Rewrite/src/Internal/ApacheModRewrite/CookieActionFactory.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/CookieActionFactory.cs
rename to src/Middleware/Rewrite/src/Internal/ApacheModRewrite/CookieActionFactory.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/FileParser.cs b/src/Middleware/Rewrite/src/Internal/ApacheModRewrite/FileParser.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/FileParser.cs
rename to src/Middleware/Rewrite/src/Internal/ApacheModRewrite/FileParser.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/FlagParser.cs b/src/Middleware/Rewrite/src/Internal/ApacheModRewrite/FlagParser.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/FlagParser.cs
rename to src/Middleware/Rewrite/src/Internal/ApacheModRewrite/FlagParser.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/FlagType.cs b/src/Middleware/Rewrite/src/Internal/ApacheModRewrite/FlagType.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/FlagType.cs
rename to src/Middleware/Rewrite/src/Internal/ApacheModRewrite/FlagType.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/Flags.cs b/src/Middleware/Rewrite/src/Internal/ApacheModRewrite/Flags.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/Flags.cs
rename to src/Middleware/Rewrite/src/Internal/ApacheModRewrite/Flags.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/OperationType.cs b/src/Middleware/Rewrite/src/Internal/ApacheModRewrite/OperationType.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/OperationType.cs
rename to src/Middleware/Rewrite/src/Internal/ApacheModRewrite/OperationType.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/ParsedModRewriteCondition.cs b/src/Middleware/Rewrite/src/Internal/ApacheModRewrite/ParsedModRewriteCondition.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/ParsedModRewriteCondition.cs
rename to src/Middleware/Rewrite/src/Internal/ApacheModRewrite/ParsedModRewriteCondition.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/RuleBuilder.cs b/src/Middleware/Rewrite/src/Internal/ApacheModRewrite/RuleBuilder.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/RuleBuilder.cs
rename to src/Middleware/Rewrite/src/Internal/ApacheModRewrite/RuleBuilder.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/RuleRegexParser.cs b/src/Middleware/Rewrite/src/Internal/ApacheModRewrite/RuleRegexParser.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/RuleRegexParser.cs
rename to src/Middleware/Rewrite/src/Internal/ApacheModRewrite/RuleRegexParser.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/SegmentType.cs b/src/Middleware/Rewrite/src/Internal/ApacheModRewrite/SegmentType.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/SegmentType.cs
rename to src/Middleware/Rewrite/src/Internal/ApacheModRewrite/SegmentType.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/ServerVariables.cs b/src/Middleware/Rewrite/src/Internal/ApacheModRewrite/ServerVariables.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/ServerVariables.cs
rename to src/Middleware/Rewrite/src/Internal/ApacheModRewrite/ServerVariables.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/TestStringParser.cs b/src/Middleware/Rewrite/src/Internal/ApacheModRewrite/TestStringParser.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/TestStringParser.cs
rename to src/Middleware/Rewrite/src/Internal/ApacheModRewrite/TestStringParser.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/Tokenizer.cs b/src/Middleware/Rewrite/src/Internal/ApacheModRewrite/Tokenizer.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/ApacheModRewrite/Tokenizer.cs
rename to src/Middleware/Rewrite/src/Internal/ApacheModRewrite/Tokenizer.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/BackReferenceCollection.cs b/src/Middleware/Rewrite/src/Internal/BackReferenceCollection.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/BackReferenceCollection.cs
rename to src/Middleware/Rewrite/src/Internal/BackReferenceCollection.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/DelegateRule.cs b/src/Middleware/Rewrite/src/Internal/DelegateRule.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/DelegateRule.cs
rename to src/Middleware/Rewrite/src/Internal/DelegateRule.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/ActionType.cs b/src/Middleware/Rewrite/src/Internal/IISUrlRewrite/ActionType.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/ActionType.cs
rename to src/Middleware/Rewrite/src/Internal/IISUrlRewrite/ActionType.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/Condition.cs b/src/Middleware/Rewrite/src/Internal/IISUrlRewrite/Condition.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/Condition.cs
rename to src/Middleware/Rewrite/src/Internal/IISUrlRewrite/Condition.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/ConditionCollection.cs b/src/Middleware/Rewrite/src/Internal/IISUrlRewrite/ConditionCollection.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/ConditionCollection.cs
rename to src/Middleware/Rewrite/src/Internal/IISUrlRewrite/ConditionCollection.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/ConditionEvaluator.cs b/src/Middleware/Rewrite/src/Internal/IISUrlRewrite/ConditionEvaluator.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/ConditionEvaluator.cs
rename to src/Middleware/Rewrite/src/Internal/IISUrlRewrite/ConditionEvaluator.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/IISRewriteMap.cs b/src/Middleware/Rewrite/src/Internal/IISUrlRewrite/IISRewriteMap.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/IISRewriteMap.cs
rename to src/Middleware/Rewrite/src/Internal/IISUrlRewrite/IISRewriteMap.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/IISRewriteMapCollection.cs b/src/Middleware/Rewrite/src/Internal/IISUrlRewrite/IISRewriteMapCollection.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/IISRewriteMapCollection.cs
rename to src/Middleware/Rewrite/src/Internal/IISUrlRewrite/IISRewriteMapCollection.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/IISUrlRewriteRule.cs b/src/Middleware/Rewrite/src/Internal/IISUrlRewrite/IISUrlRewriteRule.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/IISUrlRewriteRule.cs
rename to src/Middleware/Rewrite/src/Internal/IISUrlRewrite/IISUrlRewriteRule.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/InputParser.cs b/src/Middleware/Rewrite/src/Internal/IISUrlRewrite/InputParser.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/InputParser.cs
rename to src/Middleware/Rewrite/src/Internal/IISUrlRewrite/InputParser.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/InvalidUrlRewriteFormatException.cs b/src/Middleware/Rewrite/src/Internal/IISUrlRewrite/InvalidUrlRewriteFormatException.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/InvalidUrlRewriteFormatException.cs
rename to src/Middleware/Rewrite/src/Internal/IISUrlRewrite/InvalidUrlRewriteFormatException.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/LogicalGrouping.cs b/src/Middleware/Rewrite/src/Internal/IISUrlRewrite/LogicalGrouping.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/LogicalGrouping.cs
rename to src/Middleware/Rewrite/src/Internal/IISUrlRewrite/LogicalGrouping.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/MatchType.cs b/src/Middleware/Rewrite/src/Internal/IISUrlRewrite/MatchType.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/MatchType.cs
rename to src/Middleware/Rewrite/src/Internal/IISUrlRewrite/MatchType.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/PatternSyntax.cs b/src/Middleware/Rewrite/src/Internal/IISUrlRewrite/PatternSyntax.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/PatternSyntax.cs
rename to src/Middleware/Rewrite/src/Internal/IISUrlRewrite/PatternSyntax.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/RedirectType.cs b/src/Middleware/Rewrite/src/Internal/IISUrlRewrite/RedirectType.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/RedirectType.cs
rename to src/Middleware/Rewrite/src/Internal/IISUrlRewrite/RedirectType.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/RewriteMapParser.cs b/src/Middleware/Rewrite/src/Internal/IISUrlRewrite/RewriteMapParser.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/RewriteMapParser.cs
rename to src/Middleware/Rewrite/src/Internal/IISUrlRewrite/RewriteMapParser.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/RewriteTags.cs b/src/Middleware/Rewrite/src/Internal/IISUrlRewrite/RewriteTags.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/RewriteTags.cs
rename to src/Middleware/Rewrite/src/Internal/IISUrlRewrite/RewriteTags.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/ServerVariables.cs b/src/Middleware/Rewrite/src/Internal/IISUrlRewrite/ServerVariables.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/ServerVariables.cs
rename to src/Middleware/Rewrite/src/Internal/IISUrlRewrite/ServerVariables.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/UriMatchCondition.cs b/src/Middleware/Rewrite/src/Internal/IISUrlRewrite/UriMatchCondition.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/UriMatchCondition.cs
rename to src/Middleware/Rewrite/src/Internal/IISUrlRewrite/UriMatchCondition.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/UriMatchPart.cs b/src/Middleware/Rewrite/src/Internal/IISUrlRewrite/UriMatchPart.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/UriMatchPart.cs
rename to src/Middleware/Rewrite/src/Internal/IISUrlRewrite/UriMatchPart.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/UrlRewriteFileParser.cs b/src/Middleware/Rewrite/src/Internal/IISUrlRewrite/UrlRewriteFileParser.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/UrlRewriteFileParser.cs
rename to src/Middleware/Rewrite/src/Internal/IISUrlRewrite/UrlRewriteFileParser.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/UrlRewriteRuleBuilder.cs b/src/Middleware/Rewrite/src/Internal/IISUrlRewrite/UrlRewriteRuleBuilder.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/UrlRewriteRuleBuilder.cs
rename to src/Middleware/Rewrite/src/Internal/IISUrlRewrite/UrlRewriteRuleBuilder.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/MatchResults.cs b/src/Middleware/Rewrite/src/Internal/MatchResults.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/MatchResults.cs
rename to src/Middleware/Rewrite/src/Internal/MatchResults.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/ParserContext.cs b/src/Middleware/Rewrite/src/Internal/ParserContext.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/ParserContext.cs
rename to src/Middleware/Rewrite/src/Internal/ParserContext.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/Pattern.cs b/src/Middleware/Rewrite/src/Internal/Pattern.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/Pattern.cs
rename to src/Middleware/Rewrite/src/Internal/Pattern.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegment.cs b/src/Middleware/Rewrite/src/Internal/PatternSegment.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegment.cs
rename to src/Middleware/Rewrite/src/Internal/PatternSegment.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/ConditionMatchSegment.cs b/src/Middleware/Rewrite/src/Internal/PatternSegments/ConditionMatchSegment.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/ConditionMatchSegment.cs
rename to src/Middleware/Rewrite/src/Internal/PatternSegments/ConditionMatchSegment.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/DateTimeSegment.cs b/src/Middleware/Rewrite/src/Internal/PatternSegments/DateTimeSegment.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/DateTimeSegment.cs
rename to src/Middleware/Rewrite/src/Internal/PatternSegments/DateTimeSegment.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/HeaderSegment.cs b/src/Middleware/Rewrite/src/Internal/PatternSegments/HeaderSegment.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/HeaderSegment.cs
rename to src/Middleware/Rewrite/src/Internal/PatternSegments/HeaderSegment.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/IsHttpsModSegment.cs b/src/Middleware/Rewrite/src/Internal/PatternSegments/IsHttpsModSegment.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/IsHttpsModSegment.cs
rename to src/Middleware/Rewrite/src/Internal/PatternSegments/IsHttpsModSegment.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/IsHttpsUrlSegment.cs b/src/Middleware/Rewrite/src/Internal/PatternSegments/IsHttpsUrlSegment.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/IsHttpsUrlSegment.cs
rename to src/Middleware/Rewrite/src/Internal/PatternSegments/IsHttpsUrlSegment.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/IsIPV6Segment.cs b/src/Middleware/Rewrite/src/Internal/PatternSegments/IsIPV6Segment.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/IsIPV6Segment.cs
rename to src/Middleware/Rewrite/src/Internal/PatternSegments/IsIPV6Segment.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/LiteralSegment.cs b/src/Middleware/Rewrite/src/Internal/PatternSegments/LiteralSegment.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/LiteralSegment.cs
rename to src/Middleware/Rewrite/src/Internal/PatternSegments/LiteralSegment.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/LocalAddressSegment.cs b/src/Middleware/Rewrite/src/Internal/PatternSegments/LocalAddressSegment.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/LocalAddressSegment.cs
rename to src/Middleware/Rewrite/src/Internal/PatternSegments/LocalAddressSegment.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/LocalPortSegment.cs b/src/Middleware/Rewrite/src/Internal/PatternSegments/LocalPortSegment.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/LocalPortSegment.cs
rename to src/Middleware/Rewrite/src/Internal/PatternSegments/LocalPortSegment.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/QueryStringSegment.cs b/src/Middleware/Rewrite/src/Internal/PatternSegments/QueryStringSegment.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/QueryStringSegment.cs
rename to src/Middleware/Rewrite/src/Internal/PatternSegments/QueryStringSegment.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/RemoteAddressSegment.cs b/src/Middleware/Rewrite/src/Internal/PatternSegments/RemoteAddressSegment.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/RemoteAddressSegment.cs
rename to src/Middleware/Rewrite/src/Internal/PatternSegments/RemoteAddressSegment.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/RemotePortSegment.cs b/src/Middleware/Rewrite/src/Internal/PatternSegments/RemotePortSegment.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/RemotePortSegment.cs
rename to src/Middleware/Rewrite/src/Internal/PatternSegments/RemotePortSegment.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/RequestFilenameSegment.cs b/src/Middleware/Rewrite/src/Internal/PatternSegments/RequestFilenameSegment.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/RequestFilenameSegment.cs
rename to src/Middleware/Rewrite/src/Internal/PatternSegments/RequestFilenameSegment.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/RequestMethodSegment.cs b/src/Middleware/Rewrite/src/Internal/PatternSegments/RequestMethodSegment.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/RequestMethodSegment.cs
rename to src/Middleware/Rewrite/src/Internal/PatternSegments/RequestMethodSegment.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/RewriteMapSegment.cs b/src/Middleware/Rewrite/src/Internal/PatternSegments/RewriteMapSegment.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/RewriteMapSegment.cs
rename to src/Middleware/Rewrite/src/Internal/PatternSegments/RewriteMapSegment.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/RuleMatchSegment.cs b/src/Middleware/Rewrite/src/Internal/PatternSegments/RuleMatchSegment.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/RuleMatchSegment.cs
rename to src/Middleware/Rewrite/src/Internal/PatternSegments/RuleMatchSegment.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/SchemeSegment.cs b/src/Middleware/Rewrite/src/Internal/PatternSegments/SchemeSegment.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/SchemeSegment.cs
rename to src/Middleware/Rewrite/src/Internal/PatternSegments/SchemeSegment.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/ServerProtocolSegment.cs b/src/Middleware/Rewrite/src/Internal/PatternSegments/ServerProtocolSegment.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/ServerProtocolSegment.cs
rename to src/Middleware/Rewrite/src/Internal/PatternSegments/ServerProtocolSegment.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/ToLowerSegment.cs b/src/Middleware/Rewrite/src/Internal/PatternSegments/ToLowerSegment.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/ToLowerSegment.cs
rename to src/Middleware/Rewrite/src/Internal/PatternSegments/ToLowerSegment.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/UrlEncodeSegment.cs b/src/Middleware/Rewrite/src/Internal/PatternSegments/UrlEncodeSegment.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/UrlEncodeSegment.cs
rename to src/Middleware/Rewrite/src/Internal/PatternSegments/UrlEncodeSegment.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/UrlSegment.cs b/src/Middleware/Rewrite/src/Internal/PatternSegments/UrlSegment.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/PatternSegments/UrlSegment.cs
rename to src/Middleware/Rewrite/src/Internal/PatternSegments/UrlSegment.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/RedirectRule.cs b/src/Middleware/Rewrite/src/Internal/RedirectRule.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/RedirectRule.cs
rename to src/Middleware/Rewrite/src/Internal/RedirectRule.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/RedirectToHttpsRule.cs b/src/Middleware/Rewrite/src/Internal/RedirectToHttpsRule.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/RedirectToHttpsRule.cs
rename to src/Middleware/Rewrite/src/Internal/RedirectToHttpsRule.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/RedirectToWwwRule.cs b/src/Middleware/Rewrite/src/Internal/RedirectToWwwRule.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/RedirectToWwwRule.cs
rename to src/Middleware/Rewrite/src/Internal/RedirectToWwwRule.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/RewriteRule.cs b/src/Middleware/Rewrite/src/Internal/RewriteRule.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/RewriteRule.cs
rename to src/Middleware/Rewrite/src/Internal/RewriteRule.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/UrlAction.cs b/src/Middleware/Rewrite/src/Internal/UrlAction.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/UrlAction.cs
rename to src/Middleware/Rewrite/src/Internal/UrlAction.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/UrlActions/AbortAction.cs b/src/Middleware/Rewrite/src/Internal/UrlActions/AbortAction.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/UrlActions/AbortAction.cs
rename to src/Middleware/Rewrite/src/Internal/UrlActions/AbortAction.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/UrlActions/ChangeCookieAction.cs b/src/Middleware/Rewrite/src/Internal/UrlActions/ChangeCookieAction.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/UrlActions/ChangeCookieAction.cs
rename to src/Middleware/Rewrite/src/Internal/UrlActions/ChangeCookieAction.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/UrlActions/CustomResponseAction.cs b/src/Middleware/Rewrite/src/Internal/UrlActions/CustomResponseAction.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/UrlActions/CustomResponseAction.cs
rename to src/Middleware/Rewrite/src/Internal/UrlActions/CustomResponseAction.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/UrlActions/ForbiddenAction.cs b/src/Middleware/Rewrite/src/Internal/UrlActions/ForbiddenAction.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/UrlActions/ForbiddenAction.cs
rename to src/Middleware/Rewrite/src/Internal/UrlActions/ForbiddenAction.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/UrlActions/GoneAction.cs b/src/Middleware/Rewrite/src/Internal/UrlActions/GoneAction.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/UrlActions/GoneAction.cs
rename to src/Middleware/Rewrite/src/Internal/UrlActions/GoneAction.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/UrlActions/NoneAction.cs b/src/Middleware/Rewrite/src/Internal/UrlActions/NoneAction.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/UrlActions/NoneAction.cs
rename to src/Middleware/Rewrite/src/Internal/UrlActions/NoneAction.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/UrlActions/RedirectAction.cs b/src/Middleware/Rewrite/src/Internal/UrlActions/RedirectAction.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/UrlActions/RedirectAction.cs
rename to src/Middleware/Rewrite/src/Internal/UrlActions/RedirectAction.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/UrlActions/RewriteAction.cs b/src/Middleware/Rewrite/src/Internal/UrlActions/RewriteAction.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/UrlActions/RewriteAction.cs
rename to src/Middleware/Rewrite/src/Internal/UrlActions/RewriteAction.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/UrlMatch.cs b/src/Middleware/Rewrite/src/Internal/UrlMatch.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/UrlMatch.cs
rename to src/Middleware/Rewrite/src/Internal/UrlMatch.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/UrlMatches/ExactMatch.cs b/src/Middleware/Rewrite/src/Internal/UrlMatches/ExactMatch.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/UrlMatches/ExactMatch.cs
rename to src/Middleware/Rewrite/src/Internal/UrlMatches/ExactMatch.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/UrlMatches/FileSizeMatch.cs b/src/Middleware/Rewrite/src/Internal/UrlMatches/FileSizeMatch.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/UrlMatches/FileSizeMatch.cs
rename to src/Middleware/Rewrite/src/Internal/UrlMatches/FileSizeMatch.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/UrlMatches/IntegerMatch.cs b/src/Middleware/Rewrite/src/Internal/UrlMatches/IntegerMatch.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/UrlMatches/IntegerMatch.cs
rename to src/Middleware/Rewrite/src/Internal/UrlMatches/IntegerMatch.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/UrlMatches/IntegerOperation.cs b/src/Middleware/Rewrite/src/Internal/UrlMatches/IntegerOperation.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/UrlMatches/IntegerOperation.cs
rename to src/Middleware/Rewrite/src/Internal/UrlMatches/IntegerOperation.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/UrlMatches/IsDirectoryMatch.cs b/src/Middleware/Rewrite/src/Internal/UrlMatches/IsDirectoryMatch.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/UrlMatches/IsDirectoryMatch.cs
rename to src/Middleware/Rewrite/src/Internal/UrlMatches/IsDirectoryMatch.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/UrlMatches/IsFileMatch.cs b/src/Middleware/Rewrite/src/Internal/UrlMatches/IsFileMatch.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/UrlMatches/IsFileMatch.cs
rename to src/Middleware/Rewrite/src/Internal/UrlMatches/IsFileMatch.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/UrlMatches/RegexMatch.cs b/src/Middleware/Rewrite/src/Internal/UrlMatches/RegexMatch.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/UrlMatches/RegexMatch.cs
rename to src/Middleware/Rewrite/src/Internal/UrlMatches/RegexMatch.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/UrlMatches/StringMatch.cs b/src/Middleware/Rewrite/src/Internal/UrlMatches/StringMatch.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/UrlMatches/StringMatch.cs
rename to src/Middleware/Rewrite/src/Internal/UrlMatches/StringMatch.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/UrlMatches/StringOperation.cs b/src/Middleware/Rewrite/src/Internal/UrlMatches/StringOperation.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Internal/UrlMatches/StringOperation.cs
rename to src/Middleware/Rewrite/src/Internal/UrlMatches/StringOperation.cs
diff --git a/src/Middleware/Rewrite/src/Microsoft.AspNetCore.Rewrite.csproj b/src/Middleware/Rewrite/src/Microsoft.AspNetCore.Rewrite.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..48a6e913f520269288d7286ee965dbf2a3a39229
--- /dev/null
+++ b/src/Middleware/Rewrite/src/Microsoft.AspNetCore.Rewrite.csproj
@@ -0,0 +1,23 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <Description>ASP.NET Core basic middleware for rewriting URLs. Includes:
+* Support for custom URL rewrite rules
+* Support for running IIS URL Rewrite module rules
+* Support for running Apache mod_rewrite rules.</Description>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <NoWarn>$(NoWarn);CS1591</NoWarn>
+    <GenerateDocumentationFile>true</GenerateDocumentationFile>
+    <PackageTags>aspnetcore;urlrewrite;mod_rewrite</PackageTags>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.Extensions.Configuration.Abstractions" />
+    <Reference Include="Microsoft.Extensions.FileProviders.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
+  </ItemGroup>
+
+</Project>
diff --git a/src/Microsoft.AspNetCore.Rewrite/Properties/AssemblyInfo.cs b/src/Middleware/Rewrite/src/Properties/AssemblyInfo.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Properties/AssemblyInfo.cs
rename to src/Middleware/Rewrite/src/Properties/AssemblyInfo.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Properties/Resources.Designer.cs b/src/Middleware/Rewrite/src/Properties/Resources.Designer.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Properties/Resources.Designer.cs
rename to src/Middleware/Rewrite/src/Properties/Resources.Designer.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/Resources.resx b/src/Middleware/Rewrite/src/Resources.resx
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/Resources.resx
rename to src/Middleware/Rewrite/src/Resources.resx
diff --git a/src/Microsoft.AspNetCore.Rewrite/RewriteBuilderExtensions.cs b/src/Middleware/Rewrite/src/RewriteBuilderExtensions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/RewriteBuilderExtensions.cs
rename to src/Middleware/Rewrite/src/RewriteBuilderExtensions.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/RewriteContext.cs b/src/Middleware/Rewrite/src/RewriteContext.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/RewriteContext.cs
rename to src/Middleware/Rewrite/src/RewriteContext.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/RewriteMiddleware.cs b/src/Middleware/Rewrite/src/RewriteMiddleware.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/RewriteMiddleware.cs
rename to src/Middleware/Rewrite/src/RewriteMiddleware.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/RewriteOptions.cs b/src/Middleware/Rewrite/src/RewriteOptions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/RewriteOptions.cs
rename to src/Middleware/Rewrite/src/RewriteOptions.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/RewriteOptionsExtensions.cs b/src/Middleware/Rewrite/src/RewriteOptionsExtensions.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/RewriteOptionsExtensions.cs
rename to src/Middleware/Rewrite/src/RewriteOptionsExtensions.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/RuleResult.cs b/src/Middleware/Rewrite/src/RuleResult.cs
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/RuleResult.cs
rename to src/Middleware/Rewrite/src/RuleResult.cs
diff --git a/src/Microsoft.AspNetCore.Rewrite/baseline.netcore.json b/src/Middleware/Rewrite/src/baseline.netcore.json
similarity index 100%
rename from src/Microsoft.AspNetCore.Rewrite/baseline.netcore.json
rename to src/Middleware/Rewrite/src/baseline.netcore.json
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/ApacheModRewrite/ConditionPatternParserTest.cs b/src/Middleware/Rewrite/test/ApacheModRewrite/ConditionPatternParserTest.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/ApacheModRewrite/ConditionPatternParserTest.cs
rename to src/Middleware/Rewrite/test/ApacheModRewrite/ConditionPatternParserTest.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/ApacheModRewrite/CookieActionFactoryTest.cs b/src/Middleware/Rewrite/test/ApacheModRewrite/CookieActionFactoryTest.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/ApacheModRewrite/CookieActionFactoryTest.cs
rename to src/Middleware/Rewrite/test/ApacheModRewrite/CookieActionFactoryTest.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/ApacheModRewrite/FlagParserTest.cs b/src/Middleware/Rewrite/test/ApacheModRewrite/FlagParserTest.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/ApacheModRewrite/FlagParserTest.cs
rename to src/Middleware/Rewrite/test/ApacheModRewrite/FlagParserTest.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/ApacheModRewrite/FormatExceptionTests.cs b/src/Middleware/Rewrite/test/ApacheModRewrite/FormatExceptionTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/ApacheModRewrite/FormatExceptionTests.cs
rename to src/Middleware/Rewrite/test/ApacheModRewrite/FormatExceptionTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/ApacheModRewrite/ModRewriteMiddlewareTest.cs b/src/Middleware/Rewrite/test/ApacheModRewrite/ModRewriteMiddlewareTest.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/ApacheModRewrite/ModRewriteMiddlewareTest.cs
rename to src/Middleware/Rewrite/test/ApacheModRewrite/ModRewriteMiddlewareTest.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/ApacheModRewrite/RewriteTokenizerTest.cs b/src/Middleware/Rewrite/test/ApacheModRewrite/RewriteTokenizerTest.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/ApacheModRewrite/RewriteTokenizerTest.cs
rename to src/Middleware/Rewrite/test/ApacheModRewrite/RewriteTokenizerTest.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/ApacheModRewrite/RuleBuilderTest.cs b/src/Middleware/Rewrite/test/ApacheModRewrite/RuleBuilderTest.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/ApacheModRewrite/RuleBuilderTest.cs
rename to src/Middleware/Rewrite/test/ApacheModRewrite/RuleBuilderTest.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/ApacheModRewrite/RuleRegexParserTest.cs b/src/Middleware/Rewrite/test/ApacheModRewrite/RuleRegexParserTest.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/ApacheModRewrite/RuleRegexParserTest.cs
rename to src/Middleware/Rewrite/test/ApacheModRewrite/RuleRegexParserTest.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/ApacheModRewrite/TestStringParserTests.cs b/src/Middleware/Rewrite/test/ApacheModRewrite/TestStringParserTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/ApacheModRewrite/TestStringParserTests.cs
rename to src/Middleware/Rewrite/test/ApacheModRewrite/TestStringParserTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/IISUrlRewrite/FileParserTests.cs b/src/Middleware/Rewrite/test/IISUrlRewrite/FileParserTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/IISUrlRewrite/FileParserTests.cs
rename to src/Middleware/Rewrite/test/IISUrlRewrite/FileParserTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/IISUrlRewrite/FormatExceptionHandlingTests.cs b/src/Middleware/Rewrite/test/IISUrlRewrite/FormatExceptionHandlingTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/IISUrlRewrite/FormatExceptionHandlingTests.cs
rename to src/Middleware/Rewrite/test/IISUrlRewrite/FormatExceptionHandlingTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/IISUrlRewrite/InputParserTests.cs b/src/Middleware/Rewrite/test/IISUrlRewrite/InputParserTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/IISUrlRewrite/InputParserTests.cs
rename to src/Middleware/Rewrite/test/IISUrlRewrite/InputParserTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/IISUrlRewrite/InvalidUrlRewriteFormatExceptionHandlingTests.cs b/src/Middleware/Rewrite/test/IISUrlRewrite/InvalidUrlRewriteFormatExceptionHandlingTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/IISUrlRewrite/InvalidUrlRewriteFormatExceptionHandlingTests.cs
rename to src/Middleware/Rewrite/test/IISUrlRewrite/InvalidUrlRewriteFormatExceptionHandlingTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/IISUrlRewrite/MiddleWareTests.cs b/src/Middleware/Rewrite/test/IISUrlRewrite/MiddleWareTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/IISUrlRewrite/MiddleWareTests.cs
rename to src/Middleware/Rewrite/test/IISUrlRewrite/MiddleWareTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/IISUrlRewrite/RewriteMapParserTests.cs b/src/Middleware/Rewrite/test/IISUrlRewrite/RewriteMapParserTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/IISUrlRewrite/RewriteMapParserTests.cs
rename to src/Middleware/Rewrite/test/IISUrlRewrite/RewriteMapParserTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/IISUrlRewrite/ServerVariableTests.cs b/src/Middleware/Rewrite/test/IISUrlRewrite/ServerVariableTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/IISUrlRewrite/ServerVariableTests.cs
rename to src/Middleware/Rewrite/test/IISUrlRewrite/ServerVariableTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/IISUrlRewrite/UrlRewriteApplicationTests.cs b/src/Middleware/Rewrite/test/IISUrlRewrite/UrlRewriteApplicationTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/IISUrlRewrite/UrlRewriteApplicationTests.cs
rename to src/Middleware/Rewrite/test/IISUrlRewrite/UrlRewriteApplicationTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/Microsoft.AspNetCore.Rewrite.Tests.csproj b/src/Middleware/Rewrite/test/Microsoft.AspNetCore.Rewrite.Tests.csproj
similarity index 61%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/Microsoft.AspNetCore.Rewrite.Tests.csproj
rename to src/Middleware/Rewrite/test/Microsoft.AspNetCore.Rewrite.Tests.csproj
index ef02b99631e3daa03e97c06c0dc65805ba4695d8..1593497c6194a6aaef6ca7f47198a90a3b7a8a9d 100644
--- a/test/Microsoft.AspNetCore.Rewrite.Tests/Microsoft.AspNetCore.Rewrite.Tests.csproj
+++ b/src/Middleware/Rewrite/test/Microsoft.AspNetCore.Rewrite.Tests.csproj
@@ -5,7 +5,7 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <ProjectReference Include="..\..\src\Microsoft.AspNetCore.Rewrite\Microsoft.AspNetCore.Rewrite.csproj" />
+    <Reference Include="Microsoft.AspNetCore.Rewrite" />
   </ItemGroup>
 
 </Project>
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/MiddlewareTests.cs b/src/Middleware/Rewrite/test/MiddlewareTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/MiddlewareTests.cs
rename to src/Middleware/Rewrite/test/MiddlewareTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/ConditionMatchSegmentTests.cs b/src/Middleware/Rewrite/test/PatternSegments/ConditionMatchSegmentTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/ConditionMatchSegmentTests.cs
rename to src/Middleware/Rewrite/test/PatternSegments/ConditionMatchSegmentTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/DateTimeSegmentTests.cs b/src/Middleware/Rewrite/test/PatternSegments/DateTimeSegmentTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/DateTimeSegmentTests.cs
rename to src/Middleware/Rewrite/test/PatternSegments/DateTimeSegmentTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/HeaderSegmentTests.cs b/src/Middleware/Rewrite/test/PatternSegments/HeaderSegmentTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/HeaderSegmentTests.cs
rename to src/Middleware/Rewrite/test/PatternSegments/HeaderSegmentTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/IsHttpsModSegmentTests.cs b/src/Middleware/Rewrite/test/PatternSegments/IsHttpsModSegmentTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/IsHttpsModSegmentTests.cs
rename to src/Middleware/Rewrite/test/PatternSegments/IsHttpsModSegmentTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/IsHttpsSegmentTests.cs b/src/Middleware/Rewrite/test/PatternSegments/IsHttpsSegmentTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/IsHttpsSegmentTests.cs
rename to src/Middleware/Rewrite/test/PatternSegments/IsHttpsSegmentTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/IsIPV6SegmentTests.cs b/src/Middleware/Rewrite/test/PatternSegments/IsIPV6SegmentTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/IsIPV6SegmentTests.cs
rename to src/Middleware/Rewrite/test/PatternSegments/IsIPV6SegmentTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/LIteralSegmentTests.cs b/src/Middleware/Rewrite/test/PatternSegments/LIteralSegmentTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/LIteralSegmentTests.cs
rename to src/Middleware/Rewrite/test/PatternSegments/LIteralSegmentTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/LocalAddressSegmentTests.cs b/src/Middleware/Rewrite/test/PatternSegments/LocalAddressSegmentTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/LocalAddressSegmentTests.cs
rename to src/Middleware/Rewrite/test/PatternSegments/LocalAddressSegmentTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/LocalPortSegmentTests.cs b/src/Middleware/Rewrite/test/PatternSegments/LocalPortSegmentTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/LocalPortSegmentTests.cs
rename to src/Middleware/Rewrite/test/PatternSegments/LocalPortSegmentTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/QueryStringSegmentTests.cs b/src/Middleware/Rewrite/test/PatternSegments/QueryStringSegmentTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/QueryStringSegmentTests.cs
rename to src/Middleware/Rewrite/test/PatternSegments/QueryStringSegmentTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/RemoteAddressSegmentTests.cs b/src/Middleware/Rewrite/test/PatternSegments/RemoteAddressSegmentTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/RemoteAddressSegmentTests.cs
rename to src/Middleware/Rewrite/test/PatternSegments/RemoteAddressSegmentTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/RemotePortSegmentTests.cs b/src/Middleware/Rewrite/test/PatternSegments/RemotePortSegmentTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/RemotePortSegmentTests.cs
rename to src/Middleware/Rewrite/test/PatternSegments/RemotePortSegmentTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/RequestFilenameSegmentTests.cs b/src/Middleware/Rewrite/test/PatternSegments/RequestFilenameSegmentTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/RequestFilenameSegmentTests.cs
rename to src/Middleware/Rewrite/test/PatternSegments/RequestFilenameSegmentTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/RequestMethodSegmentTests.cs b/src/Middleware/Rewrite/test/PatternSegments/RequestMethodSegmentTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/RequestMethodSegmentTests.cs
rename to src/Middleware/Rewrite/test/PatternSegments/RequestMethodSegmentTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/RuleMatchSegmentTests.cs b/src/Middleware/Rewrite/test/PatternSegments/RuleMatchSegmentTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/RuleMatchSegmentTests.cs
rename to src/Middleware/Rewrite/test/PatternSegments/RuleMatchSegmentTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/SchemeSegmentTests.cs b/src/Middleware/Rewrite/test/PatternSegments/SchemeSegmentTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/SchemeSegmentTests.cs
rename to src/Middleware/Rewrite/test/PatternSegments/SchemeSegmentTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/ServerProtocolSegmentTests.cs b/src/Middleware/Rewrite/test/PatternSegments/ServerProtocolSegmentTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/ServerProtocolSegmentTests.cs
rename to src/Middleware/Rewrite/test/PatternSegments/ServerProtocolSegmentTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/ToLowerSegmentTests.cs b/src/Middleware/Rewrite/test/PatternSegments/ToLowerSegmentTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/ToLowerSegmentTests.cs
rename to src/Middleware/Rewrite/test/PatternSegments/ToLowerSegmentTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/UrlEncodeSegmentTests.cs b/src/Middleware/Rewrite/test/PatternSegments/UrlEncodeSegmentTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/UrlEncodeSegmentTests.cs
rename to src/Middleware/Rewrite/test/PatternSegments/UrlEncodeSegmentTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/UrlSegmentTests.cs b/src/Middleware/Rewrite/test/PatternSegments/UrlSegmentTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/PatternSegments/UrlSegmentTests.cs
rename to src/Middleware/Rewrite/test/PatternSegments/UrlSegmentTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/UrlActions/AbortActionTests.cs b/src/Middleware/Rewrite/test/UrlActions/AbortActionTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/UrlActions/AbortActionTests.cs
rename to src/Middleware/Rewrite/test/UrlActions/AbortActionTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/UrlActions/ChangeCookieActionTests.cs b/src/Middleware/Rewrite/test/UrlActions/ChangeCookieActionTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/UrlActions/ChangeCookieActionTests.cs
rename to src/Middleware/Rewrite/test/UrlActions/ChangeCookieActionTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/UrlActions/ForbiddenActionTests.cs b/src/Middleware/Rewrite/test/UrlActions/ForbiddenActionTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/UrlActions/ForbiddenActionTests.cs
rename to src/Middleware/Rewrite/test/UrlActions/ForbiddenActionTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/UrlActions/GoneActionTests.cs b/src/Middleware/Rewrite/test/UrlActions/GoneActionTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/UrlActions/GoneActionTests.cs
rename to src/Middleware/Rewrite/test/UrlActions/GoneActionTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/UrlMatches/ExactMatchTests.cs b/src/Middleware/Rewrite/test/UrlMatches/ExactMatchTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/UrlMatches/ExactMatchTests.cs
rename to src/Middleware/Rewrite/test/UrlMatches/ExactMatchTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/UrlMatches/IntegerMatchTests.cs b/src/Middleware/Rewrite/test/UrlMatches/IntegerMatchTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/UrlMatches/IntegerMatchTests.cs
rename to src/Middleware/Rewrite/test/UrlMatches/IntegerMatchTests.cs
diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/UrlMatches/StringMatchTests.cs b/src/Middleware/Rewrite/test/UrlMatches/StringMatchTests.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Rewrite.Tests/UrlMatches/StringMatchTests.cs
rename to src/Middleware/Rewrite/test/UrlMatches/StringMatchTests.cs
diff --git a/test/Directory.Build.props b/test/Directory.Build.props
deleted file mode 100644
index b936409242dd416f576ec5495e567c8e614d6d56..0000000000000000000000000000000000000000
--- a/test/Directory.Build.props
+++ /dev/null
@@ -1,19 +0,0 @@
-<Project>
-  <Import Project="..\Directory.Build.props" />
-
-  <PropertyGroup>
-    <DeveloperBuildTestTfms>netcoreapp2.1</DeveloperBuildTestTfms>
-    <StandardTestTfms>$(DeveloperBuildTestTfms)</StandardTestTfms>
-    <StandardTestTfms Condition=" '$(DeveloperBuild)' != 'true' ">netcoreapp2.1;netcoreapp2.0</StandardTestTfms>
-    <StandardTestTfms Condition=" '$(DeveloperBuild)' != 'true' AND '$(OS)' == 'Windows_NT' ">$(StandardTestTfms);net461</StandardTestTfms>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Internal.AspNetCore.Sdk" PrivateAssets="All" Version="$(InternalAspNetCoreSdkPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.TestHost" Version="$(MicrosoftAspNetCoreTestHostPackageVersion)" />
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkPackageVersion)" />
-    <PackageReference Include="xunit.analyzers" Version="$(XunitAnalyzersPackageVersion)" />
-    <PackageReference Include="xunit.runner.visualstudio" Version="$(XunitRunnerVisualStudioPackageVersion)" />
-    <PackageReference Include="xunit" Version="$(XunitPackageVersion)" />
-  </ItemGroup>
-</Project>
diff --git a/test/Microsoft.AspNetCore.Buffering.Tests/ResponseBufferingMiddlewareTests.cs b/test/Microsoft.AspNetCore.Buffering.Tests/ResponseBufferingMiddlewareTests.cs
deleted file mode 100644
index 81aa993e98434ed21b81454fb9ddb659455b3712..0000000000000000000000000000000000000000
--- a/test/Microsoft.AspNetCore.Buffering.Tests/ResponseBufferingMiddlewareTests.cs
+++ /dev/null
@@ -1,315 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Threading.Tasks;
-using Microsoft.AspNetCore.Builder;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Http.Features;
-using Microsoft.AspNetCore.TestHost;
-using Xunit;
-
-namespace Microsoft.AspNetCore.Buffering.Tests
-{
-    public class ResponseBufferingMiddlewareTests
-    {
-        [Fact]
-        public async Task BufferResponse_SetsContentLength()
-        {
-            var builder = new WebHostBuilder()
-                .Configure(app =>
-                {
-                    app.UseResponseBuffering();
-                    app.Run(async context =>
-                    {
-                        Assert.False(context.Response.HasStarted);
-                        Assert.True(context.Response.Body.CanSeek);
-                        await context.Response.WriteAsync("Hello World");
-                        Assert.False(context.Response.HasStarted);
-                        Assert.True(context.Response.Body.CanSeek);
-                    });
-                });
-            var server = new TestServer(builder);
-
-            var response = await server.CreateClient().GetAsync("");
-            response.EnsureSuccessStatusCode();
-            Assert.Equal("Hello World", await response.Content.ReadAsStringAsync());
-
-            // Set automatically by buffer
-            IEnumerable<string> values;
-            Assert.True(response.Content.Headers.TryGetValues("Content-Length", out values));
-            Assert.Equal("11", values.FirstOrDefault());
-        }
-
-        [Fact]
-        public async Task BufferResponseWithManualContentLength_NotReplaced()
-        {
-            var builder = new WebHostBuilder()
-                .Configure(app =>
-                {
-                    app.UseResponseBuffering();
-                    app.Run(async context =>
-                    {
-                        context.Response.ContentLength = 12;
-                        Assert.False(context.Response.HasStarted);
-                        Assert.True(context.Response.Body.CanSeek);
-                        await context.Response.WriteAsync("Hello World");
-                        Assert.False(context.Response.HasStarted);
-                        Assert.True(context.Response.Body.CanSeek);
-                    });
-                });
-            var server = new TestServer(builder);
-
-            var response = await server.CreateClient().GetAsync("");
-            response.EnsureSuccessStatusCode();
-            Assert.Equal("Hello World", await response.Content.ReadAsStringAsync());
-
-            IEnumerable<string> values;
-            Assert.True(response.Content.Headers.TryGetValues("Content-Length", out values));
-            Assert.Equal("12", values.FirstOrDefault());
-        }
-
-        [Fact]
-        public async Task Seek_AllowsResttingBuffer()
-        {
-            var builder = new WebHostBuilder()
-                .Configure(app =>
-                {
-                    app.UseResponseBuffering();
-                    app.Run(async context =>
-                    {
-                        var body = context.Response.Body;
-                        Assert.False(context.Response.HasStarted);
-                        Assert.True(body.CanSeek);
-                        Assert.Equal(0, body.Position);
-                        Assert.Equal(0, body.Length);
-
-                        await context.Response.WriteAsync("Hello World");
-                        Assert.False(context.Response.HasStarted);
-                        Assert.True(context.Response.Body.CanSeek);
-                        Assert.Equal(11, body.Position);
-                        Assert.Equal(11, body.Length);
-
-                        Assert.Throws<ArgumentOutOfRangeException>(() => body.Seek(1, SeekOrigin.Begin));
-                        Assert.Throws<ArgumentException>(() => body.Seek(0, SeekOrigin.Current));
-                        Assert.Throws<ArgumentException>(() => body.Seek(0, SeekOrigin.End));
-
-                        Assert.Equal(0, body.Seek(0, SeekOrigin.Begin));
-                        Assert.Equal(0, body.Position);
-                        Assert.Equal(0, body.Length);
-
-                        await context.Response.WriteAsync("12345");
-                        Assert.Equal(5, body.Position);
-                        Assert.Equal(5, body.Length);
-                    });
-                });
-            var server = new TestServer(builder);
-
-            var response = await server.CreateClient().GetAsync("");
-            response.EnsureSuccessStatusCode();
-            Assert.Equal("12345", await response.Content.ReadAsStringAsync());
-
-            // Set automatically by buffer
-            IEnumerable<string> values;
-            Assert.True(response.Content.Headers.TryGetValues("Content-Length", out values));
-            Assert.Equal("5", values.FirstOrDefault());
-        }
-
-        [Fact]
-        public async Task SetPosition_AllowsResttingBuffer()
-        {
-            var builder = new WebHostBuilder()
-                .Configure(app =>
-                {
-                    app.UseResponseBuffering();
-                    app.Run(async context =>
-                    {
-                        var body = context.Response.Body;
-                        Assert.False(context.Response.HasStarted);
-                        Assert.True(body.CanSeek);
-                        Assert.Equal(0, body.Position);
-                        Assert.Equal(0, body.Length);
-
-                        await context.Response.WriteAsync("Hello World");
-                        Assert.False(context.Response.HasStarted);
-                        Assert.True(context.Response.Body.CanSeek);
-                        Assert.Equal(11, body.Position);
-                        Assert.Equal(11, body.Length);
-
-                        Assert.Throws<ArgumentOutOfRangeException>(() => body.Position = 1);
-
-                        body.Position = 0;
-                        Assert.Equal(0, body.Position);
-                        Assert.Equal(0, body.Length);
-
-                        await context.Response.WriteAsync("12345");
-                        Assert.Equal(5, body.Position);
-                        Assert.Equal(5, body.Length);
-                    });
-                });
-            var server = new TestServer(builder);
-
-            var response = await server.CreateClient().GetAsync("");
-            response.EnsureSuccessStatusCode();
-            Assert.Equal("12345", await response.Content.ReadAsStringAsync());
-
-            // Set automatically by buffer
-            IEnumerable<string> values;
-            Assert.True(response.Content.Headers.TryGetValues("Content-Length", out values));
-            Assert.Equal("5", values.FirstOrDefault());
-        }
-
-        [Fact]
-        public async Task SetLength_AllowsResttingBuffer()
-        {
-            var builder = new WebHostBuilder()
-                .Configure(app =>
-                {
-                    app.UseResponseBuffering();
-                    app.Run(async context =>
-                    {
-                        var body = context.Response.Body;
-                        Assert.False(context.Response.HasStarted);
-                        Assert.True(body.CanSeek);
-                        Assert.Equal(0, body.Position);
-                        Assert.Equal(0, body.Length);
-
-                        await context.Response.WriteAsync("Hello World");
-                        Assert.False(context.Response.HasStarted);
-                        Assert.True(context.Response.Body.CanSeek);
-                        Assert.Equal(11, body.Position);
-                        Assert.Equal(11, body.Length);
-
-                        Assert.Throws<ArgumentOutOfRangeException>(() => body.SetLength(1));
-
-                        body.SetLength(0);
-                        Assert.Equal(0, body.Position);
-                        Assert.Equal(0, body.Length);
-
-                        await context.Response.WriteAsync("12345");
-                        Assert.Equal(5, body.Position);
-                        Assert.Equal(5, body.Length);
-                    });
-                });
-            var server = new TestServer(builder);
-
-            var response = await server.CreateClient().GetAsync("");
-            response.EnsureSuccessStatusCode();
-            Assert.Equal("12345", await response.Content.ReadAsStringAsync());
-
-            // Set automatically by buffer
-            IEnumerable<string> values;
-            Assert.True(response.Content.Headers.TryGetValues("Content-Length", out values));
-            Assert.Equal("5", values.FirstOrDefault());
-        }
-
-        [Fact]
-        public async Task DisableBufferingViaFeature()
-        {
-            var builder = new WebHostBuilder()
-                .Configure(app =>
-                {
-                    app.UseResponseBuffering();
-                    app.Run(async context =>
-                    {
-                        Assert.False(context.Response.HasStarted);
-                        Assert.True(context.Response.Body.CanSeek);
-
-                        var bufferingFeature = context.Features.Get<IHttpBufferingFeature>();
-                        Assert.NotNull(bufferingFeature);
-                        bufferingFeature.DisableResponseBuffering();
-
-                        Assert.False(context.Response.HasStarted);
-                        Assert.False(context.Response.Body.CanSeek);
-
-                        await context.Response.WriteAsync("Hello World");
-
-                        Assert.True(context.Response.HasStarted);
-                        Assert.False(context.Response.Body.CanSeek);
-                    });
-                });
-            var server = new TestServer(builder);
-
-            var response = await server.CreateClient().GetAsync("");
-            response.EnsureSuccessStatusCode();
-            Assert.Equal("Hello World", await response.Content.ReadAsStringAsync());
-            IEnumerable<string> values;
-            Assert.False(response.Content.Headers.TryGetValues("Content-Length", out values));
-        }
-
-        [Fact]
-        public async Task DisableBufferingViaFeatureAfterFirstWrite_Flushes()
-        {
-            var builder = new WebHostBuilder()
-                .Configure(app =>
-                {
-                    app.UseResponseBuffering();
-                    app.Run(async context =>
-                    {
-                        Assert.False(context.Response.HasStarted);
-                        Assert.True(context.Response.Body.CanSeek);
-
-                        await context.Response.WriteAsync("Hello");
-
-                        Assert.False(context.Response.HasStarted);
-                        Assert.True(context.Response.Body.CanSeek);
-
-                        var bufferingFeature = context.Features.Get<IHttpBufferingFeature>();
-                        Assert.NotNull(bufferingFeature);
-                        bufferingFeature.DisableResponseBuffering();
-
-                        Assert.True(context.Response.HasStarted);
-                        Assert.False(context.Response.Body.CanSeek);
-
-                        await context.Response.WriteAsync(" World");
-
-                        Assert.True(context.Response.HasStarted);
-                        Assert.False(context.Response.Body.CanSeek);
-                    });
-                });
-            var server = new TestServer(builder);
-
-            var response = await server.CreateClient().GetAsync("");
-            response.EnsureSuccessStatusCode();
-            Assert.Equal("Hello World", await response.Content.ReadAsStringAsync());
-            IEnumerable<string> values;
-            Assert.False(response.Content.Headers.TryGetValues("Content-Length", out values));
-        }
-
-        [Fact]
-        public async Task FlushDisablesBuffering()
-        {
-            var builder = new WebHostBuilder()
-                .Configure(app =>
-                {
-                    app.UseResponseBuffering();
-                    app.Run(async context =>
-                    {
-                        Assert.False(context.Response.HasStarted);
-                        Assert.True(context.Response.Body.CanSeek);
-
-                        context.Response.Body.Flush();
-
-                        Assert.True(context.Response.HasStarted);
-                        Assert.False(context.Response.Body.CanSeek);
-
-                        await context.Response.WriteAsync("Hello World");
-
-                        Assert.True(context.Response.HasStarted);
-                        Assert.False(context.Response.Body.CanSeek);
-                    });
-                });
-            var server = new TestServer(builder);
-
-            var response = await server.CreateClient().GetAsync("");
-            response.EnsureSuccessStatusCode();
-            Assert.Equal("Hello World", await response.Content.ReadAsStringAsync());
-            IEnumerable<string> values;
-            Assert.False(response.Content.Headers.TryGetValues("Content-Length", out values));
-        }
-    }
-}
diff --git a/test/Microsoft.AspNetCore.HostFiltering.Tests/Microsoft.AspNetCore.HostFiltering.Tests.csproj b/test/Microsoft.AspNetCore.HostFiltering.Tests/Microsoft.AspNetCore.HostFiltering.Tests.csproj
deleted file mode 100644
index 407ecdef0fd941b9e2b292747f20dee003535297..0000000000000000000000000000000000000000
--- a/test/Microsoft.AspNetCore.HostFiltering.Tests/Microsoft.AspNetCore.HostFiltering.Tests.csproj
+++ /dev/null
@@ -1,12 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <TargetFrameworks>$(StandardTestTfms)</TargetFrameworks>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\..\src\Microsoft.AspNetCore.HostFiltering\Microsoft.AspNetCore.HostFiltering.csproj" />
-    <PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="$(MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion)" />
-  </ItemGroup>
-
-</Project>
diff --git a/test/Microsoft.AspNetCore.HttpOverrides.Tests/Microsoft.AspNetCore.HttpOverrides.Tests.csproj b/test/Microsoft.AspNetCore.HttpOverrides.Tests/Microsoft.AspNetCore.HttpOverrides.Tests.csproj
deleted file mode 100644
index dc9bc780b04465075371e60e094b0f0451d091e7..0000000000000000000000000000000000000000
--- a/test/Microsoft.AspNetCore.HttpOverrides.Tests/Microsoft.AspNetCore.HttpOverrides.Tests.csproj
+++ /dev/null
@@ -1,15 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <TargetFrameworks>$(StandardTestTfms)</TargetFrameworks>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\..\src\Microsoft.AspNetCore.HttpOverrides\Microsoft.AspNetCore.HttpOverrides.csproj" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.Extensions.Logging.Testing" Version="$(MicrosoftExtensionsLoggingTestingPackageVersion)" />
-  </ItemGroup>
-
-</Project>
diff --git a/test/Microsoft.AspNetCore.ResponseCompression.Tests/Microsoft.AspNetCore.ResponseCompression.Tests.csproj b/test/Microsoft.AspNetCore.ResponseCompression.Tests/Microsoft.AspNetCore.ResponseCompression.Tests.csproj
deleted file mode 100644
index 902449b4868a67011af8260b5147541578f8e394..0000000000000000000000000000000000000000
--- a/test/Microsoft.AspNetCore.ResponseCompression.Tests/Microsoft.AspNetCore.ResponseCompression.Tests.csproj
+++ /dev/null
@@ -1,21 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <TargetFrameworks>$(StandardTestTfms)</TargetFrameworks>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <Content Include="testfile1kb.txt" CopyToOutputDirectory="PreserveNewest" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\..\src\Microsoft.AspNetCore.ResponseCompression\Microsoft.AspNetCore.ResponseCompression.csproj" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Http" Version="$(MicrosoftAspNetCoreHttpPackageVersion)" />
-    <PackageReference Include="Microsoft.Net.Http.Headers" Version="$(MicrosoftNetHttpHeadersPackageVersion)" />
-    <PackageReference Include="Moq" Version="$(MoqPackageVersion)" />
-  </ItemGroup>
-
-</Project>
diff --git a/version.props b/version.props
deleted file mode 100644
index 6ecf2553b6f12c637c60ddee45fdf26a317a287c..0000000000000000000000000000000000000000
--- a/version.props
+++ /dev/null
@@ -1,18 +0,0 @@
-<Project>
-  <PropertyGroup>
-    <VersionPrefix>2.1.1</VersionPrefix>
-    <VersionSuffix>rtm</VersionSuffix>
-    <PackageVersion Condition="'$(IsFinalBuild)' == 'true' AND '$(VersionSuffix)' == 'rtm' ">$(VersionPrefix)</PackageVersion>
-    <PackageVersion Condition="'$(IsFinalBuild)' == 'true' AND '$(VersionSuffix)' != 'rtm' ">$(VersionPrefix)-$(VersionSuffix)-final</PackageVersion>
-    <BuildNumber Condition="'$(BuildNumber)' == ''">t000</BuildNumber>
-    <FeatureBranchVersionPrefix Condition="'$(FeatureBranchVersionPrefix)' == ''">a-</FeatureBranchVersionPrefix>
-    <VersionSuffix Condition="'$(VersionSuffix)' != '' And '$(FeatureBranchVersionSuffix)' != ''">$(FeatureBranchVersionPrefix)$(VersionSuffix)-$([System.Text.RegularExpressions.Regex]::Replace('$(FeatureBranchVersionSuffix)', '[^\w-]', '-'))</VersionSuffix>
-    <VersionSuffix Condition="'$(VersionSuffix)' != '' And '$(BuildNumber)' != ''">$(VersionSuffix)-$(BuildNumber)</VersionSuffix>
-
-    <ExperimentalVersionPrefix>0.4.1</ExperimentalVersionPrefix>
-    <ExperimentalVersionSuffix>rtm</ExperimentalVersionSuffix>
-    <ExperimentalPackageVersion Condition="'$(IsFinalBuild)' == 'true' AND '$(ExperimentalVersionSuffix)' == 'rtm' ">$(ExperimentalVersionPrefix)</ExperimentalPackageVersion>
-    <ExperimentalPackageVersion Condition="'$(IsFinalBuild)' == 'true' AND '$(ExperimentalVersionSuffix)' != 'rtm' ">$(ExperimentalVersionPrefix)-$(ExperimentalVersionSuffix)-final</ExperimentalPackageVersion>
-    <ExperimentalVersionSuffix Condition="'$(ExperimentalVersionSuffix)' != '' And '$(BuildNumber)' != ''">$(ExperimentalVersionSuffix)-$(BuildNumber)</ExperimentalVersionSuffix>
-  </PropertyGroup>
-</Project>