diff --git a/Ocelot.nuspec b/Ocelot.nuspec
index 17c4071f..f9875da0 100644
--- a/Ocelot.nuspec
+++ b/Ocelot.nuspec
@@ -25,8 +25,6 @@
         
         
         
-        
-        
         
          
         
diff --git a/README.md b/README.md
index ca6670a6..7091d719 100644
--- a/README.md
+++ b/README.md
@@ -31,11 +31,76 @@ All versions can be found [here](https://www.nuget.org/packages/Ocelot/)
 
 ## Configuration
 
-An example configuration can be found [here](https://github.com/TomPallister/Ocelot/blob/develop/test/Ocelot.ManualTest/configuration.yaml). More detailed instructions to come on how to configure this.
+An example configuration can be found [here](https://github.com/TomPallister/Ocelot/blob/develop/test/Ocelot.ManualTest/configuration.json). More detailed instructions to come on how to configure this.
+
+"ReRoutes": [
+	{
+		# The url we are forwarding the request to
+		"UpstreamTemplate": "/identityserverexample",
+		# The path we are listening on for this re route
+		"UpstreamTemplate": "/identityserverexample",
+		# The method we are listening for on this re route
+		"UpstreamHttpMethod": "Get",
+		# Only support identity server at the moment
+		"AuthenticationOptions": {
+			"Provider": "IdentityServer",
+			"ProviderRootUrl": "http://localhost:52888",
+			"ScopeName": "api",
+			"AdditionalScopes": [
+				"openid",
+				"offline_access"
+			],
+		# Required if using reference tokens
+			"ScopeSecret": "secret"
+		},
+		# WARNING - will overwrite any headers already in the request with these values.
+		# Ocelot will look in the user claims for the key in [] then return the value and save
+		# it as a header with the given key before the colon (:). The index selection on value 
+		# means that Ocelot will use the delimiter specified after the next > to split the 
+		# claim value and return the index specified.
+		"AddHeadersToRequest": {
+			"CustomerId": "Claims[CustomerId] > value",
+			"LocationId": "Claims[LocationId] > value",
+			"UserType": "Claims[sub] > value[0] > |",
+			"UserId": "Claims[sub] > value[1] > |"
+		},
+		# WARNING - will overwrite any claims already in the request with these values.
+		# Ocelot will look in the user claims for the key in [] then return the value and save
+		# it as a claim with the given key before the colon (:). The index selection on value 
+		# means that Ocelot will use the delimiter specified after the next > to split the 
+		# claim value and return the index specified.
+		"AddClaimsToRequest": {
+			"CustomerId": "Claims[CustomerId] > value",
+			"LocationId": "Claims[LocationId] > value",
+			"UserType": "Claims[sub] > value[0] > |",
+			"UserId": "Claims[sub] > value[1] > |"
+		},
+		# WARNING - will overwrite any query string entries already in the request with these values.
+		# Ocelot will look in the user claims for the key in [] then return the value and save
+		# it as a query string with the given key before the colon (:). The index selection on value 
+		# means that Ocelot will use the delimiter specified after the next > to split the 
+		# claim value and return the index specified.
+		"AddQueriesToRequest": {
+			"CustomerId": "Claims[CustomerId] > value",
+			"LocationId": "Claims[LocationId] > value",
+			"UserType": "Claims[sub] > value[0] > |",
+			"UserId": "Claims[sub] > value[1] > |"
+		},
+		# This specifies any claims that are required for the user to access this re route.
+		# In this example the user must have the claim type UserType and 
+		# the value must be registered
+		"RouteClaimsRequirement": {
+			"UserType": "registered"
+		},
+		# This tells Ocelot to look for a header and use its value as a request/correlation id. 
+		# If it is set here then the id will be forwarded to the downstream service. If it
+		# does not then it will not be forwarded
+		"RequestIdKey": "OcRequestId"
+	}
 
 ## Startup
 
-An example startup using a yaml file for configuration can be seen below. Currently this is the only way to get configuration into Ocelot.
+An example startup using a json file for configuration can be seen below. Currently this is the only way to get configuration into Ocelot.
 
 	public class Startup
     {
@@ -45,9 +110,9 @@ An example startup using a yaml file for configuration can be seen below. Curren
         {
             var builder = new ConfigurationBuilder()
                 .SetBasePath(env.ContentRootPath)
-                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
+                .AddJsonFile("configuration.json", optional: true, reloadOnChange: true)
+				.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                 .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
-                .AddYamlFile("configuration.yaml")
                 .AddEnvironmentVariables();
 
             Configuration = builder.Build();
@@ -56,7 +121,7 @@ An example startup using a yaml file for configuration can be seen below. Curren
         // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
         public void ConfigureServices(IServiceCollection services)
         {
-            services.AddOcelotYamlConfiguration(Configuration);
+            services.AddOcelotFileConfiguration(Configuration);
             services.AddOcelot();
         }
 
diff --git a/src/Ocelot/Configuration/Creator/YamlOcelotConfigurationCreator.cs b/src/Ocelot/Configuration/Creator/FileOcelotConfigurationCreator.cs
similarity index 88%
rename from src/Ocelot/Configuration/Creator/YamlOcelotConfigurationCreator.cs
rename to src/Ocelot/Configuration/Creator/FileOcelotConfigurationCreator.cs
index d35a7321..510eb25a 100644
--- a/src/Ocelot/Configuration/Creator/YamlOcelotConfigurationCreator.cs
+++ b/src/Ocelot/Configuration/Creator/FileOcelotConfigurationCreator.cs
@@ -3,9 +3,9 @@ using System.Collections.Generic;
 using System.Text;
 using Microsoft.Extensions.Logging;
 using Microsoft.Extensions.Options;
+using Ocelot.Configuration.File;
 using Ocelot.Configuration.Parser;
 using Ocelot.Configuration.Validator;
-using Ocelot.Configuration.Yaml;
 using Ocelot.Responses;
 
 namespace Ocelot.Configuration.Creator
@@ -13,20 +13,20 @@ namespace Ocelot.Configuration.Creator
     /// 
     /// Register as singleton
     /// 
-    public class YamlOcelotConfigurationCreator : IOcelotConfigurationCreator
+    public class FileOcelotConfigurationCreator : IOcelotConfigurationCreator
     {
-        private readonly IOptions _options;
+        private readonly IOptions _options;
         private readonly IConfigurationValidator _configurationValidator;
         private const string RegExMatchEverything = ".*";
         private const string RegExMatchEndString = "$";
         private readonly IClaimToThingConfigurationParser _claimToThingConfigurationParser;
-        private readonly ILogger _logger;
+        private readonly ILogger _logger;
 
-        public YamlOcelotConfigurationCreator(
-            IOptions options, 
+        public FileOcelotConfigurationCreator(
+            IOptions options, 
             IConfigurationValidator configurationValidator, 
             IClaimToThingConfigurationParser claimToThingConfigurationParser, 
-            ILogger logger)
+            ILogger logger)
         {
             _options = options;
             _configurationValidator = configurationValidator;
@@ -42,7 +42,7 @@ namespace Ocelot.Configuration.Creator
         }
 
         /// 
-        /// This method is meant to be tempoary to convert a yaml config to an ocelot config...probably wont keep this but we will see
+        /// This method is meant to be tempoary to convert a config to an ocelot config...probably wont keep this but we will see
         /// will need a refactor at some point as its crap
         /// 
         private IOcelotConfiguration SetUpConfiguration()
@@ -63,16 +63,16 @@ namespace Ocelot.Configuration.Creator
 
             var reRoutes = new List();
 
-            foreach (var yamlReRoute in _options.Value.ReRoutes)
+            foreach (var reRoute in _options.Value.ReRoutes)
             {
-                var ocelotReRoute = SetUpReRoute(yamlReRoute);
+                var ocelotReRoute = SetUpReRoute(reRoute);
                 reRoutes.Add(ocelotReRoute);
             }
             
             return new OcelotConfiguration(reRoutes);
         }
 
-        private ReRoute SetUpReRoute(YamlReRoute reRoute)
+        private ReRoute SetUpReRoute(FileReRoute reRoute)
         {
             var upstreamTemplate = reRoute.UpstreamTemplate;
 
diff --git a/src/Ocelot/Configuration/Yaml/YamlAuthenticationOptions.cs b/src/Ocelot/Configuration/File/FileAuthenticationOptions.cs
similarity index 64%
rename from src/Ocelot/Configuration/Yaml/YamlAuthenticationOptions.cs
rename to src/Ocelot/Configuration/File/FileAuthenticationOptions.cs
index 16faa03e..0904d87e 100644
--- a/src/Ocelot/Configuration/Yaml/YamlAuthenticationOptions.cs
+++ b/src/Ocelot/Configuration/File/FileAuthenticationOptions.cs
@@ -1,9 +1,14 @@
 using System.Collections.Generic;
 
-namespace Ocelot.Configuration.Yaml
+namespace Ocelot.Configuration.File
 {
-    public class YamlAuthenticationOptions
+    public class FileAuthenticationOptions
     {
+        public FileAuthenticationOptions()
+        {
+            AdditionalScopes = new List();
+        }
+
         public string Provider { get; set; }
         public string ProviderRootUrl { get; set; }
         public string ScopeName { get; set; }
diff --git a/src/Ocelot/Configuration/File/FileConfiguration.cs b/src/Ocelot/Configuration/File/FileConfiguration.cs
new file mode 100644
index 00000000..d82fb94e
--- /dev/null
+++ b/src/Ocelot/Configuration/File/FileConfiguration.cs
@@ -0,0 +1,14 @@
+using System.Collections.Generic;
+
+namespace Ocelot.Configuration.File
+{
+    public class FileConfiguration
+    {
+        public FileConfiguration()
+        {
+            ReRoutes = new List();
+        }
+
+        public List ReRoutes { get; set; }
+    }
+}
diff --git a/src/Ocelot/Configuration/Yaml/YamlReRoute.cs b/src/Ocelot/Configuration/File/FileReRoute.cs
similarity index 79%
rename from src/Ocelot/Configuration/Yaml/YamlReRoute.cs
rename to src/Ocelot/Configuration/File/FileReRoute.cs
index 03dbe593..78a4d137 100644
--- a/src/Ocelot/Configuration/Yaml/YamlReRoute.cs
+++ b/src/Ocelot/Configuration/File/FileReRoute.cs
@@ -1,21 +1,22 @@
 using System.Collections.Generic;
 
-namespace Ocelot.Configuration.Yaml
+namespace Ocelot.Configuration.File
 {
-    public class YamlReRoute
+    public class FileReRoute
     {
-        public YamlReRoute()
+        public FileReRoute()
         {
             AddHeadersToRequest = new Dictionary();
             AddClaimsToRequest = new Dictionary();
             RouteClaimsRequirement = new Dictionary();
             AddQueriesToRequest = new Dictionary();
+            AuthenticationOptions = new FileAuthenticationOptions();
         }
 
         public string DownstreamTemplate { get; set; }
         public string UpstreamTemplate { get; set; }
         public string UpstreamHttpMethod { get; set; }
-        public YamlAuthenticationOptions AuthenticationOptions { get; set; }
+        public FileAuthenticationOptions AuthenticationOptions { get; set; }
         public Dictionary AddHeadersToRequest { get; set; }
         public Dictionary AddClaimsToRequest { get; set; }
         public Dictionary RouteClaimsRequirement { get; set; }
diff --git a/src/Ocelot/Configuration/Validator/YamlConfigurationValidator.cs b/src/Ocelot/Configuration/Validator/FileConfigurationValidator.cs
similarity index 75%
rename from src/Ocelot/Configuration/Validator/YamlConfigurationValidator.cs
rename to src/Ocelot/Configuration/Validator/FileConfigurationValidator.cs
index b69e9621..fb55a10b 100644
--- a/src/Ocelot/Configuration/Validator/YamlConfigurationValidator.cs
+++ b/src/Ocelot/Configuration/Validator/FileConfigurationValidator.cs
@@ -2,15 +2,15 @@
 using System.Collections.Generic;
 using System.Linq;
 using Ocelot.Authentication.Handler;
-using Ocelot.Configuration.Yaml;
+using Ocelot.Configuration.File;
 using Ocelot.Errors;
 using Ocelot.Responses;
 
 namespace Ocelot.Configuration.Validator
 {
-    public class YamlConfigurationValidator : IConfigurationValidator
+    public class FileConfigurationValidator : IConfigurationValidator
     {
-        public Response IsValid(YamlConfiguration configuration)
+        public Response IsValid(FileConfiguration configuration)
         {
             var result = CheckForDupliateReRoutes(configuration);
 
@@ -29,25 +29,25 @@ namespace Ocelot.Configuration.Validator
             return new OkResponse(result);
         }
 
-        private ConfigurationValidationResult CheckForUnsupportedAuthenticationProviders(YamlConfiguration configuration)
+        private ConfigurationValidationResult CheckForUnsupportedAuthenticationProviders(FileConfiguration configuration)
         {
             var errors = new List();
 
-            foreach (var yamlReRoute in configuration.ReRoutes)
+            foreach (var reRoute in configuration.ReRoutes)
             {
-                var isAuthenticated = !string.IsNullOrEmpty(yamlReRoute.AuthenticationOptions?.Provider);
+                var isAuthenticated = !string.IsNullOrEmpty(reRoute.AuthenticationOptions?.Provider);
 
                 if (!isAuthenticated)
                 {
                     continue;
                 }
 
-                if (IsSupportedAuthenticationProvider(yamlReRoute.AuthenticationOptions?.Provider))
+                if (IsSupportedAuthenticationProvider(reRoute.AuthenticationOptions?.Provider))
                 {
                     continue;
                 }
 
-                var error = new UnsupportedAuthenticationProviderError($"{yamlReRoute.AuthenticationOptions?.Provider} is unsupported authentication provider, upstream template is {yamlReRoute.UpstreamTemplate}, upstream method is {yamlReRoute.UpstreamHttpMethod}");
+                var error = new UnsupportedAuthenticationProviderError($"{reRoute.AuthenticationOptions?.Provider} is unsupported authentication provider, upstream template is {reRoute.UpstreamTemplate}, upstream method is {reRoute.UpstreamHttpMethod}");
                 errors.Add(error);
             }
 
@@ -63,7 +63,7 @@ namespace Ocelot.Configuration.Validator
             return Enum.TryParse(provider, true, out supportedProvider);
         }
 
-        private ConfigurationValidationResult CheckForDupliateReRoutes(YamlConfiguration configuration)
+        private ConfigurationValidationResult CheckForDupliateReRoutes(FileConfiguration configuration)
         {
             var hasDupes = configuration.ReRoutes
                    .GroupBy(x => new { x.UpstreamTemplate, x.UpstreamHttpMethod }).Any(x => x.Skip(1).Any());
diff --git a/src/Ocelot/Configuration/Validator/IConfigurationValidator.cs b/src/Ocelot/Configuration/Validator/IConfigurationValidator.cs
index 10955836..09bf7dae 100644
--- a/src/Ocelot/Configuration/Validator/IConfigurationValidator.cs
+++ b/src/Ocelot/Configuration/Validator/IConfigurationValidator.cs
@@ -1,10 +1,10 @@
-using Ocelot.Configuration.Yaml;
+using Ocelot.Configuration.File;
 using Ocelot.Responses;
 
 namespace Ocelot.Configuration.Validator
 {
     public interface IConfigurationValidator
     {
-        Response IsValid(YamlConfiguration configuration);
+        Response IsValid(FileConfiguration configuration);
     }
 }
diff --git a/src/Ocelot/Configuration/Yaml/YamlConfiguration.cs b/src/Ocelot/Configuration/Yaml/YamlConfiguration.cs
deleted file mode 100644
index 2224f7d5..00000000
--- a/src/Ocelot/Configuration/Yaml/YamlConfiguration.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using System.Collections.Generic;
-
-namespace Ocelot.Configuration.Yaml
-{
-    public class YamlConfiguration
-    {
-        public YamlConfiguration()
-        {
-            ReRoutes = new List();
-        }
-
-        public List ReRoutes { get; set; }
-    }
-}
diff --git a/src/Ocelot/DependencyInjection/ServiceCollectionExtensions.cs b/src/Ocelot/DependencyInjection/ServiceCollectionExtensions.cs
index 51299365..4984fc91 100644
--- a/src/Ocelot/DependencyInjection/ServiceCollectionExtensions.cs
+++ b/src/Ocelot/DependencyInjection/ServiceCollectionExtensions.cs
@@ -6,11 +6,11 @@ using Ocelot.Authentication.Handler.Factory;
 using Ocelot.Authorisation;
 using Ocelot.Claims;
 using Ocelot.Configuration.Creator;
+using Ocelot.Configuration.File;
 using Ocelot.Configuration.Parser;
 using Ocelot.Configuration.Provider;
 using Ocelot.Configuration.Repository;
 using Ocelot.Configuration.Validator;
-using Ocelot.Configuration.Yaml;
 using Ocelot.DownstreamRouteFinder.Finder;
 using Ocelot.DownstreamRouteFinder.UrlMatcher;
 using Ocelot.DownstreamUrlCreator.UrlTemplateReplacer;
@@ -26,15 +26,14 @@ namespace Ocelot.DependencyInjection
 {
     public static class ServiceCollectionExtensions
     {
-        public static IServiceCollection AddOcelotYamlConfiguration(this IServiceCollection services, IConfigurationRoot configurationRoot)
+        public static IServiceCollection AddOcelotFileConfiguration(this IServiceCollection services, IConfigurationRoot configurationRoot)
         {
-            // initial configuration from yaml
-            services.Configure(configurationRoot);
+            services.Configure(configurationRoot);
 
             // ocelot services.
-            services.AddSingleton();
+            services.AddSingleton();
             services.AddSingleton();
-            services.AddSingleton();
+            services.AddSingleton();
 
             return services;
         }
diff --git a/src/Ocelot/project.json b/src/Ocelot/project.json
index 05b6adaa..8f194c8a 100644
--- a/src/Ocelot/project.json
+++ b/src/Ocelot/project.json
@@ -27,16 +27,12 @@
         "Microsoft.NETCore.App": {
             "version": "1.0.1",
             "type": "platform"
-        },
-        "NetEscapades.Configuration.Yaml": "1.2.0",
-        "YamlDotNet": "4.0.0"
+        }
     },
 
     "frameworks": {
         "netcoreapp1.4": {
             "imports": [
-                "dotnet5.6",
-                "portable-net45+win8"
             ]
         }
     }
diff --git a/test/Ocelot.AcceptanceTests/AuthenticationTests.cs b/test/Ocelot.AcceptanceTests/AuthenticationTests.cs
index 4c68d85b..da63d134 100644
--- a/test/Ocelot.AcceptanceTests/AuthenticationTests.cs
+++ b/test/Ocelot.AcceptanceTests/AuthenticationTests.cs
@@ -9,7 +9,7 @@ using Microsoft.AspNetCore.Builder;
 using Microsoft.AspNetCore.Hosting;
 using Microsoft.AspNetCore.Http;
 using Microsoft.Extensions.DependencyInjection;
-using Ocelot.Configuration.Yaml;
+using Ocelot.Configuration.File;
 using TestStack.BDDfy;
 using Xunit;
 
@@ -31,16 +31,16 @@ namespace Ocelot.AcceptanceTests
         [Fact]
         public void should_return_401_using_identity_server_access_token()
         {
-            var yamlConfiguration = new YamlConfiguration
+            var configuration = new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                     {
-                        new YamlReRoute
+                        new FileReRoute
                         {
                             DownstreamTemplate = _downstreamServiceRootUrl,
                             UpstreamTemplate = "/",
                             UpstreamHttpMethod = "Post",
-                            AuthenticationOptions = new YamlAuthenticationOptions
+                            AuthenticationOptions = new FileAuthenticationOptions
                             {
                                 AdditionalScopes =  new List(),
                                 Provider = "IdentityServer",
@@ -55,7 +55,7 @@ namespace Ocelot.AcceptanceTests
 
             this.Given(x => x.GivenThereIsAnIdentityServerOn(_identityServerRootUrl, "api", AccessTokenType.Jwt))
                 .And(x => x.GivenThereIsAServiceRunningOn(_downstreamServiceRootUrl, 201, string.Empty))
-                .And(x => _steps.GivenThereIsAConfiguration(yamlConfiguration))
+                .And(x => _steps.GivenThereIsAConfiguration(configuration))
                 .And(x => _steps.GivenOcelotIsRunning())
                 .And(x => _steps.GivenThePostHasContent("postContent"))
                 .When(x => _steps.WhenIPostUrlOnTheApiGateway("/"))
@@ -66,16 +66,16 @@ namespace Ocelot.AcceptanceTests
         [Fact]
         public void should_return_401_using_identity_server_reference_token()
         {
-            var yamlConfiguration = new YamlConfiguration
+            var configuration = new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                     {
-                        new YamlReRoute
+                        new FileReRoute
                         {
                             DownstreamTemplate = _downstreamServiceRootUrl,
                             UpstreamTemplate = "/",
                             UpstreamHttpMethod = "Post",
-                            AuthenticationOptions = new YamlAuthenticationOptions
+                            AuthenticationOptions = new FileAuthenticationOptions
                             {
                                 AdditionalScopes =  new List(),
                                 Provider = "IdentityServer",
@@ -90,7 +90,7 @@ namespace Ocelot.AcceptanceTests
 
             this.Given(x => x.GivenThereIsAnIdentityServerOn(_identityServerRootUrl, "api", AccessTokenType.Reference))
                 .And(x => x.GivenThereIsAServiceRunningOn(_downstreamServiceRootUrl, 201, string.Empty))
-                .And(x => _steps.GivenThereIsAConfiguration(yamlConfiguration))
+                .And(x => _steps.GivenThereIsAConfiguration(configuration))
                 .And(x => _steps.GivenOcelotIsRunning())
                 .And(x => _steps.GivenThePostHasContent("postContent"))
                 .When(x => _steps.WhenIPostUrlOnTheApiGateway("/"))
@@ -101,16 +101,16 @@ namespace Ocelot.AcceptanceTests
         [Fact]
         public void should_return_response_200_using_identity_server()
         {
-            var yamlConfiguration = new YamlConfiguration
+            var configuration = new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                     {
-                        new YamlReRoute
+                        new FileReRoute
                         {
                             DownstreamTemplate = _downstreamServiceRootUrl,
                             UpstreamTemplate = "/",
                             UpstreamHttpMethod = "Get",
-                            AuthenticationOptions = new YamlAuthenticationOptions
+                            AuthenticationOptions = new FileAuthenticationOptions
                             {
                                 AdditionalScopes =  new List(),
                                 Provider = "IdentityServer",
@@ -126,7 +126,7 @@ namespace Ocelot.AcceptanceTests
             this.Given(x => x.GivenThereIsAnIdentityServerOn(_identityServerRootUrl, "api", AccessTokenType.Jwt))
                 .And(x => x.GivenThereIsAServiceRunningOn(_downstreamServiceRootUrl, 200, "Hello from Laura"))
                 .And(x => _steps.GivenIHaveAToken(_identityServerRootUrl))
-                .And(x => _steps.GivenThereIsAConfiguration(yamlConfiguration))
+                .And(x => _steps.GivenThereIsAConfiguration(configuration))
                 .And(x => _steps.GivenOcelotIsRunning())
                 .And(x => _steps.GivenIHaveAddedATokenToMyRequest())
                 .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@@ -138,16 +138,16 @@ namespace Ocelot.AcceptanceTests
         [Fact]
         public void should_return_201_using_identity_server_access_token()
         {
-            var yamlConfiguration = new YamlConfiguration
+            var configuration = new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                     {
-                        new YamlReRoute
+                        new FileReRoute
                         {
                             DownstreamTemplate = _downstreamServiceRootUrl,
                             UpstreamTemplate = "/",
                             UpstreamHttpMethod = "Post",
-                            AuthenticationOptions = new YamlAuthenticationOptions
+                            AuthenticationOptions = new FileAuthenticationOptions
                             {
                                 AdditionalScopes =  new List(),
                                 Provider = "IdentityServer",
@@ -163,7 +163,7 @@ namespace Ocelot.AcceptanceTests
             this.Given(x => x.GivenThereIsAnIdentityServerOn(_identityServerRootUrl, "api", AccessTokenType.Jwt))
                 .And(x => x.GivenThereIsAServiceRunningOn(_downstreamServiceRootUrl, 201, string.Empty))
                 .And(x => _steps.GivenIHaveAToken(_identityServerRootUrl))
-                .And(x => _steps.GivenThereIsAConfiguration(yamlConfiguration))
+                .And(x => _steps.GivenThereIsAConfiguration(configuration))
                 .And(x => _steps.GivenOcelotIsRunning())
                 .And(x => _steps.GivenIHaveAddedATokenToMyRequest())
                 .And(x => _steps.GivenThePostHasContent("postContent"))
@@ -175,16 +175,16 @@ namespace Ocelot.AcceptanceTests
         [Fact]
         public void should_return_201_using_identity_server_reference_token()
         {
-            var yamlConfiguration = new YamlConfiguration
+            var configuration = new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                     {
-                        new YamlReRoute
+                        new FileReRoute
                         {
                             DownstreamTemplate = _downstreamServiceRootUrl,
                             UpstreamTemplate = "/",
                             UpstreamHttpMethod = "Post",
-                            AuthenticationOptions = new YamlAuthenticationOptions
+                            AuthenticationOptions = new FileAuthenticationOptions
                             {
                                 AdditionalScopes = new List(),
                                 Provider = "IdentityServer",
@@ -200,7 +200,7 @@ namespace Ocelot.AcceptanceTests
             this.Given(x => x.GivenThereIsAnIdentityServerOn(_identityServerRootUrl, "api", AccessTokenType.Reference))
                 .And(x => x.GivenThereIsAServiceRunningOn(_downstreamServiceRootUrl, 201, string.Empty))
                 .And(x => _steps.GivenIHaveAToken(_identityServerRootUrl))
-                .And(x => _steps.GivenThereIsAConfiguration(yamlConfiguration))
+                .And(x => _steps.GivenThereIsAConfiguration(configuration))
                 .And(x => _steps.GivenOcelotIsRunning())
                 .And(x => _steps.GivenIHaveAddedATokenToMyRequest())
                 .And(x => _steps.GivenThePostHasContent("postContent"))
diff --git a/test/Ocelot.AcceptanceTests/AuthorisationTests.cs b/test/Ocelot.AcceptanceTests/AuthorisationTests.cs
index bd2a9cab..8dfb1314 100644
--- a/test/Ocelot.AcceptanceTests/AuthorisationTests.cs
+++ b/test/Ocelot.AcceptanceTests/AuthorisationTests.cs
@@ -9,7 +9,7 @@ using Microsoft.AspNetCore.Builder;
 using Microsoft.AspNetCore.Hosting;
 using Microsoft.AspNetCore.Http;
 using Microsoft.Extensions.DependencyInjection;
-using Ocelot.Configuration.Yaml;
+using Ocelot.Configuration.File;
 using TestStack.BDDfy;
 using Xunit;
 
@@ -29,16 +29,16 @@ namespace Ocelot.AcceptanceTests
         [Fact]
         public void should_return_response_200_authorising_route()
         {
-            var yamlConfiguration = new YamlConfiguration
+            var configuration = new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                     {
-                        new YamlReRoute
+                        new FileReRoute
                         {
                             DownstreamTemplate = "http://localhost:51876/",
                             UpstreamTemplate = "/",
                             UpstreamHttpMethod = "Get",
-                            AuthenticationOptions = new YamlAuthenticationOptions
+                            AuthenticationOptions = new FileAuthenticationOptions
                             {
                                 AdditionalScopes =  new List(),
                                 Provider = "IdentityServer",
@@ -71,7 +71,7 @@ namespace Ocelot.AcceptanceTests
             this.Given(x => x.GivenThereIsAnIdentityServerOn("http://localhost:51888", "api", AccessTokenType.Jwt))
                 .And(x => x.GivenThereIsAServiceRunningOn("http://localhost:51876", 200, "Hello from Laura"))
                 .And(x => _steps.GivenIHaveAToken("http://localhost:51888"))
-                .And(x => _steps.GivenThereIsAConfiguration(yamlConfiguration))
+                .And(x => _steps.GivenThereIsAConfiguration(configuration))
                 .And(x => _steps.GivenOcelotIsRunning())
                 .And(x => _steps.GivenIHaveAddedATokenToMyRequest())
                 .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@@ -83,16 +83,16 @@ namespace Ocelot.AcceptanceTests
         [Fact]
         public void should_return_response_403_authorising_route()
         {
-            var yamlConfiguration = new YamlConfiguration
+            var configuration = new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                     {
-                        new YamlReRoute
+                        new FileReRoute
                         {
                             DownstreamTemplate = "http://localhost:51876/",
                             UpstreamTemplate = "/",
                             UpstreamHttpMethod = "Get",
-                            AuthenticationOptions = new YamlAuthenticationOptions
+                            AuthenticationOptions = new FileAuthenticationOptions
                             {
                                 AdditionalScopes =  new List(),
                                 Provider = "IdentityServer",
@@ -124,7 +124,7 @@ namespace Ocelot.AcceptanceTests
             this.Given(x => x.GivenThereIsAnIdentityServerOn("http://localhost:51888", "api", AccessTokenType.Jwt))
                 .And(x => x.GivenThereIsAServiceRunningOn("http://localhost:51876", 200, "Hello from Laura"))
                 .And(x => _steps.GivenIHaveAToken("http://localhost:51888"))
-                .And(x => _steps.GivenThereIsAConfiguration(yamlConfiguration))
+                .And(x => _steps.GivenThereIsAConfiguration(configuration))
                 .And(x => _steps.GivenOcelotIsRunning())
                 .And(x => _steps.GivenIHaveAddedATokenToMyRequest())
                 .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
diff --git a/test/Ocelot.AcceptanceTests/ClaimsToHeadersForwardingTests.cs b/test/Ocelot.AcceptanceTests/ClaimsToHeadersForwardingTests.cs
index 0569c90a..c181a445 100644
--- a/test/Ocelot.AcceptanceTests/ClaimsToHeadersForwardingTests.cs
+++ b/test/Ocelot.AcceptanceTests/ClaimsToHeadersForwardingTests.cs
@@ -10,7 +10,7 @@ using Microsoft.AspNetCore.Builder;
 using Microsoft.AspNetCore.Hosting;
 using Microsoft.AspNetCore.Http;
 using Microsoft.Extensions.DependencyInjection;
-using Ocelot.Configuration.Yaml;
+using Ocelot.Configuration.File;
 using TestStack.BDDfy;
 using Xunit;
 
@@ -44,16 +44,16 @@ namespace Ocelot.AcceptanceTests
                 }
             };
 
-            var yamlConfiguration = new YamlConfiguration
+            var configuration = new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                     {
-                        new YamlReRoute
+                        new FileReRoute
                         {
                             DownstreamTemplate = "http://localhost:52876/",
                             UpstreamTemplate = "/",
                             UpstreamHttpMethod = "Get",
-                            AuthenticationOptions = new YamlAuthenticationOptions
+                            AuthenticationOptions = new FileAuthenticationOptions
                             {
                                 AdditionalScopes = new List
                                 {
@@ -79,7 +79,7 @@ namespace Ocelot.AcceptanceTests
             this.Given(x => x.GivenThereIsAnIdentityServerOn("http://localhost:52888", "api", AccessTokenType.Jwt, user))
                 .And(x => x.GivenThereIsAServiceRunningOn("http://localhost:52876", 200))
                 .And(x => _steps.GivenIHaveAToken("http://localhost:52888"))
-                .And(x => _steps.GivenThereIsAConfiguration(yamlConfiguration))
+                .And(x => _steps.GivenThereIsAConfiguration(configuration))
                 .And(x => _steps.GivenOcelotIsRunning())
                 .And(x => _steps.GivenIHaveAddedATokenToMyRequest())
                 .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
diff --git a/test/Ocelot.AcceptanceTests/ClaimsToQueryStringForwardingTests.cs b/test/Ocelot.AcceptanceTests/ClaimsToQueryStringForwardingTests.cs
index a98031ec..51e76942 100644
--- a/test/Ocelot.AcceptanceTests/ClaimsToQueryStringForwardingTests.cs
+++ b/test/Ocelot.AcceptanceTests/ClaimsToQueryStringForwardingTests.cs
@@ -11,7 +11,7 @@ using Microsoft.AspNetCore.Hosting;
 using Microsoft.AspNetCore.Http;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.Primitives;
-using Ocelot.Configuration.Yaml;
+using Ocelot.Configuration.File;
 using TestStack.BDDfy;
 using Xunit;
 
@@ -44,16 +44,16 @@ namespace Ocelot.AcceptanceTests
                 }
             };
 
-            var yamlConfiguration = new YamlConfiguration
+            var configuration = new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                     {
-                        new YamlReRoute
+                        new FileReRoute
                         {
                             DownstreamTemplate = "http://localhost:57876/",
                             UpstreamTemplate = "/",
                             UpstreamHttpMethod = "Get",
-                            AuthenticationOptions = new YamlAuthenticationOptions
+                            AuthenticationOptions = new FileAuthenticationOptions
                             {
                                 AdditionalScopes = new List
                                 {
@@ -79,7 +79,7 @@ namespace Ocelot.AcceptanceTests
             this.Given(x => x.GivenThereIsAnIdentityServerOn("http://localhost:57888", "api", AccessTokenType.Jwt, user))
                 .And(x => x.GivenThereIsAServiceRunningOn("http://localhost:57876", 200))
                 .And(x => _steps.GivenIHaveAToken("http://localhost:57888"))
-                .And(x => _steps.GivenThereIsAConfiguration(yamlConfiguration))
+                .And(x => _steps.GivenThereIsAConfiguration(configuration))
                 .And(x => _steps.GivenOcelotIsRunning())
                 .And(x => _steps.GivenIHaveAddedATokenToMyRequest())
                 .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
diff --git a/test/Ocelot.AcceptanceTests/CustomMiddlewareTests.cs b/test/Ocelot.AcceptanceTests/CustomMiddlewareTests.cs
index abc7f9b8..ec00a6af 100644
--- a/test/Ocelot.AcceptanceTests/CustomMiddlewareTests.cs
+++ b/test/Ocelot.AcceptanceTests/CustomMiddlewareTests.cs
@@ -8,7 +8,7 @@ using Microsoft.AspNetCore.Builder;
 using Microsoft.AspNetCore.Hosting;
 using Microsoft.AspNetCore.Http;
 using Microsoft.Extensions.DependencyInjection;
-using Ocelot.Configuration.Yaml;
+using Ocelot.Configuration.File;
 using Ocelot.Infrastructure.RequestData;
 using Ocelot.Middleware;
 using TestStack.BDDfy;
@@ -25,7 +25,7 @@ namespace Ocelot.AcceptanceTests
         public CustomMiddlewareTests()
         {
             _steps = new Steps();;
-            _configurationPath = "configuration.yaml";
+            _configurationPath = "configuration.json";
         }
 
         [Fact]
@@ -39,11 +39,11 @@ namespace Ocelot.AcceptanceTests
                 }
             };
 
-            var yamlConfiguration = new YamlConfiguration
+            var fileConfiguration = new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                     {
-                        new YamlReRoute
+                        new FileReRoute
                         {
                             DownstreamTemplate = "http://localhost:41879/",
                             UpstreamTemplate = "/",
@@ -53,7 +53,7 @@ namespace Ocelot.AcceptanceTests
             };
 
             this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:41879", 200))
-                .And(x => _steps.GivenThereIsAConfiguration(yamlConfiguration, _configurationPath))
+                .And(x => _steps.GivenThereIsAConfiguration(fileConfiguration, _configurationPath))
                 .And(x => _steps.GivenOcelotIsRunning(configuration))
                 .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
                 .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK))
@@ -72,11 +72,11 @@ namespace Ocelot.AcceptanceTests
                 }
             };
 
-            var yamlConfiguration = new YamlConfiguration
+            var fileConfiguration = new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                     {
-                        new YamlReRoute
+                        new FileReRoute
                         {
                             DownstreamTemplate = "http://localhost:41879/",
                             UpstreamTemplate = "/",
@@ -86,7 +86,7 @@ namespace Ocelot.AcceptanceTests
             };
 
             this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:41879", 200))
-                .And(x => _steps.GivenThereIsAConfiguration(yamlConfiguration, _configurationPath))
+                .And(x => _steps.GivenThereIsAConfiguration(fileConfiguration, _configurationPath))
                 .And(x => _steps.GivenOcelotIsRunning(configuration))
                 .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
                 .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK))
diff --git a/test/Ocelot.AcceptanceTests/RequestIdTests.cs b/test/Ocelot.AcceptanceTests/RequestIdTests.cs
index 0c3407b5..7a733f24 100644
--- a/test/Ocelot.AcceptanceTests/RequestIdTests.cs
+++ b/test/Ocelot.AcceptanceTests/RequestIdTests.cs
@@ -8,7 +8,7 @@ using Microsoft.AspNetCore.Builder;
 using Microsoft.AspNetCore.Hosting;
 using Microsoft.AspNetCore.Http;
 using Microsoft.Extensions.Primitives;
-using Ocelot.Configuration.Yaml;
+using Ocelot.Configuration.File;
 using TestStack.BDDfy;
 using Xunit;
 
@@ -27,11 +27,11 @@ namespace Ocelot.AcceptanceTests
         [Fact]
         public void should_use_default_request_id_and_forward()
         {
-            var yamlConfiguration = new YamlConfiguration
+            var configuration = new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                     {
-                        new YamlReRoute
+                        new FileReRoute
                         {
                             DownstreamTemplate = "http://localhost:51879/",
                             UpstreamTemplate = "/",
@@ -42,7 +42,7 @@ namespace Ocelot.AcceptanceTests
             };
 
             this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51879"))
-                .And(x => _steps.GivenThereIsAConfiguration(yamlConfiguration))
+                .And(x => _steps.GivenThereIsAConfiguration(configuration))
                 .And(x => _steps.GivenOcelotIsRunning())
                 .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
                 .Then(x => _steps.ThenTheRequestIdIsReturned())
@@ -52,11 +52,11 @@ namespace Ocelot.AcceptanceTests
         [Fact]
         public void should_use_request_id_and_forward()
         {
-            var yamlConfiguration = new YamlConfiguration
+            var configuration = new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                     {
-                        new YamlReRoute
+                        new FileReRoute
                         {
                             DownstreamTemplate = "http://localhost:51879/",
                             UpstreamTemplate = "/",
@@ -69,7 +69,7 @@ namespace Ocelot.AcceptanceTests
             var requestId = Guid.NewGuid().ToString();
 
             this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51879"))
-                .And(x => _steps.GivenThereIsAConfiguration(yamlConfiguration))
+                .And(x => _steps.GivenThereIsAConfiguration(configuration))
                 .And(x => _steps.GivenOcelotIsRunning())
                 .When(x => _steps.WhenIGetUrlOnTheApiGateway("/", requestId))
                 .Then(x => _steps.ThenTheRequestIdIsReturned(requestId))
diff --git a/test/Ocelot.AcceptanceTests/ReturnsErrorTests.cs b/test/Ocelot.AcceptanceTests/ReturnsErrorTests.cs
index 1feb8f67..902de662 100644
--- a/test/Ocelot.AcceptanceTests/ReturnsErrorTests.cs
+++ b/test/Ocelot.AcceptanceTests/ReturnsErrorTests.cs
@@ -4,7 +4,7 @@ using System.IO;
 using System.Net;
 using Microsoft.AspNetCore.Builder;
 using Microsoft.AspNetCore.Hosting;
-using Ocelot.Configuration.Yaml;
+using Ocelot.Configuration.File;
 using TestStack.BDDfy;
 using Xunit;
 
@@ -23,21 +23,21 @@ namespace Ocelot.AcceptanceTests
         [Fact]
         public void should_return_response_200_and_foward_claim_as_header()
         {
-            var yamlConfiguration = new YamlConfiguration
+            var configuration = new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                     {
-                        new YamlReRoute
+                        new FileReRoute
                         {
                             DownstreamTemplate = "http://localhost:53876/",
                             UpstreamTemplate = "/",
-                            UpstreamHttpMethod = "Get",
+                            UpstreamHttpMethod = "Get"
                         }
                     }
             };
 
             this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:53876"))
-                .And(x => _steps.GivenThereIsAConfiguration(yamlConfiguration))
+                .And(x => _steps.GivenThereIsAConfiguration(configuration))
                 .And(x => _steps.GivenOcelotIsRunning())
                 .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
                 .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.InternalServerError))
diff --git a/test/Ocelot.AcceptanceTests/RoutingTests.cs b/test/Ocelot.AcceptanceTests/RoutingTests.cs
index a7ac4996..57b8fa07 100644
--- a/test/Ocelot.AcceptanceTests/RoutingTests.cs
+++ b/test/Ocelot.AcceptanceTests/RoutingTests.cs
@@ -5,7 +5,7 @@ using System.Net;
 using Microsoft.AspNetCore.Builder;
 using Microsoft.AspNetCore.Hosting;
 using Microsoft.AspNetCore.Http;
-using Ocelot.Configuration.Yaml;
+using Ocelot.Configuration.File;
 using TestStack.BDDfy;
 using Xunit;
 
@@ -24,7 +24,7 @@ namespace Ocelot.AcceptanceTests
         [Fact]
         public void should_return_response_404_when_no_configuration_at_all()
         {
-            this.Given(x => _steps.GivenThereIsAConfiguration(new YamlConfiguration()))
+            this.Given(x => _steps.GivenThereIsAConfiguration(new FileConfiguration()))
                 .And(x => _steps.GivenOcelotIsRunning())
                 .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
                 .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.NotFound))
@@ -34,11 +34,11 @@ namespace Ocelot.AcceptanceTests
         [Fact]
         public void should_return_response_200_with_simple_url()
         {
-            var yamlConfiguration = new YamlConfiguration
+            var configuration = new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                     {
-                        new YamlReRoute
+                        new FileReRoute
                         {
                             DownstreamTemplate = "http://localhost:51879/",
                             UpstreamTemplate = "/",
@@ -48,7 +48,7 @@ namespace Ocelot.AcceptanceTests
             };
 
             this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51879", 200, "Hello from Laura"))
-                .And(x => _steps.GivenThereIsAConfiguration(yamlConfiguration))
+                .And(x => _steps.GivenThereIsAConfiguration(configuration))
                 .And(x => _steps.GivenOcelotIsRunning())
                 .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
                 .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK))
@@ -59,11 +59,11 @@ namespace Ocelot.AcceptanceTests
         [Fact]
         public void should_return_response_200_with_complex_url()
         {
-            var yamlConfiguration = new YamlConfiguration
+            var configuration = new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                     {
-                        new YamlReRoute
+                        new FileReRoute
                         {
                             DownstreamTemplate = "http://localhost:51879/api/products/{productId}",
                             UpstreamTemplate = "/products/{productId}",
@@ -73,7 +73,7 @@ namespace Ocelot.AcceptanceTests
             };
 
             this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51879/api/products/1", 200, "Some Product"))
-                .And(x => _steps.GivenThereIsAConfiguration(yamlConfiguration))
+                .And(x => _steps.GivenThereIsAConfiguration(configuration))
                 .And(x => _steps.GivenOcelotIsRunning())
                 .When(x => _steps.WhenIGetUrlOnTheApiGateway("/products/1"))
                 .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK))
@@ -84,11 +84,11 @@ namespace Ocelot.AcceptanceTests
         [Fact]
         public void should_return_response_201_with_simple_url()
         {
-            var yamlConfiguration = new YamlConfiguration
+            var configuration = new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                     {
-                        new YamlReRoute
+                        new FileReRoute
                         {
                             DownstreamTemplate = "http://localhost:51879/",
                             UpstreamTemplate = "/",
@@ -98,7 +98,7 @@ namespace Ocelot.AcceptanceTests
             };
 
             this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51879", 201, string.Empty))
-                .And(x => _steps.GivenThereIsAConfiguration(yamlConfiguration))
+                .And(x => _steps.GivenThereIsAConfiguration(configuration))
                 .And(x => _steps.GivenOcelotIsRunning())
                 .And(x => _steps.GivenThePostHasContent("postContent"))
                 .When(x => _steps.WhenIPostUrlOnTheApiGateway("/"))
@@ -109,11 +109,11 @@ namespace Ocelot.AcceptanceTests
         [Fact]
         public void should_return_response_201_with_complex_query_string()
         {
-            var yamlConfiguration = new YamlConfiguration
+            var configuration = new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                     {
-                        new YamlReRoute
+                        new FileReRoute
                         {
                             DownstreamTemplate = "http://localhost:51879/newThing",
                             UpstreamTemplate = "/newThing",
@@ -123,7 +123,7 @@ namespace Ocelot.AcceptanceTests
             };
 
             this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51879", 200, "Hello from Laura"))
-                .And(x => _steps.GivenThereIsAConfiguration(yamlConfiguration))
+                .And(x => _steps.GivenThereIsAConfiguration(configuration))
                 .And(x => _steps.GivenOcelotIsRunning())
                 .When(x => _steps.WhenIGetUrlOnTheApiGateway("/newThing?DeviceType=IphoneApp&Browser=moonpigIphone&BrowserString=-&CountryCode=123&DeviceName=iPhone 5 (GSM+CDMA)&OperatingSystem=iPhone OS 7.1.2&BrowserVersion=3708AdHoc&ipAddress=-"))
                 .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK))
diff --git a/test/Ocelot.AcceptanceTests/Steps.cs b/test/Ocelot.AcceptanceTests/Steps.cs
index 23a7cdbc..7b9a8f83 100644
--- a/test/Ocelot.AcceptanceTests/Steps.cs
+++ b/test/Ocelot.AcceptanceTests/Steps.cs
@@ -10,12 +10,11 @@ using Microsoft.AspNetCore.TestHost;
 using Microsoft.Extensions.Configuration;
 using Microsoft.Extensions.Logging;
 using Newtonsoft.Json;
-using Ocelot.Configuration.Yaml;
+using Ocelot.Configuration.File;
 using Ocelot.DependencyInjection;
 using Ocelot.ManualTest;
 using Ocelot.Middleware;
 using Shouldly;
-using YamlDotNet.Serialization;
 
 namespace Ocelot.AcceptanceTests
 {
@@ -29,40 +28,34 @@ namespace Ocelot.AcceptanceTests
         public HttpClient OcelotClient => _ocelotClient;
         public string RequestIdKey = "OcRequestId";
 
-        public void GivenThereIsAConfiguration(YamlConfiguration yamlConfiguration)
+        public void GivenThereIsAConfiguration(FileConfiguration fileConfiguration)
         {
             var configurationPath = TestConfiguration.ConfigurationPath;
 
-            var serializer = new Serializer();
+            var jsonConfiguration = JsonConvert.SerializeObject(fileConfiguration);
 
             if (File.Exists(configurationPath))
             {
                 File.Delete(configurationPath);
             }
 
-            using (TextWriter writer = File.CreateText(configurationPath))
-            {
-                serializer.Serialize(writer, yamlConfiguration);
-            }
+            File.WriteAllText(configurationPath, jsonConfiguration);
         }
 
-        public void GivenThereIsAConfiguration(YamlConfiguration yamlConfiguration, string configurationPath)
+        public void GivenThereIsAConfiguration(FileConfiguration fileConfiguration, string configurationPath)
         {
-            var serializer = new Serializer();
+            var jsonConfiguration = JsonConvert.SerializeObject(fileConfiguration);
 
             if (File.Exists(configurationPath))
             {
                 File.Delete(configurationPath);
             }
 
-            using (TextWriter writer = File.CreateText(configurationPath))
-            {
-                serializer.Serialize(writer, yamlConfiguration);
-            }
+            File.WriteAllText(configurationPath, jsonConfiguration);
         }
 
         /// 
-        /// This is annoying cos it should be in the constructor but we need to set up the yaml file before calling startup so its a step.
+        /// This is annoying cos it should be in the constructor but we need to set up the file before calling startup so its a step.
         /// 
         public void GivenOcelotIsRunning()
         {
@@ -73,14 +66,14 @@ namespace Ocelot.AcceptanceTests
         }
 
         /// 
-        /// This is annoying cos it should be in the constructor but we need to set up the yaml file before calling startup so its a step.
+        /// This is annoying cos it should be in the constructor but we need to set up the file before calling startup so its a step.
         /// 
         public void GivenOcelotIsRunning(OcelotMiddlewareConfiguration ocelotMiddlewareConfig)
         {
             var builder = new ConfigurationBuilder()
                 .SetBasePath(Directory.GetCurrentDirectory())
                 .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
-                .AddYamlFile("configuration.yaml")
+                .AddJsonFile("configuration.json")
                 .AddEnvironmentVariables();
 
             var configuration = builder.Build();
@@ -89,7 +82,7 @@ namespace Ocelot.AcceptanceTests
                 .UseConfiguration(configuration)
                 .ConfigureServices(s =>
                 {
-                    s.AddOcelotYamlConfiguration(configuration);
+                    s.AddOcelotFileConfiguration(configuration);
                     s.AddOcelot();
                 })
                 .ConfigureLogging(l =>
diff --git a/test/Ocelot.AcceptanceTests/TestConfiguration.cs b/test/Ocelot.AcceptanceTests/TestConfiguration.cs
index 59547854..69ccc690 100644
--- a/test/Ocelot.AcceptanceTests/TestConfiguration.cs
+++ b/test/Ocelot.AcceptanceTests/TestConfiguration.cs
@@ -3,6 +3,6 @@
     public static class TestConfiguration
     {
         public static double Version => 1.4;
-        public static string ConfigurationPath => $"./bin/Debug/netcoreapp{Version}/configuration.yaml";
+        public static string ConfigurationPath => $"./bin/Debug/netcoreapp{Version}/configuration.json";
     }
 }
diff --git a/test/Ocelot.AcceptanceTests/configuration.json b/test/Ocelot.AcceptanceTests/configuration.json
new file mode 100644
index 00000000..b4a490dc
--- /dev/null
+++ b/test/Ocelot.AcceptanceTests/configuration.json
@@ -0,0 +1 @@
+{"ReRoutes":[{"DownstreamTemplate":"http://localhost:41879/","UpstreamTemplate":"/","UpstreamHttpMethod":"Get","AuthenticationOptions":{"Provider":null,"ProviderRootUrl":null,"ScopeName":null,"RequireHttps":false,"AdditionalScopes":[],"ScopeSecret":null},"AddHeadersToRequest":{},"AddClaimsToRequest":{},"RouteClaimsRequirement":{},"AddQueriesToRequest":{},"RequestIdKey":null}]}
\ No newline at end of file
diff --git a/test/Ocelot.AcceptanceTests/configuration.yaml b/test/Ocelot.AcceptanceTests/configuration.yaml
deleted file mode 100644
index 82266808..00000000
--- a/test/Ocelot.AcceptanceTests/configuration.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-ReRoutes:
-- DownstreamTemplate: http://localhost:41879/
-  UpstreamTemplate: /
-  UpstreamHttpMethod: Get
-  AddHeadersToRequest: {}
-  AddClaimsToRequest: {}
-  RouteClaimsRequirement: {}
-  AddQueriesToRequest: {}
diff --git a/test/Ocelot.AcceptanceTests/project.json b/test/Ocelot.AcceptanceTests/project.json
index b58a4f94..dec6fd7b 100644
--- a/test/Ocelot.AcceptanceTests/project.json
+++ b/test/Ocelot.AcceptanceTests/project.json
@@ -4,7 +4,7 @@
   "buildOptions": {
     "copyToOutput": {
         "include": [
-            "middlewareConfiguration.yaml"
+            "configuration.json"
         ]
     }
   },
@@ -22,7 +22,7 @@
         "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
         "Microsoft.AspNetCore.Http": "1.0.0",
         "Ocelot": "1.0.0-*",
-        "xunit": "2.1.0",
+        "xunit": "2.2.0-beta2-build3300",
         "dotnet-test-xunit": "2.2.0-preview2-build1029",
         "Ocelot.ManualTest": "1.0.0-*",
         "Microsoft.AspNetCore.TestHost": "1.0.0",
@@ -34,15 +34,12 @@
             "type": "platform"
         },
         "Shouldly": "2.8.2",
-        "TestStack.BDDfy": "4.3.2",
-        "YamlDotNet": "4.0.0"
+        "TestStack.BDDfy": "4.3.2"
     },
 
   "frameworks": {
     "netcoreapp1.4": {
       "imports": [
-        "dotnet5.6",
-        "portable-net45+win8"
       ]
     }
   }
diff --git a/test/Ocelot.Benchmarks/project.json b/test/Ocelot.Benchmarks/project.json
index 89133711..791fea3d 100644
--- a/test/Ocelot.Benchmarks/project.json
+++ b/test/Ocelot.Benchmarks/project.json
@@ -16,8 +16,6 @@
     "frameworks": {
         "netcoreapp1.4": {
             "imports": [
-                "dotnet5.6",
-                "portable-net45+win8"
             ]
         }
     }
diff --git a/test/Ocelot.ManualTest/Startup.cs b/test/Ocelot.ManualTest/Startup.cs
index 8eb7cf9f..f53e894c 100644
--- a/test/Ocelot.ManualTest/Startup.cs
+++ b/test/Ocelot.ManualTest/Startup.cs
@@ -16,7 +16,7 @@ namespace Ocelot.ManualTest
                 .SetBasePath(env.ContentRootPath)
                 .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                 .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
-                .AddYamlFile("configuration.yaml")
+                .AddJsonFile("configuration.json")
                 .AddEnvironmentVariables();
 
             Configuration = builder.Build();
@@ -27,7 +27,7 @@ namespace Ocelot.ManualTest
         // This method gets called by the runtime. Use this method to add services to the container.
         public void ConfigureServices(IServiceCollection services)
         {
-            services.AddOcelotYamlConfiguration(Configuration);
+            services.AddOcelotFileConfiguration(Configuration);
             services.AddOcelot();
         }
 
diff --git a/test/Ocelot.ManualTest/configuration.json b/test/Ocelot.ManualTest/configuration.json
new file mode 100644
index 00000000..6207d5cd
--- /dev/null
+++ b/test/Ocelot.ManualTest/configuration.json
@@ -0,0 +1,81 @@
+{
+    "ReRoutes": [
+        {
+            "DownstreamTemplate": "http://localhost:52876/",
+            "UpstreamTemplate": "/identityserverexample",
+            "UpstreamHttpMethod": "Get",
+            "AuthenticationOptions": {
+                "Provider": "IdentityServer",
+                "ProviderRootUrl": "http://localhost:52888",
+                "ScopeName": "api",
+                "AdditionalScopes": [
+                    "openid",
+                    "offline_access"
+                ],
+                "ScopeSecret": "secret"
+            },
+            "AddHeadersToRequest": {
+                "CustomerId": "Claims[CustomerId] > value",
+                "LocationId": "Claims[LocationId] > value",
+                "UserType": "Claims[sub] > value[0] > |",
+                "UserId": "Claims[sub] > value[1] > |"
+            },
+            "AddClaimsToRequest": {
+                "CustomerId": "Claims[CustomerId] > value",
+                "LocationId": "Claims[LocationId] > value",
+                "UserType": "Claims[sub] > value[0] > |",
+                "UserId": "Claims[sub] > value[1] > |"
+            },
+            "AddQueriesToRequest": {
+                "CustomerId": "Claims[CustomerId] > value",
+                "LocationId": "Claims[LocationId] > value",
+                "UserType": "Claims[sub] > value[0] > |",
+                "UserId": "Claims[sub] > value[1] > |"
+            },
+            "RouteClaimsRequirement": {
+                "UserType": "registered"
+            },
+            "RequestIdKey": "OcRequestId"
+        },
+        {
+            "DownstreamTemplate": "http://jsonplaceholder.typicode.com/posts",
+            "UpstreamTemplate": "/posts",
+            "UpstreamHttpMethod": "Get"
+        },
+        {
+            "DownstreamTemplate": "http://jsonplaceholder.typicode.com/posts/{postId}",
+            "UpstreamTemplate": "/posts/{postId}",
+            "UpstreamHttpMethod": "Get"
+        },
+        {
+            "DownstreamTemplate": "http://jsonplaceholder.typicode.com/posts/{postId}/comments",
+            "UpstreamTemplate": "/posts/{postId}/comments",
+            "UpstreamHttpMethod": "Get"
+        },
+        {
+            "DownstreamTemplate": "http://jsonplaceholder.typicode.com/comments",
+            "UpstreamTemplate": "/comments",
+            "UpstreamHttpMethod": "Get"
+        },
+        {
+            "DownstreamTemplate": "http://jsonplaceholder.typicode.com/posts",
+            "UpstreamTemplate": "/posts",
+            "UpstreamHttpMethod": "Post"
+        },
+        {
+            "DownstreamTemplate": "http://jsonplaceholder.typicode.com/posts/{postId}",
+            "UpstreamTemplate": "/posts/{postId}",
+            "UpstreamHttpMethod": "Put"
+        },
+        {
+            "DownstreamTemplate": "http://jsonplaceholder.typicode.com/posts/{postId}",
+            "UpstreamTemplate": "/posts/{postId}",
+            "UpstreamHttpMethod": "Patch"
+        },
+        {
+            "DownstreamTemplate": "http://jsonplaceholder.typicode.com/posts/{postId}",
+            "UpstreamTemplate": "/posts/{postId}",
+            "UpstreamHttpMethod": "Delete"
+        }
+    ]
+}
\ No newline at end of file
diff --git a/test/Ocelot.ManualTest/configuration.yaml b/test/Ocelot.ManualTest/configuration.yaml
deleted file mode 100644
index 2d2aab11..00000000
--- a/test/Ocelot.ManualTest/configuration.yaml
+++ /dev/null
@@ -1,88 +0,0 @@
-ReRoutes:
-# The url we are forwarding the request to
-- DownstreamTemplate: http://localhost:52876/
-# The path we are listening on for this re route
-  UpstreamTemplate: /identityserverexample
-# The method we are listening for on this re route
-  UpstreamHttpMethod: Get
-# Only support identity server at the moment
-  AuthenticationOptions:
-    Provider: IdentityServer
-    ProviderRootUrl: http://localhost:52888
-    ScopeName: api
-    AdditionalScopes:
-    - openid
-    - offline_access
-# Required if using reference tokens
-    ScopeSecret: secret
-# WARNING - will overwrite any headers already in the request with these values.
-# Ocelot will look in the user claims for the key in [] then return the value and save
-# it as a header with the given key before the colon (:). The index selection on value 
-# means that Ocelot will use the delimiter specified after the next > to split the 
-# claim value and return the index specified.
-  AddHeadersToRequest:
-    CustomerId: Claims[CustomerId] > value
-    LocationId: Claims[LocationId] > value
-    UserType: Claims[sub] > value[0] > |
-    UserId: Claims[sub] > value[1] > |
-# WARNING - will overwrite any claims already in the request with these values.
-# Ocelot will look in the user claims for the key in [] then return the value and save
-# it as a claim with the given key before the colon (:). The index selection on value 
-# means that Ocelot will use the delimiter specified after the next > to split the 
-# claim value and return the index specified.
-  AddClaimsToRequest:
-    CustomerId: Claims[CustomerId] > value
-    LocationId: Claims[LocationId] > value
-    UserType: Claims[sub] > value[0] > |
-    UserId: Claims[sub] > value[1] > |
-# WARNING - will overwrite any query string entries already in the request with these values.
-# Ocelot will look in the user claims for the key in [] then return the value and save
-# it as a query string with the given key before the colon (:). The index selection on value 
-# means that Ocelot will use the delimiter specified after the next > to split the 
-# claim value and return the index specified.
-  AddQueriesToRequest:
-    CustomerId: Claims[CustomerId] > value
-    LocationId: Claims[LocationId] > value
-    UserType: Claims[sub] > value[0] > |
-    UserId: Claims[sub] > value[1] > |
-# This specifies any claims that are required for the user to access this re route.
-# In this example the user must have the claim type UserType and 
-# the value must be registered
-  RouteClaimsRequirement:
-    UserType: registered
-# This tells Ocelot to look for a header and use its value as a request/correlation id. 
-# If it is set here then the id will be forwarded to the downstream service. If it
-# does not then it will not be forwarded
-  RequestIdKey: OcRequestId
-# The next re route...
-- DownstreamTemplate: http://jsonplaceholder.typicode.com/posts
-  UpstreamTemplate: /posts
-  UpstreamHttpMethod: Get
-# The next re route...
-- DownstreamTemplate: http://jsonplaceholder.typicode.com/posts/{postId}
-  UpstreamTemplate: /posts/{postId}
-  UpstreamHttpMethod: Get
-# The next re route...
-- DownstreamTemplate: http://jsonplaceholder.typicode.com/posts/{postId}/comments
-  UpstreamTemplate: /posts/{postId}/comments
-  UpstreamHttpMethod: Get
-# The next re route...
-- DownstreamTemplate: http://jsonplaceholder.typicode.com/comments
-  UpstreamTemplate: /comments
-  UpstreamHttpMethod: Get
-# The next re route...
-- DownstreamTemplate: http://jsonplaceholder.typicode.com/posts
-  UpstreamTemplate: /posts
-  UpstreamHttpMethod: Post
-# The next re route...
-- DownstreamTemplate: http://jsonplaceholder.typicode.com/posts/{postId}
-  UpstreamTemplate: /posts/{postId}
-  UpstreamHttpMethod: Put
-# The next re route...
-- DownstreamTemplate: http://jsonplaceholder.typicode.com/posts/{postId}
-  UpstreamTemplate: /posts/{postId}
-  UpstreamHttpMethod: Patch
-# The next re route...
-- DownstreamTemplate: http://jsonplaceholder.typicode.com/posts/{postId}
-  UpstreamTemplate: /posts/{postId}
-  UpstreamHttpMethod: Delete
\ No newline at end of file
diff --git a/test/Ocelot.ManualTest/project.json b/test/Ocelot.ManualTest/project.json
index 13f521b6..65220938 100644
--- a/test/Ocelot.ManualTest/project.json
+++ b/test/Ocelot.ManualTest/project.json
@@ -17,8 +17,7 @@
         "Microsoft.NETCore.App": {
             "version": "1.0.1",
             "type": "platform"
-        },
-        "NetEscapades.Configuration.Yaml": "1.2.0"
+        }
     },
 
     "tools": {
@@ -28,8 +27,6 @@
     "frameworks": {
         "netcoreapp1.4": {
             "imports": [
-                "dotnet5.6",
-                "portable-net45+win8"
             ]
         }
     },
@@ -39,8 +36,7 @@
         "preserveCompilationContext": true,
         "copyToOutput": {
             "include": [
-                "middlewareConfiguration.yaml",
-                "configuration.yaml"
+                "configuration.json"
             ]
         }
         },
@@ -58,8 +54,7 @@
                 "Areas/**/Views",
                 "appsettings.json",
                 "web.config",
-                "middlewareConfiguration.yaml",
-                "configuration.yaml"
+                "configuration.json"
             ]
         },
 
diff --git a/test/Ocelot.UnitTests/Configuration/ConfigurationValidationTests.cs b/test/Ocelot.UnitTests/Configuration/ConfigurationValidationTests.cs
index a2ca9b3e..7f6f4005 100644
--- a/test/Ocelot.UnitTests/Configuration/ConfigurationValidationTests.cs
+++ b/test/Ocelot.UnitTests/Configuration/ConfigurationValidationTests.cs
@@ -1,6 +1,6 @@
 using System.Collections.Generic;
+using Ocelot.Configuration.File;
 using Ocelot.Configuration.Validator;
-using Ocelot.Configuration.Yaml;
 using Ocelot.Responses;
 using Shouldly;
 using TestStack.BDDfy;
@@ -10,23 +10,23 @@ namespace Ocelot.UnitTests.Configuration
 {
     public class ConfigurationValidationTests
     {
-        private YamlConfiguration _yamlConfiguration;
+        private FileConfiguration _fileConfiguration;
         private readonly IConfigurationValidator _configurationValidator;
         private Response _result;
 
         public ConfigurationValidationTests()
         {
-            _configurationValidator = new YamlConfigurationValidator();
+            _configurationValidator = new FileConfigurationValidator();
         }
 
         [Fact]
         public void configuration_is_valid_with_one_reroute()
         {
-            this.Given(x => x.GivenAConfiguration(new YamlConfiguration()
+            this.Given(x => x.GivenAConfiguration(new FileConfiguration()
             {
-                ReRoutes = new List
+                ReRoutes = new List
                 {
-                    new YamlReRoute
+                    new FileReRoute
                     {
                         DownstreamTemplate = "http://www.bbc.co.uk",
                         UpstreamTemplate = "http://asdf.com"
@@ -41,15 +41,15 @@ namespace Ocelot.UnitTests.Configuration
         [Fact]
         public void configuration_is_valid_with_valid_authentication_provider()
         {
-            this.Given(x => x.GivenAConfiguration(new YamlConfiguration()
+            this.Given(x => x.GivenAConfiguration(new FileConfiguration()
             {
-                ReRoutes = new List
+                ReRoutes = new List
                 {
-                    new YamlReRoute
+                    new FileReRoute
                     {
                         DownstreamTemplate = "http://www.bbc.co.uk",
                         UpstreamTemplate = "http://asdf.com",
-                        AuthenticationOptions = new YamlAuthenticationOptions
+                        AuthenticationOptions = new FileAuthenticationOptions
                         {
                             Provider = "IdentityServer"
                         }
@@ -64,15 +64,15 @@ namespace Ocelot.UnitTests.Configuration
         [Fact]
         public void configuration_is_invalid_with_invalid_authentication_provider()
         {
-            this.Given(x => x.GivenAConfiguration(new YamlConfiguration()
+            this.Given(x => x.GivenAConfiguration(new FileConfiguration()
             {
-                ReRoutes = new List
+                ReRoutes = new List
                 {
-                    new YamlReRoute
+                    new FileReRoute
                     {
                         DownstreamTemplate = "http://www.bbc.co.uk",
                         UpstreamTemplate = "http://asdf.com",
-                        AuthenticationOptions = new YamlAuthenticationOptions
+                        AuthenticationOptions = new FileAuthenticationOptions
                         {
                             Provider = "BootyBootyBottyRockinEverywhere"
                         }
@@ -88,16 +88,16 @@ namespace Ocelot.UnitTests.Configuration
         [Fact]
         public void configuration_is_not_valid_with_duplicate_reroutes()
         {
-            this.Given(x => x.GivenAConfiguration(new YamlConfiguration()
+            this.Given(x => x.GivenAConfiguration(new FileConfiguration()
             {
-                ReRoutes = new List
+                ReRoutes = new List
                 {
-                    new YamlReRoute
+                    new FileReRoute
                     {
                         DownstreamTemplate = "http://www.bbc.co.uk",
                         UpstreamTemplate = "http://asdf.com"
                     },
-                    new YamlReRoute
+                    new FileReRoute
                     {
                         DownstreamTemplate = "http://www.bbc.co.uk",
                         UpstreamTemplate = "http://asdf.com"
@@ -110,14 +110,14 @@ namespace Ocelot.UnitTests.Configuration
                 .BDDfy();
         }
 
-        private void GivenAConfiguration(YamlConfiguration yamlConfiguration)
+        private void GivenAConfiguration(FileConfiguration fileConfiguration)
         {
-            _yamlConfiguration = yamlConfiguration;
+            _fileConfiguration = fileConfiguration;
         }
 
         private void WhenIValidateTheConfiguration()
         {
-            _result = _configurationValidator.IsValid(_yamlConfiguration);
+            _result = _configurationValidator.IsValid(_fileConfiguration);
         }
 
         private void ThenTheResultIsValid()
diff --git a/test/Ocelot.UnitTests/Configuration/YamlConfigurationCreatorTests.cs b/test/Ocelot.UnitTests/Configuration/FileConfigurationCreatorTests.cs
similarity index 82%
rename from test/Ocelot.UnitTests/Configuration/YamlConfigurationCreatorTests.cs
rename to test/Ocelot.UnitTests/Configuration/FileConfigurationCreatorTests.cs
index 36acefc2..8d0c6092 100644
--- a/test/Ocelot.UnitTests/Configuration/YamlConfigurationCreatorTests.cs
+++ b/test/Ocelot.UnitTests/Configuration/FileConfigurationCreatorTests.cs
@@ -5,9 +5,9 @@ using Moq;
 using Ocelot.Configuration;
 using Ocelot.Configuration.Builder;
 using Ocelot.Configuration.Creator;
+using Ocelot.Configuration.File;
 using Ocelot.Configuration.Parser;
 using Ocelot.Configuration.Validator;
-using Ocelot.Configuration.Yaml;
 using Ocelot.Responses;
 using Shouldly;
 using TestStack.BDDfy;
@@ -15,34 +15,34 @@ using Xunit;
 
 namespace Ocelot.UnitTests.Configuration
 {
-    public class YamlConfigurationCreatorTests
+    public class FileConfigurationCreatorTests
     {
-        private readonly Mock> _yamlConfig;
+        private readonly Mock> _fileConfig;
         private readonly Mock _validator;
         private Response _config;
-        private YamlConfiguration _yamlConfiguration;
+        private FileConfiguration _fileConfiguration;
         private readonly Mock _configParser;
-        private readonly Mock> _logger;
-        private readonly YamlOcelotConfigurationCreator _ocelotConfigurationCreator;
+        private readonly Mock> _logger;
+        private readonly FileOcelotConfigurationCreator _ocelotConfigurationCreator;
 
-        public YamlConfigurationCreatorTests()
+        public FileConfigurationCreatorTests()
         {
-            _logger = new Mock>();
+            _logger = new Mock>();
             _configParser = new Mock();
             _validator = new Mock();
-            _yamlConfig = new Mock>();
-            _ocelotConfigurationCreator = new YamlOcelotConfigurationCreator( 
-                _yamlConfig.Object, _validator.Object, _configParser.Object, _logger.Object);
+            _fileConfig = new Mock>();
+            _ocelotConfigurationCreator = new FileOcelotConfigurationCreator( 
+                _fileConfig.Object, _validator.Object, _configParser.Object, _logger.Object);
         }
 
         [Fact]
         public void should_create_template_pattern_that_matches_anything_to_end_of_string()
         {
-            this.Given(x => x.GivenTheYamlConfigIs(new YamlConfiguration
+            this.Given(x => x.GivenTheConfigIs(new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                 {
-                    new YamlReRoute
+                    new FileReRoute
                     {
                         UpstreamTemplate = "/api/products/{productId}",
                         DownstreamTemplate = "/products/{productId}",
@@ -50,7 +50,7 @@ namespace Ocelot.UnitTests.Configuration
                     }
                 }
             }))
-                .And(x => x.GivenTheYamlConfigIsValid())
+                .And(x => x.GivenTheConfigIsValid())
                 .When(x => x.WhenICreateTheConfig())
                 .Then(x => x.ThenTheReRoutesAre(new List
                 {
@@ -86,16 +86,16 @@ namespace Ocelot.UnitTests.Configuration
                     .Build()
             };
 
-            this.Given(x => x.GivenTheYamlConfigIs(new YamlConfiguration
+            this.Given(x => x.GivenTheConfigIs(new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                 {
-                    new YamlReRoute
+                    new FileReRoute
                     {
                         UpstreamTemplate = "/api/products/{productId}",
                         DownstreamTemplate = "/products/{productId}",
                         UpstreamHttpMethod = "Get",
-                        AuthenticationOptions = new YamlAuthenticationOptions
+                        AuthenticationOptions = new FileAuthenticationOptions
                             {
                                 AdditionalScopes =  new List(),
                                 Provider = "IdentityServer",
@@ -111,7 +111,7 @@ namespace Ocelot.UnitTests.Configuration
                     }
                 }
             }))
-                .And(x => x.GivenTheYamlConfigIsValid())
+                .And(x => x.GivenTheConfigIsValid())
                 .And(x => x.GivenTheConfigHeaderExtractorReturns(new ClaimToThing("CustomerId", "CustomerId", "", 0)))
                 .When(x => x.WhenICreateTheConfig())
                 .Then(x => x.ThenTheReRoutesAre(expected))
@@ -144,16 +144,16 @@ namespace Ocelot.UnitTests.Configuration
                     .Build()
             };
 
-            this.Given(x => x.GivenTheYamlConfigIs(new YamlConfiguration
+            this.Given(x => x.GivenTheConfigIs(new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                 {
-                    new YamlReRoute
+                    new FileReRoute
                     {
                         UpstreamTemplate = "/api/products/{productId}",
                         DownstreamTemplate = "/products/{productId}",
                         UpstreamHttpMethod = "Get",
-                        AuthenticationOptions = new YamlAuthenticationOptions
+                        AuthenticationOptions = new FileAuthenticationOptions
                             {
                                 AdditionalScopes =  new List(),
                                 Provider = "IdentityServer",
@@ -165,7 +165,7 @@ namespace Ocelot.UnitTests.Configuration
                     }
                 }
             }))
-                .And(x => x.GivenTheYamlConfigIsValid())
+                .And(x => x.GivenTheConfigIsValid())
                 .When(x => x.WhenICreateTheConfig())
                 .Then(x => x.ThenTheReRoutesAre(expected))
                 .And(x => x.ThenTheAuthenticationOptionsAre(expected))
@@ -175,11 +175,11 @@ namespace Ocelot.UnitTests.Configuration
         [Fact]
         public void should_create_template_pattern_that_matches_more_than_one_placeholder()
         {
-            this.Given(x => x.GivenTheYamlConfigIs(new YamlConfiguration
+            this.Given(x => x.GivenTheConfigIs(new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                 {
-                    new YamlReRoute
+                    new FileReRoute
                     {
                         UpstreamTemplate = "/api/products/{productId}/variants/{variantId}",
                         DownstreamTemplate = "/products/{productId}",
@@ -187,7 +187,7 @@ namespace Ocelot.UnitTests.Configuration
                     }
                 }
             }))
-                .And(x => x.GivenTheYamlConfigIsValid())
+                .And(x => x.GivenTheConfigIsValid())
                 .When(x => x.WhenICreateTheConfig())
                 .Then(x => x.ThenTheReRoutesAre(new List
                 {
@@ -204,11 +204,11 @@ namespace Ocelot.UnitTests.Configuration
         [Fact]
         public void should_create_template_pattern_that_matches_more_than_one_placeholder_with_trailing_slash()
         {
-            this.Given(x => x.GivenTheYamlConfigIs(new YamlConfiguration
+            this.Given(x => x.GivenTheConfigIs(new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                 {
-                    new YamlReRoute
+                    new FileReRoute
                     {
                         UpstreamTemplate = "/api/products/{productId}/variants/{variantId}/",
                         DownstreamTemplate = "/products/{productId}",
@@ -216,7 +216,7 @@ namespace Ocelot.UnitTests.Configuration
                     }
                 }
             }))
-                .And(x => x.GivenTheYamlConfigIsValid())
+                .And(x => x.GivenTheConfigIsValid())
                 .When(x => x.WhenICreateTheConfig())
                 .Then(x => x.ThenTheReRoutesAre(new List
                 {
@@ -233,11 +233,11 @@ namespace Ocelot.UnitTests.Configuration
         [Fact]
         public void should_create_template_pattern_that_matches_to_end_of_string()
         {
-            this.Given(x => x.GivenTheYamlConfigIs(new YamlConfiguration
+            this.Given(x => x.GivenTheConfigIs(new FileConfiguration
             {
-                ReRoutes = new List
+                ReRoutes = new List
                 {
-                    new YamlReRoute
+                    new FileReRoute
                     {
                         UpstreamTemplate = "/",
                         DownstreamTemplate = "/api/products/",
@@ -245,7 +245,7 @@ namespace Ocelot.UnitTests.Configuration
                     }
                 }
             }))
-                .And(x => x.GivenTheYamlConfigIsValid())
+                .And(x => x.GivenTheConfigIsValid())
                 .When(x => x.WhenICreateTheConfig())
                 .Then(x => x.ThenTheReRoutesAre(new List
                 {
@@ -259,19 +259,19 @@ namespace Ocelot.UnitTests.Configuration
                 .BDDfy();
         }
 
-        private void GivenTheYamlConfigIsValid()
+        private void GivenTheConfigIsValid()
         {
             _validator
-                .Setup(x => x.IsValid(It.IsAny()))
+                .Setup(x => x.IsValid(It.IsAny()))
                 .Returns(new OkResponse(new ConfigurationValidationResult(false)));
         }
 
-        private void GivenTheYamlConfigIs(YamlConfiguration yamlConfiguration)
+        private void GivenTheConfigIs(FileConfiguration fileConfiguration)
         {
-            _yamlConfiguration = yamlConfiguration;
-            _yamlConfig
+            _fileConfiguration = fileConfiguration;
+            _fileConfig
                 .Setup(x => x.Value)
-                .Returns(_yamlConfiguration);
+                .Returns(_fileConfiguration);
         }
 
         private void WhenICreateTheConfig()
diff --git a/test/Ocelot.UnitTests/Configuration/YamlConfigurationProviderTests.cs b/test/Ocelot.UnitTests/Configuration/FileConfigurationProviderTests.cs
similarity index 97%
rename from test/Ocelot.UnitTests/Configuration/YamlConfigurationProviderTests.cs
rename to test/Ocelot.UnitTests/Configuration/FileConfigurationProviderTests.cs
index abc4a464..1bdb3279 100644
--- a/test/Ocelot.UnitTests/Configuration/YamlConfigurationProviderTests.cs
+++ b/test/Ocelot.UnitTests/Configuration/FileConfigurationProviderTests.cs
@@ -15,14 +15,14 @@ using Xunit;
 
 namespace Ocelot.UnitTests.Configuration
 {
-    public class YamlConfigurationProviderTests
+    public class FileConfigurationProviderTests
     {
         private readonly IOcelotConfigurationProvider _ocelotConfigurationProvider;
         private readonly Mock _configurationRepository;
         private readonly Mock _creator;
         private Response _result;
 
-        public YamlConfigurationProviderTests()
+        public FileConfigurationProviderTests()
         {
             _creator = new Mock();
             _configurationRepository = new Mock();
diff --git a/test/Ocelot.UnitTests/project.json b/test/Ocelot.UnitTests/project.json
index 627df2d7..beb19321 100644
--- a/test/Ocelot.UnitTests/project.json
+++ b/test/Ocelot.UnitTests/project.json
@@ -14,7 +14,7 @@
         "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
         "Microsoft.AspNetCore.Http": "1.0.0",
         "Ocelot": "1.0.0-*",
-        "xunit": "2.1.0",
+        "xunit": "2.2.0-beta2-build3300",
         "dotnet-test-xunit": "2.2.0-preview2-build1029",
         "Moq": "4.6.38-alpha",
         "Microsoft.AspNetCore.TestHost": "1.0.0",
@@ -25,15 +25,12 @@
             "type": "platform"
         },
         "Shouldly": "2.8.2",
-        "TestStack.BDDfy": "4.3.2",
-        "YamlDotNet": "4.0.0"
+        "TestStack.BDDfy": "4.3.2"
     },
 
     "frameworks": {
         "netcoreapp1.4": {
             "imports": [
-                "dotnet5.6",
-                "portable-net45+win8"
             ]
         }
     }