diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/IidChangePointDetectorTransform.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/IidChangePointDetectorTransform.cs
index d7dbc8553b..9b34510bd0 100644
--- a/docs/samples/Microsoft.ML.Samples/Dynamic/IidChangePointDetectorTransform.cs
+++ b/docs/samples/Microsoft.ML.Samples/Dynamic/IidChangePointDetectorTransform.cs
@@ -5,11 +5,9 @@
 using System;
 using System.Collections.Generic;
 using System.IO;
-using System.Linq;
 using Microsoft.ML.Core.Data;
 using Microsoft.ML.Data;
-using Microsoft.ML.TimeSeries;
-using Microsoft.ML.TimeSeriesProcessing;
+using Microsoft.ML.Transforms.TimeSeries;
 
 namespace Microsoft.ML.Samples.Dynamic
 {
diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/IidSpikeDetectorTransform.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/IidSpikeDetectorTransform.cs
index c03449be17..c2fedc5275 100644
--- a/docs/samples/Microsoft.ML.Samples/Dynamic/IidSpikeDetectorTransform.cs
+++ b/docs/samples/Microsoft.ML.Samples/Dynamic/IidSpikeDetectorTransform.cs
@@ -1,11 +1,9 @@
 using System;
 using System.Collections.Generic;
 using System.IO;
-using System.Linq;
 using Microsoft.ML.Core.Data;
 using Microsoft.ML.Data;
-using Microsoft.ML.TimeSeries;
-using Microsoft.ML.TimeSeriesProcessing;
+using Microsoft.ML.Transforms.TimeSeries;
 
 namespace Microsoft.ML.Samples.Dynamic
 {
diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/SsaChangePointDetectorTransform.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/SsaChangePointDetectorTransform.cs
index 19bb5e75c5..223bab2277 100644
--- a/docs/samples/Microsoft.ML.Samples/Dynamic/SsaChangePointDetectorTransform.cs
+++ b/docs/samples/Microsoft.ML.Samples/Dynamic/SsaChangePointDetectorTransform.cs
@@ -1,11 +1,9 @@
 using System;
 using System.Collections.Generic;
 using System.IO;
-using System.Linq;
 using Microsoft.ML.Core.Data;
 using Microsoft.ML.Data;
-using Microsoft.ML.TimeSeries;
-using Microsoft.ML.TimeSeriesProcessing;
+using Microsoft.ML.Transforms.TimeSeries;
 
 namespace Microsoft.ML.Samples.Dynamic
 {
diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/SsaSpikeDetectorTransform.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/SsaSpikeDetectorTransform.cs
index 217ddb69ed..9ebf1a41d2 100644
--- a/docs/samples/Microsoft.ML.Samples/Dynamic/SsaSpikeDetectorTransform.cs
+++ b/docs/samples/Microsoft.ML.Samples/Dynamic/SsaSpikeDetectorTransform.cs
@@ -1,11 +1,9 @@
 using System;
 using System.Collections.Generic;
 using System.IO;
-using System.Linq;
 using Microsoft.ML.Core.Data;
 using Microsoft.ML.Data;
-using Microsoft.ML.TimeSeries;
-using Microsoft.ML.TimeSeriesProcessing;
+using Microsoft.ML.Transforms.TimeSeries;
 
 namespace Microsoft.ML.Samples.Dynamic
 {
diff --git a/src/Microsoft.ML.Ensemble/Batch.cs b/src/Microsoft.ML.Ensemble/Batch.cs
index caaf6bf4f3..756b095c72 100644
--- a/src/Microsoft.ML.Ensemble/Batch.cs
+++ b/src/Microsoft.ML.Ensemble/Batch.cs
@@ -4,7 +4,7 @@
 
 using Microsoft.ML.Data;
 
-namespace Microsoft.ML.Ensemble
+namespace Microsoft.ML.Trainers.Ensemble
 {
     internal sealed class Batch
     {
diff --git a/src/Microsoft.ML.Ensemble/EnsembleUtils.cs b/src/Microsoft.ML.Ensemble/EnsembleUtils.cs
index 2af9b96f3b..342a33b9bd 100644
--- a/src/Microsoft.ML.Ensemble/EnsembleUtils.cs
+++ b/src/Microsoft.ML.Ensemble/EnsembleUtils.cs
@@ -7,7 +7,7 @@
 using Microsoft.ML.Data;
 using Microsoft.ML.Internal.Utilities;
 
-namespace Microsoft.ML.Ensemble
+namespace Microsoft.ML.Trainers.Ensemble
 {
     internal static class EnsembleUtils
     {
diff --git a/src/Microsoft.ML.Ensemble/EntryPoints/CreateEnsemble.cs b/src/Microsoft.ML.Ensemble/EntryPoints/CreateEnsemble.cs
index baad8e2ca9..6ce5673797 100644
--- a/src/Microsoft.ML.Ensemble/EntryPoints/CreateEnsemble.cs
+++ b/src/Microsoft.ML.Ensemble/EntryPoints/CreateEnsemble.cs
@@ -10,14 +10,13 @@
 using Microsoft.ML;
 using Microsoft.ML.CommandLine;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble;
-using Microsoft.ML.Ensemble.OutputCombiners;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Internal.Utilities;
+using Microsoft.ML.Trainers.Ensemble;
 
 [assembly: LoadableClass(typeof(void), typeof(EnsembleCreator), null, typeof(SignatureEntryPointModule), "CreateEnsemble")]
 
-namespace Microsoft.ML.Ensemble
+namespace Microsoft.ML.Trainers.Ensemble
 {
     /// <summary>
     /// A component to combine given models into an ensemble model.
diff --git a/src/Microsoft.ML.Ensemble/EntryPoints/DiversityMeasure.cs b/src/Microsoft.ML.Ensemble/EntryPoints/DiversityMeasure.cs
index 069cce2556..075b3659ec 100644
--- a/src/Microsoft.ML.Ensemble/EntryPoints/DiversityMeasure.cs
+++ b/src/Microsoft.ML.Ensemble/EntryPoints/DiversityMeasure.cs
@@ -2,16 +2,15 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using Microsoft.ML.Ensemble;
-using Microsoft.ML.Ensemble.Selector;
-using Microsoft.ML.Ensemble.Selector.DiversityMeasure;
 using Microsoft.ML.EntryPoints;
+using Microsoft.ML.Trainers.Ensemble;
+using Microsoft.ML.Trainers.Ensemble.DiversityMeasure;
 
 [assembly: EntryPointModule(typeof(DisagreementDiversityFactory))]
 [assembly: EntryPointModule(typeof(RegressionDisagreementDiversityFactory))]
 [assembly: EntryPointModule(typeof(MultiDisagreementDiversityFactory))]
 
-namespace Microsoft.ML.Ensemble
+namespace Microsoft.ML.Trainers.Ensemble
 {
     [TlcModule.Component(Name = DisagreementDiversityMeasure.LoadName, FriendlyName = DisagreementDiversityMeasure.UserName)]
     internal sealed class DisagreementDiversityFactory : ISupportBinaryDiversityMeasureFactory
diff --git a/src/Microsoft.ML.Ensemble/EntryPoints/Ensemble.cs b/src/Microsoft.ML.Ensemble/EntryPoints/Ensemble.cs
index 4aa0ab10ce..afec3af471 100644
--- a/src/Microsoft.ML.Ensemble/EntryPoints/Ensemble.cs
+++ b/src/Microsoft.ML.Ensemble/EntryPoints/Ensemble.cs
@@ -3,12 +3,12 @@
 // See the LICENSE file in the project root for more information.
 
 using Microsoft.ML;
-using Microsoft.ML.Ensemble;
 using Microsoft.ML.EntryPoints;
+using Microsoft.ML.Trainers.Ensemble;
 
 [assembly: LoadableClass(typeof(void), typeof(Ensemble), null, typeof(SignatureEntryPointModule), "TrainEnsemble")]
 
-namespace Microsoft.ML.Ensemble
+namespace Microsoft.ML.Trainers.Ensemble
 {
     internal static class Ensemble
     {
diff --git a/src/Microsoft.ML.Ensemble/EntryPoints/FeatureSelector.cs b/src/Microsoft.ML.Ensemble/EntryPoints/FeatureSelector.cs
index 66ae78ecb5..8af31a0723 100644
--- a/src/Microsoft.ML.Ensemble/EntryPoints/FeatureSelector.cs
+++ b/src/Microsoft.ML.Ensemble/EntryPoints/FeatureSelector.cs
@@ -2,15 +2,14 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using Microsoft.ML.Ensemble;
-using Microsoft.ML.Ensemble.Selector;
-using Microsoft.ML.Ensemble.Selector.FeatureSelector;
 using Microsoft.ML.EntryPoints;
+using Microsoft.ML.Trainers.Ensemble;
+using Microsoft.ML.Trainers.Ensemble.FeatureSelector;
 
 [assembly: EntryPointModule(typeof(AllFeatureSelectorFactory))]
 [assembly: EntryPointModule(typeof(RandomFeatureSelector))]
 
-namespace Microsoft.ML.Ensemble
+namespace Microsoft.ML.Trainers.Ensemble
 {
     [TlcModule.Component(Name = AllFeatureSelector.LoadName, FriendlyName = AllFeatureSelector.UserName)]
     public sealed class AllFeatureSelectorFactory : ISupportFeatureSelectorFactory
diff --git a/src/Microsoft.ML.Ensemble/EntryPoints/OutputCombiner.cs b/src/Microsoft.ML.Ensemble/EntryPoints/OutputCombiner.cs
index da10f30de4..5af5cdf487 100644
--- a/src/Microsoft.ML.Ensemble/EntryPoints/OutputCombiner.cs
+++ b/src/Microsoft.ML.Ensemble/EntryPoints/OutputCombiner.cs
@@ -2,9 +2,8 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using Microsoft.ML.Ensemble;
-using Microsoft.ML.Ensemble.OutputCombiners;
 using Microsoft.ML.EntryPoints;
+using Microsoft.ML.Trainers.Ensemble;
 
 [assembly: EntryPointModule(typeof(AverageFactory))]
 [assembly: EntryPointModule(typeof(MedianFactory))]
@@ -18,7 +17,7 @@
 [assembly: EntryPointModule(typeof(VotingFactory))]
 [assembly: EntryPointModule(typeof(WeightedAverage))]
 
-namespace Microsoft.ML.Ensemble
+namespace Microsoft.ML.Trainers.Ensemble
 {
     [TlcModule.Component(Name = Average.LoadName, FriendlyName = Average.UserName)]
     public sealed class AverageFactory : ISupportBinaryOutputCombinerFactory, ISupportRegressionOutputCombinerFactory
diff --git a/src/Microsoft.ML.Ensemble/EntryPoints/PipelineEnsemble.cs b/src/Microsoft.ML.Ensemble/EntryPoints/PipelineEnsemble.cs
index 9452a9d064..2bafa85a2f 100644
--- a/src/Microsoft.ML.Ensemble/EntryPoints/PipelineEnsemble.cs
+++ b/src/Microsoft.ML.Ensemble/EntryPoints/PipelineEnsemble.cs
@@ -4,13 +4,13 @@
 
 using Microsoft.Data.DataView;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Internal.Calibration;
+using Microsoft.ML.Trainers.Ensemble;
 
 [assembly: EntryPointModule(typeof(PipelineEnsemble))]
 
-namespace Microsoft.ML.Ensemble
+namespace Microsoft.ML.Trainers.Ensemble
 {
     internal static class PipelineEnsemble
     {
diff --git a/src/Microsoft.ML.Ensemble/EntryPoints/SubModelSelector.cs b/src/Microsoft.ML.Ensemble/EntryPoints/SubModelSelector.cs
index b749501f76..867833f999 100644
--- a/src/Microsoft.ML.Ensemble/EntryPoints/SubModelSelector.cs
+++ b/src/Microsoft.ML.Ensemble/EntryPoints/SubModelSelector.cs
@@ -2,10 +2,9 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using Microsoft.ML.Ensemble;
-using Microsoft.ML.Ensemble.Selector;
-using Microsoft.ML.Ensemble.Selector.SubModelSelector;
 using Microsoft.ML.EntryPoints;
+using Microsoft.ML.Trainers.Ensemble;
+using Microsoft.ML.Trainers.Ensemble.SubModelSelector;
 
 [assembly: EntryPointModule(typeof(AllSelectorFactory))]
 [assembly: EntryPointModule(typeof(AllSelectorMultiClassFactory))]
@@ -16,7 +15,7 @@
 [assembly: EntryPointModule(typeof(BestPerformanceSelector))]
 [assembly: EntryPointModule(typeof(BestPerformanceSelectorMultiClass))]
 
-namespace Microsoft.ML.Ensemble
+namespace Microsoft.ML.Trainers.Ensemble
 {
     [TlcModule.Component(Name = AllSelector.LoadName, FriendlyName = AllSelector.UserName)]
     public sealed class AllSelectorFactory : ISupportBinarySubModelSelectorFactory, ISupportRegressionSubModelSelectorFactory
diff --git a/src/Microsoft.ML.Ensemble/FeatureSubsetModel.cs b/src/Microsoft.ML.Ensemble/FeatureSubsetModel.cs
index 733573d39f..d583a1b125 100644
--- a/src/Microsoft.ML.Ensemble/FeatureSubsetModel.cs
+++ b/src/Microsoft.ML.Ensemble/FeatureSubsetModel.cs
@@ -6,7 +6,7 @@
 using System.Collections.Generic;
 using Microsoft.ML.Internal.Utilities;
 
-namespace Microsoft.ML.Ensemble
+namespace Microsoft.ML.Trainers.Ensemble
 {
     internal sealed class FeatureSubsetModel<TOutput>
     {
diff --git a/src/Microsoft.ML.Ensemble/OutputCombiners/Average.cs b/src/Microsoft.ML.Ensemble/OutputCombiners/Average.cs
index 4582d4f4a9..e78e63cecc 100644
--- a/src/Microsoft.ML.Ensemble/OutputCombiners/Average.cs
+++ b/src/Microsoft.ML.Ensemble/OutputCombiners/Average.cs
@@ -4,13 +4,13 @@
 
 using System;
 using Microsoft.ML;
-using Microsoft.ML.Ensemble.OutputCombiners;
 using Microsoft.ML.Model;
+using Microsoft.ML.Trainers.Ensemble;
 
 [assembly: LoadableClass(typeof(Average), null, typeof(SignatureCombiner), Average.UserName)]
 [assembly: LoadableClass(typeof(Average), null, typeof(SignatureLoadModel), Average.UserName, Average.LoaderSignature)]
 
-namespace Microsoft.ML.Ensemble.OutputCombiners
+namespace Microsoft.ML.Trainers.Ensemble
 {
     public sealed class Average : BaseAverager, IRegressionOutputCombiner
     {
diff --git a/src/Microsoft.ML.Ensemble/OutputCombiners/BaseAverager.cs b/src/Microsoft.ML.Ensemble/OutputCombiners/BaseAverager.cs
index 0b454be238..1d8f56e3fe 100644
--- a/src/Microsoft.ML.Ensemble/OutputCombiners/BaseAverager.cs
+++ b/src/Microsoft.ML.Ensemble/OutputCombiners/BaseAverager.cs
@@ -5,7 +5,7 @@
 using System;
 using Microsoft.ML.Model;
 
-namespace Microsoft.ML.Ensemble.OutputCombiners
+namespace Microsoft.ML.Trainers.Ensemble
 {
     public abstract class BaseAverager : IBinaryOutputCombiner, ICanSaveModel
     {
diff --git a/src/Microsoft.ML.Ensemble/OutputCombiners/BaseMultiAverager.cs b/src/Microsoft.ML.Ensemble/OutputCombiners/BaseMultiAverager.cs
index 73e6f4ea7e..044ccfb44e 100644
--- a/src/Microsoft.ML.Ensemble/OutputCombiners/BaseMultiAverager.cs
+++ b/src/Microsoft.ML.Ensemble/OutputCombiners/BaseMultiAverager.cs
@@ -8,7 +8,7 @@
 using Microsoft.ML.Model;
 using Microsoft.ML.Numeric;
 
-namespace Microsoft.ML.Ensemble.OutputCombiners
+namespace Microsoft.ML.Trainers.Ensemble
 {
     public abstract class BaseMultiAverager : BaseMultiCombiner
     {
diff --git a/src/Microsoft.ML.Ensemble/OutputCombiners/BaseMultiCombiner.cs b/src/Microsoft.ML.Ensemble/OutputCombiners/BaseMultiCombiner.cs
index 737cbfd649..d0ee4583b3 100644
--- a/src/Microsoft.ML.Ensemble/OutputCombiners/BaseMultiCombiner.cs
+++ b/src/Microsoft.ML.Ensemble/OutputCombiners/BaseMultiCombiner.cs
@@ -9,7 +9,7 @@
 using Microsoft.ML.Model;
 using Microsoft.ML.Numeric;
 
-namespace Microsoft.ML.Ensemble.OutputCombiners
+namespace Microsoft.ML.Trainers.Ensemble
 {
     public abstract class BaseMultiCombiner : IMultiClassOutputCombiner, ICanSaveModel
     {
diff --git a/src/Microsoft.ML.Ensemble/OutputCombiners/BaseScalarStacking.cs b/src/Microsoft.ML.Ensemble/OutputCombiners/BaseScalarStacking.cs
index ba75e05080..59700cb18c 100644
--- a/src/Microsoft.ML.Ensemble/OutputCombiners/BaseScalarStacking.cs
+++ b/src/Microsoft.ML.Ensemble/OutputCombiners/BaseScalarStacking.cs
@@ -7,7 +7,7 @@
 using Microsoft.ML.Internal.Utilities;
 using Microsoft.ML.Model;
 
-namespace Microsoft.ML.Ensemble.OutputCombiners
+namespace Microsoft.ML.Trainers.Ensemble
 {
     internal abstract class BaseScalarStacking : BaseStacking<Single>
     {
diff --git a/src/Microsoft.ML.Ensemble/OutputCombiners/BaseStacking.cs b/src/Microsoft.ML.Ensemble/OutputCombiners/BaseStacking.cs
index c081feee14..a172a6bce4 100644
--- a/src/Microsoft.ML.Ensemble/OutputCombiners/BaseStacking.cs
+++ b/src/Microsoft.ML.Ensemble/OutputCombiners/BaseStacking.cs
@@ -13,7 +13,7 @@
 using Microsoft.ML.Model;
 using Microsoft.ML.Training;
 
-namespace Microsoft.ML.Ensemble.OutputCombiners
+namespace Microsoft.ML.Trainers.Ensemble
 {
     internal abstract class BaseStacking<TOutput> : IStackingTrainer<TOutput>, ICanSaveModel
     {
diff --git a/src/Microsoft.ML.Ensemble/OutputCombiners/IOutputCombiner.cs b/src/Microsoft.ML.Ensemble/OutputCombiners/IOutputCombiner.cs
index bbbbecf217..e054cd2fa8 100644
--- a/src/Microsoft.ML.Ensemble/OutputCombiners/IOutputCombiner.cs
+++ b/src/Microsoft.ML.Ensemble/OutputCombiners/IOutputCombiner.cs
@@ -7,7 +7,7 @@
 using Microsoft.ML.Data;
 using Microsoft.ML.EntryPoints;
 
-namespace Microsoft.ML.Ensemble.OutputCombiners
+namespace Microsoft.ML.Trainers.Ensemble
 {
     /// <summary>
     /// Signature for combiners.
diff --git a/src/Microsoft.ML.Ensemble/OutputCombiners/Median.cs b/src/Microsoft.ML.Ensemble/OutputCombiners/Median.cs
index 5173216711..88a9d73ca3 100644
--- a/src/Microsoft.ML.Ensemble/OutputCombiners/Median.cs
+++ b/src/Microsoft.ML.Ensemble/OutputCombiners/Median.cs
@@ -4,14 +4,14 @@
 
 using System;
 using Microsoft.ML;
-using Microsoft.ML.Ensemble.OutputCombiners;
 using Microsoft.ML.Internal.Utilities;
 using Microsoft.ML.Model;
+using Microsoft.ML.Trainers.Ensemble;
 
 [assembly: LoadableClass(typeof(Median), null, typeof(SignatureCombiner), Median.UserName, Median.LoadName)]
 [assembly: LoadableClass(typeof(Median), null, typeof(SignatureLoadModel), Median.UserName, Median.LoaderSignature)]
 
-namespace Microsoft.ML.Ensemble.OutputCombiners
+namespace Microsoft.ML.Trainers.Ensemble
 {
     /// <summary>
     /// Generic interface for combining outputs of multiple models
diff --git a/src/Microsoft.ML.Ensemble/OutputCombiners/MultiAverage.cs b/src/Microsoft.ML.Ensemble/OutputCombiners/MultiAverage.cs
index be3bd7dfa2..3cf424b50f 100644
--- a/src/Microsoft.ML.Ensemble/OutputCombiners/MultiAverage.cs
+++ b/src/Microsoft.ML.Ensemble/OutputCombiners/MultiAverage.cs
@@ -5,16 +5,16 @@
 using System;
 using Microsoft.ML;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble.OutputCombiners;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Model;
+using Microsoft.ML.Trainers.Ensemble;
 
 [assembly: LoadableClass(typeof(MultiAverage), typeof(MultiAverage.Arguments), typeof(SignatureCombiner),
     Average.UserName, MultiAverage.LoadName)]
 [assembly: LoadableClass(typeof(MultiAverage), null, typeof(SignatureLoadModel), Average.UserName,
     MultiAverage.LoadName, MultiAverage.LoaderSignature)]
 
-namespace Microsoft.ML.Ensemble.OutputCombiners
+namespace Microsoft.ML.Trainers.Ensemble
 {
     public sealed class MultiAverage : BaseMultiAverager
     {
diff --git a/src/Microsoft.ML.Ensemble/OutputCombiners/MultiMedian.cs b/src/Microsoft.ML.Ensemble/OutputCombiners/MultiMedian.cs
index 94b0f38ae8..3b44413397 100644
--- a/src/Microsoft.ML.Ensemble/OutputCombiners/MultiMedian.cs
+++ b/src/Microsoft.ML.Ensemble/OutputCombiners/MultiMedian.cs
@@ -5,16 +5,16 @@
 using System;
 using Microsoft.ML;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble.OutputCombiners;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Internal.Utilities;
 using Microsoft.ML.Model;
+using Microsoft.ML.Trainers.Ensemble;
 
 [assembly: LoadableClass(typeof(MultiMedian), typeof(MultiMedian.Arguments), typeof(SignatureCombiner),
     Median.UserName, MultiMedian.LoadName)]
 [assembly: LoadableClass(typeof(MultiMedian), null, typeof(SignatureLoadModel), Median.UserName, MultiMedian.LoaderSignature)]
 
-namespace Microsoft.ML.Ensemble.OutputCombiners
+namespace Microsoft.ML.Trainers.Ensemble
 {
     /// <summary>
     /// Generic interface for combining outputs of multiple models
diff --git a/src/Microsoft.ML.Ensemble/OutputCombiners/MultiStacking.cs b/src/Microsoft.ML.Ensemble/OutputCombiners/MultiStacking.cs
index f2bb13d029..01011a99d4 100644
--- a/src/Microsoft.ML.Ensemble/OutputCombiners/MultiStacking.cs
+++ b/src/Microsoft.ML.Ensemble/OutputCombiners/MultiStacking.cs
@@ -6,10 +6,10 @@
 using Microsoft.ML;
 using Microsoft.ML.CommandLine;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble.OutputCombiners;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Internal.Internallearn;
 using Microsoft.ML.Model;
+using Microsoft.ML.Trainers.Ensemble;
 
 [assembly: LoadableClass(typeof(MultiStacking), typeof(MultiStacking.Arguments), typeof(SignatureCombiner),
    Stacking.UserName, MultiStacking.LoadName)]
@@ -17,7 +17,7 @@
 [assembly: LoadableClass(typeof(MultiStacking), null, typeof(SignatureLoadModel),
     Stacking.UserName, MultiStacking.LoaderSignature)]
 
-namespace Microsoft.ML.Ensemble.OutputCombiners
+namespace Microsoft.ML.Trainers.Ensemble
 {
     using TVectorPredictor = IPredictorProducing<VBuffer<Single>>;
     internal sealed class MultiStacking : BaseStacking<VBuffer<Single>>, IMultiClassOutputCombiner
diff --git a/src/Microsoft.ML.Ensemble/OutputCombiners/MultiVoting.cs b/src/Microsoft.ML.Ensemble/OutputCombiners/MultiVoting.cs
index a222606ae1..f943a4176c 100644
--- a/src/Microsoft.ML.Ensemble/OutputCombiners/MultiVoting.cs
+++ b/src/Microsoft.ML.Ensemble/OutputCombiners/MultiVoting.cs
@@ -5,15 +5,15 @@
 using System;
 using Microsoft.ML;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble.OutputCombiners;
 using Microsoft.ML.Internal.Utilities;
 using Microsoft.ML.Model;
 using Microsoft.ML.Numeric;
+using Microsoft.ML.Trainers.Ensemble;
 
 [assembly: LoadableClass(typeof(MultiVoting), null, typeof(SignatureCombiner), Voting.UserName, MultiVoting.LoadName)]
 [assembly: LoadableClass(typeof(MultiVoting), null, typeof(SignatureLoadModel), Voting.UserName, MultiVoting.LoaderSignature)]
 
-namespace Microsoft.ML.Ensemble.OutputCombiners
+namespace Microsoft.ML.Trainers.Ensemble
 {
     // REVIEW: Why is MultiVoting based on BaseMultiCombiner? Normalizing the model outputs
     // is senseless, so the base adds no real functionality.
diff --git a/src/Microsoft.ML.Ensemble/OutputCombiners/MultiWeightedAverage.cs b/src/Microsoft.ML.Ensemble/OutputCombiners/MultiWeightedAverage.cs
index 161487650a..aecc3963bc 100644
--- a/src/Microsoft.ML.Ensemble/OutputCombiners/MultiWeightedAverage.cs
+++ b/src/Microsoft.ML.Ensemble/OutputCombiners/MultiWeightedAverage.cs
@@ -6,10 +6,10 @@
 using Microsoft.ML;
 using Microsoft.ML.CommandLine;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble.OutputCombiners;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Internal.Internallearn;
 using Microsoft.ML.Model;
+using Microsoft.ML.Trainers.Ensemble;
 
 [assembly: LoadableClass(typeof(MultiWeightedAverage), typeof(MultiWeightedAverage.Arguments), typeof(SignatureCombiner),
     MultiWeightedAverage.UserName, MultiWeightedAverage.LoadName)]
@@ -17,7 +17,7 @@
 [assembly: LoadableClass(typeof(MultiWeightedAverage), null, typeof(SignatureLoadModel),
     MultiWeightedAverage.UserName, MultiWeightedAverage.LoaderSignature)]
 
-namespace Microsoft.ML.Ensemble.OutputCombiners
+namespace Microsoft.ML.Trainers.Ensemble
 {
     /// <summary>
     /// Generic interface for combining outputs of multiple models
diff --git a/src/Microsoft.ML.Ensemble/OutputCombiners/RegressionStacking.cs b/src/Microsoft.ML.Ensemble/OutputCombiners/RegressionStacking.cs
index 239e386ebf..ae9ef67db8 100644
--- a/src/Microsoft.ML.Ensemble/OutputCombiners/RegressionStacking.cs
+++ b/src/Microsoft.ML.Ensemble/OutputCombiners/RegressionStacking.cs
@@ -4,10 +4,10 @@
 using System;
 using Microsoft.ML;
 using Microsoft.ML.CommandLine;
-using Microsoft.ML.Ensemble.OutputCombiners;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Internal.Internallearn;
 using Microsoft.ML.Model;
+using Microsoft.ML.Trainers.Ensemble;
 
 [assembly: LoadableClass(typeof(RegressionStacking), typeof(RegressionStacking.Arguments), typeof(SignatureCombiner),
     Stacking.UserName, RegressionStacking.LoadName)]
@@ -15,7 +15,7 @@
 [assembly: LoadableClass(typeof(RegressionStacking), null, typeof(SignatureLoadModel),
     Stacking.UserName, RegressionStacking.LoaderSignature)]
 
-namespace Microsoft.ML.Ensemble.OutputCombiners
+namespace Microsoft.ML.Trainers.Ensemble
 {
     using TScalarPredictor = IPredictorProducing<Single>;
 
diff --git a/src/Microsoft.ML.Ensemble/OutputCombiners/Stacking.cs b/src/Microsoft.ML.Ensemble/OutputCombiners/Stacking.cs
index 9999544c6c..93fe1d3240 100644
--- a/src/Microsoft.ML.Ensemble/OutputCombiners/Stacking.cs
+++ b/src/Microsoft.ML.Ensemble/OutputCombiners/Stacking.cs
@@ -5,15 +5,15 @@
 using System;
 using Microsoft.ML;
 using Microsoft.ML.CommandLine;
-using Microsoft.ML.Ensemble.OutputCombiners;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Internal.Internallearn;
 using Microsoft.ML.Model;
+using Microsoft.ML.Trainers.Ensemble;
 
 [assembly: LoadableClass(typeof(Stacking), typeof(Stacking.Arguments), typeof(SignatureCombiner), Stacking.UserName, Stacking.LoadName)]
 [assembly: LoadableClass(typeof(Stacking), null, typeof(SignatureLoadModel), Stacking.UserName, Stacking.LoaderSignature)]
 
-namespace Microsoft.ML.Ensemble.OutputCombiners
+namespace Microsoft.ML.Trainers.Ensemble
 {
     using TScalarPredictor = IPredictorProducing<Single>;
     internal sealed class Stacking : BaseScalarStacking, IBinaryOutputCombiner
diff --git a/src/Microsoft.ML.Ensemble/OutputCombiners/Voting.cs b/src/Microsoft.ML.Ensemble/OutputCombiners/Voting.cs
index 3700782957..17c569d8ce 100644
--- a/src/Microsoft.ML.Ensemble/OutputCombiners/Voting.cs
+++ b/src/Microsoft.ML.Ensemble/OutputCombiners/Voting.cs
@@ -4,14 +4,14 @@
 
 using System;
 using Microsoft.ML;
-using Microsoft.ML.Ensemble.OutputCombiners;
 using Microsoft.ML.Internal.Utilities;
 using Microsoft.ML.Model;
+using Microsoft.ML.Trainers.Ensemble;
 
 [assembly: LoadableClass(typeof(Voting), null, typeof(SignatureCombiner), Voting.UserName, Voting.LoadName)]
 [assembly: LoadableClass(typeof(Voting), null, typeof(SignatureLoadModel), Voting.UserName, Voting.LoaderSignature)]
 
-namespace Microsoft.ML.Ensemble.OutputCombiners
+namespace Microsoft.ML.Trainers.Ensemble
 {
     public sealed class Voting : IBinaryOutputCombiner, ICanSaveModel
     {
diff --git a/src/Microsoft.ML.Ensemble/OutputCombiners/WeightedAverage.cs b/src/Microsoft.ML.Ensemble/OutputCombiners/WeightedAverage.cs
index e6164b1914..e5aa458768 100644
--- a/src/Microsoft.ML.Ensemble/OutputCombiners/WeightedAverage.cs
+++ b/src/Microsoft.ML.Ensemble/OutputCombiners/WeightedAverage.cs
@@ -6,10 +6,10 @@
 using Microsoft.ML;
 using Microsoft.ML.CommandLine;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble.OutputCombiners;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Internal.Internallearn;
 using Microsoft.ML.Model;
+using Microsoft.ML.Trainers.Ensemble;
 
 [assembly: LoadableClass(typeof(WeightedAverage), typeof(WeightedAverage.Arguments), typeof(SignatureCombiner),
     WeightedAverage.UserName, WeightedAverage.LoadName)]
@@ -17,7 +17,7 @@
 [assembly: LoadableClass(typeof(WeightedAverage), null, typeof(SignatureLoadModel),
      WeightedAverage.UserName, WeightedAverage.LoaderSignature)]
 
-namespace Microsoft.ML.Ensemble.OutputCombiners
+namespace Microsoft.ML.Trainers.Ensemble
 {
     public sealed class WeightedAverage : BaseAverager, IWeightedAverager
     {
diff --git a/src/Microsoft.ML.Ensemble/PipelineEnsemble.cs b/src/Microsoft.ML.Ensemble/PipelineEnsemble.cs
index 6f22df98c5..4f44a42204 100644
--- a/src/Microsoft.ML.Ensemble/PipelineEnsemble.cs
+++ b/src/Microsoft.ML.Ensemble/PipelineEnsemble.cs
@@ -10,18 +10,17 @@
 using Microsoft.Data.DataView;
 using Microsoft.ML;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble;
-using Microsoft.ML.Ensemble.OutputCombiners;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Internal.Calibration;
 using Microsoft.ML.Internal.Internallearn;
 using Microsoft.ML.Internal.Utilities;
 using Microsoft.ML.Model;
+using Microsoft.ML.Trainers.Ensemble;
 
 [assembly: LoadableClass(typeof(SchemaBindablePipelineEnsembleBase), null, typeof(SignatureLoadModel),
     SchemaBindablePipelineEnsembleBase.UserName, SchemaBindablePipelineEnsembleBase.LoaderSignature)]
 
-namespace Microsoft.ML.Ensemble
+namespace Microsoft.ML.Trainers.Ensemble
 {
     /// <summary>
     /// This class represents an ensemble predictor, where each predictor has its own featurization pipeline. It is
diff --git a/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/BaseDisagreementDiversityMeasure.cs b/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/BaseDisagreementDiversityMeasure.cs
index b4106a7b1d..c2f40e0b1a 100644
--- a/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/BaseDisagreementDiversityMeasure.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/BaseDisagreementDiversityMeasure.cs
@@ -6,7 +6,7 @@
 using System.Collections.Concurrent;
 using System.Collections.Generic;
 
-namespace Microsoft.ML.Ensemble.Selector.DiversityMeasure
+namespace Microsoft.ML.Trainers.Ensemble.DiversityMeasure
 {
     internal abstract class BaseDisagreementDiversityMeasure<TOutput> : IDiversityMeasure<TOutput>
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/DisagreementDiversityMeasure.cs b/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/DisagreementDiversityMeasure.cs
index bb0127003f..4cb1cbd883 100644
--- a/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/DisagreementDiversityMeasure.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/DisagreementDiversityMeasure.cs
@@ -4,13 +4,13 @@
 
 using System;
 using Microsoft.ML;
-using Microsoft.ML.Ensemble.Selector;
-using Microsoft.ML.Ensemble.Selector.DiversityMeasure;
+using Microsoft.ML.Trainers.Ensemble;
+using Microsoft.ML.Trainers.Ensemble.DiversityMeasure;
 
 [assembly: LoadableClass(typeof(DisagreementDiversityMeasure), null, typeof(SignatureEnsembleDiversityMeasure),
     DisagreementDiversityMeasure.UserName, DisagreementDiversityMeasure.LoadName)]
 
-namespace Microsoft.ML.Ensemble.Selector.DiversityMeasure
+namespace Microsoft.ML.Trainers.Ensemble.DiversityMeasure
 {
     internal sealed class DisagreementDiversityMeasure : BaseDisagreementDiversityMeasure<Single>, IBinaryDiversityMeasure
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/ModelDiversityMetric.cs b/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/ModelDiversityMetric.cs
index b182ad9963..04c9e7f2d2 100644
--- a/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/ModelDiversityMetric.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/ModelDiversityMetric.cs
@@ -4,7 +4,7 @@
 
 using System;
 
-namespace Microsoft.ML.Ensemble.Selector.DiversityMeasure
+namespace Microsoft.ML.Trainers.Ensemble.DiversityMeasure
 {
     internal sealed class ModelDiversityMetric<TOutput>
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/MultiDisagreementDiversityMeasure.cs b/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/MultiDisagreementDiversityMeasure.cs
index ffb6839818..ccdd4d6b0b 100644
--- a/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/MultiDisagreementDiversityMeasure.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/MultiDisagreementDiversityMeasure.cs
@@ -5,14 +5,14 @@
 using System;
 using Microsoft.ML;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble.Selector;
-using Microsoft.ML.Ensemble.Selector.DiversityMeasure;
 using Microsoft.ML.Numeric;
+using Microsoft.ML.Trainers.Ensemble;
+using Microsoft.ML.Trainers.Ensemble.DiversityMeasure;
 
 [assembly: LoadableClass(typeof(MultiDisagreementDiversityMeasure), null, typeof(SignatureEnsembleDiversityMeasure),
     DisagreementDiversityMeasure.UserName, MultiDisagreementDiversityMeasure.LoadName)]
 
-namespace Microsoft.ML.Ensemble.Selector.DiversityMeasure
+namespace Microsoft.ML.Trainers.Ensemble.DiversityMeasure
 {
     internal sealed class MultiDisagreementDiversityMeasure : BaseDisagreementDiversityMeasure<VBuffer<Single>>, IMulticlassDiversityMeasure
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/RegressionDisagreementDiversityMeasure.cs b/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/RegressionDisagreementDiversityMeasure.cs
index 2b60e44f1c..c1b37411b6 100644
--- a/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/RegressionDisagreementDiversityMeasure.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/RegressionDisagreementDiversityMeasure.cs
@@ -4,13 +4,13 @@
 
 using System;
 using Microsoft.ML;
-using Microsoft.ML.Ensemble.Selector;
-using Microsoft.ML.Ensemble.Selector.DiversityMeasure;
+using Microsoft.ML.Trainers.Ensemble;
+using Microsoft.ML.Trainers.Ensemble.DiversityMeasure;
 
 [assembly: LoadableClass(typeof(RegressionDisagreementDiversityMeasure), null, typeof(SignatureEnsembleDiversityMeasure),
     DisagreementDiversityMeasure.UserName, RegressionDisagreementDiversityMeasure.LoadName)]
 
-namespace Microsoft.ML.Ensemble.Selector.DiversityMeasure
+namespace Microsoft.ML.Trainers.Ensemble.DiversityMeasure
 {
     internal sealed class RegressionDisagreementDiversityMeasure : BaseDisagreementDiversityMeasure<Single>, IRegressionDiversityMeasure
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/FeatureSelector/AllFeatureSelector.cs b/src/Microsoft.ML.Ensemble/Selector/FeatureSelector/AllFeatureSelector.cs
index f2ffadf877..52c0a4752b 100644
--- a/src/Microsoft.ML.Ensemble/Selector/FeatureSelector/AllFeatureSelector.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/FeatureSelector/AllFeatureSelector.cs
@@ -5,13 +5,13 @@
 using System;
 using Microsoft.ML;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble.Selector;
-using Microsoft.ML.Ensemble.Selector.FeatureSelector;
+using Microsoft.ML.Trainers.Ensemble;
+using Microsoft.ML.Trainers.Ensemble.FeatureSelector;
 
 [assembly: LoadableClass(typeof(AllFeatureSelector), null, typeof(SignatureEnsembleFeatureSelector),
     AllFeatureSelector.UserName, AllFeatureSelector.LoadName)]
 
-namespace Microsoft.ML.Ensemble.Selector.FeatureSelector
+namespace Microsoft.ML.Trainers.Ensemble.FeatureSelector
 {
     internal sealed class AllFeatureSelector : IFeatureSelector
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/FeatureSelector/RandomFeatureSelector.cs b/src/Microsoft.ML.Ensemble/Selector/FeatureSelector/RandomFeatureSelector.cs
index 93c4bd7603..5841d8c126 100644
--- a/src/Microsoft.ML.Ensemble/Selector/FeatureSelector/RandomFeatureSelector.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/FeatureSelector/RandomFeatureSelector.cs
@@ -7,15 +7,15 @@
 using Microsoft.ML;
 using Microsoft.ML.CommandLine;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble.Selector;
-using Microsoft.ML.Ensemble.Selector.FeatureSelector;
 using Microsoft.ML.EntryPoints;
+using Microsoft.ML.Trainers.Ensemble;
+using Microsoft.ML.Trainers.Ensemble.FeatureSelector;
 using Microsoft.ML.Training;
 
 [assembly: LoadableClass(typeof(RandomFeatureSelector), typeof(RandomFeatureSelector.Arguments),
     typeof(SignatureEnsembleFeatureSelector), RandomFeatureSelector.UserName, RandomFeatureSelector.LoadName)]
 
-namespace Microsoft.ML.Ensemble.Selector.FeatureSelector
+namespace Microsoft.ML.Trainers.Ensemble.FeatureSelector
 {
     internal class RandomFeatureSelector : IFeatureSelector
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/IDiversityMeasure.cs b/src/Microsoft.ML.Ensemble/Selector/IDiversityMeasure.cs
index 8ac30f3818..96642ccc8f 100644
--- a/src/Microsoft.ML.Ensemble/Selector/IDiversityMeasure.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/IDiversityMeasure.cs
@@ -6,10 +6,10 @@
 using System.Collections.Concurrent;
 using System.Collections.Generic;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble.Selector.DiversityMeasure;
 using Microsoft.ML.EntryPoints;
+using Microsoft.ML.Trainers.Ensemble.DiversityMeasure;
 
-namespace Microsoft.ML.Ensemble.Selector
+namespace Microsoft.ML.Trainers.Ensemble
 {
     internal interface IDiversityMeasure<TOutput>
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/IFeatureSelector.cs b/src/Microsoft.ML.Ensemble/Selector/IFeatureSelector.cs
index e4eb986294..6ccc6da5d7 100644
--- a/src/Microsoft.ML.Ensemble/Selector/IFeatureSelector.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/IFeatureSelector.cs
@@ -6,7 +6,7 @@
 using Microsoft.ML.Data;
 using Microsoft.ML.EntryPoints;
 
-namespace Microsoft.ML.Ensemble.Selector
+namespace Microsoft.ML.Trainers.Ensemble
 {
     internal interface IFeatureSelector
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/ISubModelSelector.cs b/src/Microsoft.ML.Ensemble/Selector/ISubModelSelector.cs
index e5b35082ee..6f910f6a44 100644
--- a/src/Microsoft.ML.Ensemble/Selector/ISubModelSelector.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/ISubModelSelector.cs
@@ -7,7 +7,7 @@
 using Microsoft.ML.Data;
 using Microsoft.ML.EntryPoints;
 
-namespace Microsoft.ML.Ensemble.Selector
+namespace Microsoft.ML.Trainers.Ensemble
 {
     internal interface ISubModelSelector<TOutput>
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/ISubsetSelector.cs b/src/Microsoft.ML.Ensemble/Selector/ISubsetSelector.cs
index 6ba7002508..8ffef7aba1 100644
--- a/src/Microsoft.ML.Ensemble/Selector/ISubsetSelector.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/ISubsetSelector.cs
@@ -7,7 +7,7 @@
 using Microsoft.ML.Data;
 using Microsoft.ML.EntryPoints;
 
-namespace Microsoft.ML.Ensemble.Selector
+namespace Microsoft.ML.Trainers.Ensemble
 {
     internal interface ISubsetSelector
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/AllSelector.cs b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/AllSelector.cs
index f88df3bfee..ce62ee9180 100644
--- a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/AllSelector.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/AllSelector.cs
@@ -4,12 +4,12 @@
 
 using System;
 using Microsoft.ML;
-using Microsoft.ML.Ensemble.Selector;
-using Microsoft.ML.Ensemble.Selector.SubModelSelector;
+using Microsoft.ML.Trainers.Ensemble;
+using Microsoft.ML.Trainers.Ensemble.SubModelSelector;
 
 [assembly: LoadableClass(typeof(AllSelector), null, typeof(SignatureEnsembleSubModelSelector), AllSelector.UserName, AllSelector.LoadName)]
 
-namespace Microsoft.ML.Ensemble.Selector.SubModelSelector
+namespace Microsoft.ML.Trainers.Ensemble.SubModelSelector
 {
     internal sealed class AllSelector : BaseSubModelSelector<Single>, IBinarySubModelSelector, IRegressionSubModelSelector
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/AllSelectorMultiClass.cs b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/AllSelectorMultiClass.cs
index 2158b05733..6905579c3b 100644
--- a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/AllSelectorMultiClass.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/AllSelectorMultiClass.cs
@@ -5,13 +5,13 @@
 using System;
 using Microsoft.ML;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble.Selector;
-using Microsoft.ML.Ensemble.Selector.SubModelSelector;
+using Microsoft.ML.Trainers.Ensemble;
+using Microsoft.ML.Trainers.Ensemble.SubModelSelector;
 
 [assembly: LoadableClass(typeof(AllSelectorMultiClass), null, typeof(SignatureEnsembleSubModelSelector),
     AllSelectorMultiClass.UserName, AllSelectorMultiClass.LoadName)]
 
-namespace Microsoft.ML.Ensemble.Selector.SubModelSelector
+namespace Microsoft.ML.Trainers.Ensemble.SubModelSelector
 {
     internal sealed class AllSelectorMultiClass : BaseSubModelSelector<VBuffer<Single>>, IMulticlassSubModelSelector
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BaseBestPerformanceSelector.cs b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BaseBestPerformanceSelector.cs
index 55add475f5..a13ef47b35 100644
--- a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BaseBestPerformanceSelector.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BaseBestPerformanceSelector.cs
@@ -8,7 +8,7 @@
 using System.Reflection;
 using Microsoft.ML.CommandLine;
 
-namespace Microsoft.ML.Ensemble.Selector.SubModelSelector
+namespace Microsoft.ML.Trainers.Ensemble.SubModelSelector
 {
     internal abstract class BaseBestPerformanceSelector<TOutput> : SubModelDataSelector<TOutput>
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BaseDiverseSelector.cs b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BaseDiverseSelector.cs
index e1edba726e..8f6d783c76 100644
--- a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BaseDiverseSelector.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BaseDiverseSelector.cs
@@ -6,11 +6,11 @@
 using System.Collections.Concurrent;
 using System.Collections.Generic;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble.Selector.DiversityMeasure;
 using Microsoft.ML.Internal.Utilities;
+using Microsoft.ML.Trainers.Ensemble.DiversityMeasure;
 using Microsoft.ML.Training;
 
-namespace Microsoft.ML.Ensemble.Selector.SubModelSelector
+namespace Microsoft.ML.Trainers.Ensemble.SubModelSelector
 {
     internal abstract class BaseDiverseSelector<TOutput, TDiversityMetric> : SubModelDataSelector<TOutput>
         where TDiversityMetric : class, IDiversityMeasure<TOutput>
diff --git a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BaseSubModelSelector.cs b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BaseSubModelSelector.cs
index 8d1189d049..87a61192cd 100644
--- a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BaseSubModelSelector.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BaseSubModelSelector.cs
@@ -8,7 +8,7 @@
 using Microsoft.Data.DataView;
 using Microsoft.ML.Data;
 
-namespace Microsoft.ML.Ensemble.Selector.SubModelSelector
+namespace Microsoft.ML.Trainers.Ensemble.SubModelSelector
 {
     internal abstract class BaseSubModelSelector<TOutput> : ISubModelSelector<TOutput>
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorBinary.cs b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorBinary.cs
index 3b2204af4a..869da7307e 100644
--- a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorBinary.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorBinary.cs
@@ -7,16 +7,16 @@
 using System.Collections.Generic;
 using Microsoft.ML;
 using Microsoft.ML.CommandLine;
-using Microsoft.ML.Ensemble.Selector;
-using Microsoft.ML.Ensemble.Selector.DiversityMeasure;
-using Microsoft.ML.Ensemble.Selector.SubModelSelector;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Internal.Internallearn;
+using Microsoft.ML.Trainers.Ensemble;
+using Microsoft.ML.Trainers.Ensemble.DiversityMeasure;
+using Microsoft.ML.Trainers.Ensemble.SubModelSelector;
 
 [assembly: LoadableClass(typeof(BestDiverseSelectorBinary), typeof(BestDiverseSelectorBinary.Arguments),
     typeof(SignatureEnsembleSubModelSelector), BestDiverseSelectorBinary.UserName, BestDiverseSelectorBinary.LoadName)]
 
-namespace Microsoft.ML.Ensemble.Selector.SubModelSelector
+namespace Microsoft.ML.Trainers.Ensemble.SubModelSelector
 {
     internal sealed class BestDiverseSelectorBinary : BaseDiverseSelector<Single, DisagreementDiversityMeasure>, IBinarySubModelSelector
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorMultiClass.cs b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorMultiClass.cs
index 8bae59d1f5..9a39b4f5b3 100644
--- a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorMultiClass.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorMultiClass.cs
@@ -8,16 +8,16 @@
 using Microsoft.ML;
 using Microsoft.ML.CommandLine;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble.Selector;
-using Microsoft.ML.Ensemble.Selector.DiversityMeasure;
-using Microsoft.ML.Ensemble.Selector.SubModelSelector;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Internal.Internallearn;
+using Microsoft.ML.Trainers.Ensemble;
+using Microsoft.ML.Trainers.Ensemble.DiversityMeasure;
+using Microsoft.ML.Trainers.Ensemble.SubModelSelector;
 
 [assembly: LoadableClass(typeof(BestDiverseSelectorMultiClass), typeof(BestDiverseSelectorMultiClass.Arguments),
     typeof(SignatureEnsembleSubModelSelector), BestDiverseSelectorMultiClass.UserName, BestDiverseSelectorMultiClass.LoadName)]
 
-namespace Microsoft.ML.Ensemble.Selector.SubModelSelector
+namespace Microsoft.ML.Trainers.Ensemble.SubModelSelector
 {
     internal sealed class BestDiverseSelectorMultiClass : BaseDiverseSelector<VBuffer<Single>, IDiversityMeasure<VBuffer<Single>>>, IMulticlassSubModelSelector
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorRegression.cs b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorRegression.cs
index 132f691034..2022e7d057 100644
--- a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorRegression.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorRegression.cs
@@ -7,16 +7,16 @@
 using System.Collections.Generic;
 using Microsoft.ML;
 using Microsoft.ML.CommandLine;
-using Microsoft.ML.Ensemble.Selector;
-using Microsoft.ML.Ensemble.Selector.DiversityMeasure;
-using Microsoft.ML.Ensemble.Selector.SubModelSelector;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Internal.Internallearn;
+using Microsoft.ML.Trainers.Ensemble;
+using Microsoft.ML.Trainers.Ensemble.DiversityMeasure;
+using Microsoft.ML.Trainers.Ensemble.SubModelSelector;
 
 [assembly: LoadableClass(typeof(BestDiverseSelectorRegression), typeof(BestDiverseSelectorRegression.Arguments),
     typeof(SignatureEnsembleSubModelSelector), BestDiverseSelectorRegression.UserName, BestDiverseSelectorRegression.LoadName)]
 
-namespace Microsoft.ML.Ensemble.Selector.SubModelSelector
+namespace Microsoft.ML.Trainers.Ensemble.SubModelSelector
 {
     internal sealed class BestDiverseSelectorRegression : BaseDiverseSelector<Single, RegressionDisagreementDiversityMeasure>, IRegressionSubModelSelector
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestPerformanceRegressionSelector.cs b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestPerformanceRegressionSelector.cs
index be7b7e8f35..de6fe8874d 100644
--- a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestPerformanceRegressionSelector.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestPerformanceRegressionSelector.cs
@@ -6,15 +6,15 @@
 using Microsoft.ML;
 using Microsoft.ML.CommandLine;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble.Selector;
-using Microsoft.ML.Ensemble.Selector.SubModelSelector;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Internal.Internallearn;
+using Microsoft.ML.Trainers.Ensemble;
+using Microsoft.ML.Trainers.Ensemble.SubModelSelector;
 
 [assembly: LoadableClass(typeof(BestPerformanceRegressionSelector), typeof(BestPerformanceRegressionSelector.Arguments),
     typeof(SignatureEnsembleSubModelSelector), BestPerformanceRegressionSelector.UserName, BestPerformanceRegressionSelector.LoadName)]
 
-namespace Microsoft.ML.Ensemble.Selector.SubModelSelector
+namespace Microsoft.ML.Trainers.Ensemble.SubModelSelector
 {
     internal sealed class BestPerformanceRegressionSelector : BaseBestPerformanceSelector<Single>, IRegressionSubModelSelector
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestPerformanceSelector.cs b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestPerformanceSelector.cs
index 9b24798276..f11b30556f 100644
--- a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestPerformanceSelector.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestPerformanceSelector.cs
@@ -6,15 +6,15 @@
 using Microsoft.ML;
 using Microsoft.ML.CommandLine;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble.Selector;
-using Microsoft.ML.Ensemble.Selector.SubModelSelector;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Internal.Internallearn;
+using Microsoft.ML.Trainers.Ensemble;
+using Microsoft.ML.Trainers.Ensemble.SubModelSelector;
 
 [assembly: LoadableClass(typeof(BestPerformanceSelector), typeof(BestPerformanceSelector.Arguments),
     typeof(SignatureEnsembleSubModelSelector), BestPerformanceSelector.UserName, BestPerformanceSelector.LoadName)]
 
-namespace Microsoft.ML.Ensemble.Selector.SubModelSelector
+namespace Microsoft.ML.Trainers.Ensemble.SubModelSelector
 {
     internal sealed class BestPerformanceSelector : BaseBestPerformanceSelector<Single>, IBinarySubModelSelector
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestPerformanceSelectorMultiClass.cs b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestPerformanceSelectorMultiClass.cs
index 36f9635c87..34ce8719db 100644
--- a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestPerformanceSelectorMultiClass.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestPerformanceSelectorMultiClass.cs
@@ -6,15 +6,15 @@
 using Microsoft.ML;
 using Microsoft.ML.CommandLine;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble.Selector;
-using Microsoft.ML.Ensemble.Selector.SubModelSelector;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Internal.Internallearn;
+using Microsoft.ML.Trainers.Ensemble;
+using Microsoft.ML.Trainers.Ensemble.SubModelSelector;
 
 [assembly: LoadableClass(typeof(BestPerformanceSelectorMultiClass), typeof(BestPerformanceSelectorMultiClass.Arguments),
     typeof(SignatureEnsembleSubModelSelector), BestPerformanceSelectorMultiClass.UserName, BestPerformanceSelectorMultiClass.LoadName)]
 
-namespace Microsoft.ML.Ensemble.Selector.SubModelSelector
+namespace Microsoft.ML.Trainers.Ensemble.SubModelSelector
 {
     internal sealed class BestPerformanceSelectorMultiClass : BaseBestPerformanceSelector<VBuffer<Single>>, IMulticlassSubModelSelector
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/SubModelDataSelector.cs b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/SubModelDataSelector.cs
index 0ba6497f25..ff8dd74354 100644
--- a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/SubModelDataSelector.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/SubModelDataSelector.cs
@@ -6,7 +6,7 @@
 using Microsoft.ML.CommandLine;
 using Microsoft.ML.Internal.Internallearn;
 
-namespace Microsoft.ML.Ensemble.Selector.SubModelSelector
+namespace Microsoft.ML.Trainers.Ensemble.SubModelSelector
 {
     internal abstract class SubModelDataSelector<TOutput> : BaseSubModelSelector<TOutput>
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/AllInstanceSelector.cs b/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/AllInstanceSelector.cs
index 43203e9ca9..1c1c15c3cd 100644
--- a/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/AllInstanceSelector.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/AllInstanceSelector.cs
@@ -5,16 +5,16 @@
 using System;
 using System.Collections.Generic;
 using Microsoft.ML;
-using Microsoft.ML.Ensemble.Selector;
-using Microsoft.ML.Ensemble.Selector.SubsetSelector;
 using Microsoft.ML.EntryPoints;
+using Microsoft.ML.Trainers.Ensemble;
+using Microsoft.ML.Trainers.Ensemble.SubsetSelector;
 
 [assembly: LoadableClass(typeof(AllInstanceSelector), typeof(AllInstanceSelector.Arguments),
     typeof(SignatureEnsembleDataSelector), AllInstanceSelector.UserName, AllInstanceSelector.LoadName)]
 
 [assembly: EntryPointModule(typeof(AllInstanceSelector))]
 
-namespace Microsoft.ML.Ensemble.Selector.SubsetSelector
+namespace Microsoft.ML.Trainers.Ensemble.SubsetSelector
 {
     internal sealed class AllInstanceSelector : BaseSubsetSelector<AllInstanceSelector.Arguments>
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/BaseSubsetSelector.cs b/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/BaseSubsetSelector.cs
index 8504525012..3305574d36 100644
--- a/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/BaseSubsetSelector.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/BaseSubsetSelector.cs
@@ -8,7 +8,7 @@
 using Microsoft.ML.Data;
 using Microsoft.ML.Transforms;
 
-namespace Microsoft.ML.Ensemble.Selector.SubsetSelector
+namespace Microsoft.ML.Trainers.Ensemble.SubsetSelector
 {
     internal abstract class BaseSubsetSelector<TArgs> : ISubsetSelector
         where TArgs : BaseSubsetSelector<TArgs>.ArgumentsBase
diff --git a/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/BootstrapSelector.cs b/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/BootstrapSelector.cs
index c3a98e47c8..8006ba2195 100644
--- a/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/BootstrapSelector.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/BootstrapSelector.cs
@@ -6,9 +6,9 @@
 using System.Collections.Generic;
 using Microsoft.ML;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble.Selector;
-using Microsoft.ML.Ensemble.Selector.SubsetSelector;
 using Microsoft.ML.EntryPoints;
+using Microsoft.ML.Trainers.Ensemble;
+using Microsoft.ML.Trainers.Ensemble.SubsetSelector;
 using Microsoft.ML.Transforms;
 
 [assembly: LoadableClass(typeof(BootstrapSelector), typeof(BootstrapSelector.Arguments),
@@ -16,7 +16,7 @@
 
 [assembly: EntryPointModule(typeof(BootstrapSelector))]
 
-namespace Microsoft.ML.Ensemble.Selector.SubsetSelector
+namespace Microsoft.ML.Trainers.Ensemble.SubsetSelector
 {
     internal sealed class BootstrapSelector : BaseSubsetSelector<BootstrapSelector.Arguments>
     {
diff --git a/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/RandomPartitionSelector.cs b/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/RandomPartitionSelector.cs
index a142189808..a7f52e6b7b 100644
--- a/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/RandomPartitionSelector.cs
+++ b/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/RandomPartitionSelector.cs
@@ -6,9 +6,9 @@
 using System.Collections.Generic;
 using Microsoft.ML;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble.Selector;
-using Microsoft.ML.Ensemble.Selector.SubsetSelector;
 using Microsoft.ML.EntryPoints;
+using Microsoft.ML.Trainers.Ensemble;
+using Microsoft.ML.Trainers.Ensemble.SubsetSelector;
 using Microsoft.ML.Transforms;
 
 [assembly: LoadableClass(typeof(RandomPartitionSelector), typeof(RandomPartitionSelector.Arguments),
@@ -16,7 +16,7 @@
 
 [assembly: EntryPointModule(typeof(RandomPartitionSelector))]
 
-namespace Microsoft.ML.Ensemble.Selector.SubsetSelector
+namespace Microsoft.ML.Trainers.Ensemble.SubsetSelector
 {
     internal sealed class RandomPartitionSelector : BaseSubsetSelector<RandomPartitionSelector.Arguments>
     {
diff --git a/src/Microsoft.ML.Ensemble/Subset.cs b/src/Microsoft.ML.Ensemble/Subset.cs
index 743be33df6..e1e579fd7b 100644
--- a/src/Microsoft.ML.Ensemble/Subset.cs
+++ b/src/Microsoft.ML.Ensemble/Subset.cs
@@ -5,7 +5,7 @@
 using System.Collections;
 using Microsoft.ML.Data;
 
-namespace Microsoft.ML.Ensemble
+namespace Microsoft.ML.Trainers.Ensemble
 {
     internal sealed class Subset
     {
diff --git a/src/Microsoft.ML.Ensemble/Trainer/Binary/EnsembleTrainer.cs b/src/Microsoft.ML.Ensemble/Trainer/Binary/EnsembleTrainer.cs
index d63a183f2c..1e734c875c 100644
--- a/src/Microsoft.ML.Ensemble/Trainer/Binary/EnsembleTrainer.cs
+++ b/src/Microsoft.ML.Ensemble/Trainer/Binary/EnsembleTrainer.cs
@@ -7,11 +7,8 @@
 using System.Linq;
 using Microsoft.ML;
 using Microsoft.ML.CommandLine;
-using Microsoft.ML.Ensemble;
-using Microsoft.ML.Ensemble.OutputCombiners;
-using Microsoft.ML.Ensemble.Selector;
 using Microsoft.ML.Internal.Internallearn;
-using Microsoft.ML.Trainers;
+using Microsoft.ML.Trainers.Ensemble;
 using Microsoft.ML.Trainers.Online;
 using Microsoft.ML.Training;
 
@@ -22,7 +19,7 @@
 [assembly: LoadableClass(typeof(EnsembleTrainer), typeof(EnsembleTrainer.Arguments), typeof(SignatureModelCombiner),
     "Binary Classification Ensemble Model Combiner", EnsembleTrainer.LoadNameValue, "pe", "ParallelEnsemble")]
 
-namespace Microsoft.ML.Ensemble
+namespace Microsoft.ML.Trainers.Ensemble
 {
     using TDistPredictor = IDistPredictorProducing<Single, Single>;
     using TScalarPredictor = IPredictorProducing<Single>;
diff --git a/src/Microsoft.ML.Ensemble/Trainer/EnsembleDistributionModelParameters.cs b/src/Microsoft.ML.Ensemble/Trainer/EnsembleDistributionModelParameters.cs
index e63f2059e5..d425db8e4f 100644
--- a/src/Microsoft.ML.Ensemble/Trainer/EnsembleDistributionModelParameters.cs
+++ b/src/Microsoft.ML.Ensemble/Trainer/EnsembleDistributionModelParameters.cs
@@ -9,16 +9,15 @@
 using Microsoft.Data.DataView;
 using Microsoft.ML;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble;
-using Microsoft.ML.Ensemble.OutputCombiners;
 using Microsoft.ML.Internal.Utilities;
 using Microsoft.ML.Model;
+using Microsoft.ML.Trainers.Ensemble;
 
 // These are for deserialization from a model repository.
 [assembly: LoadableClass(typeof(EnsembleDistributionModelParameters), null, typeof(SignatureLoadModel),
     EnsembleDistributionModelParameters.UserName, EnsembleDistributionModelParameters.LoaderSignature)]
 
-namespace Microsoft.ML.Ensemble
+namespace Microsoft.ML.Trainers.Ensemble
 {
     using TDistPredictor = IDistPredictorProducing<Single, Single>;
 
diff --git a/src/Microsoft.ML.Ensemble/Trainer/EnsembleModelParameters.cs b/src/Microsoft.ML.Ensemble/Trainer/EnsembleModelParameters.cs
index 032ff39695..9eb56d5bfd 100644
--- a/src/Microsoft.ML.Ensemble/Trainer/EnsembleModelParameters.cs
+++ b/src/Microsoft.ML.Ensemble/Trainer/EnsembleModelParameters.cs
@@ -7,17 +7,16 @@
 using Microsoft.Data.DataView;
 using Microsoft.ML;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble;
-using Microsoft.ML.Ensemble.OutputCombiners;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Model;
+using Microsoft.ML.Trainers.Ensemble;
 
 [assembly: LoadableClass(typeof(EnsembleModelParameters), null, typeof(SignatureLoadModel), EnsembleModelParameters.UserName,
     EnsembleModelParameters.LoaderSignature)]
 
 [assembly: EntryPointModule(typeof(EnsembleModelParameters))]
 
-namespace Microsoft.ML.Ensemble
+namespace Microsoft.ML.Trainers.Ensemble
 {
     /// <summary>
     /// A class for artifacts of ensembled models.
diff --git a/src/Microsoft.ML.Ensemble/Trainer/EnsembleModelParametersBase.cs b/src/Microsoft.ML.Ensemble/Trainer/EnsembleModelParametersBase.cs
index 5e79bbe41e..f8568cc2d7 100644
--- a/src/Microsoft.ML.Ensemble/Trainer/EnsembleModelParametersBase.cs
+++ b/src/Microsoft.ML.Ensemble/Trainer/EnsembleModelParametersBase.cs
@@ -6,12 +6,12 @@
 using System.Collections.Generic;
 using System.IO;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble.OutputCombiners;
 using Microsoft.ML.Internal.Internallearn;
 using Microsoft.ML.Internal.Utilities;
 using Microsoft.ML.Model;
+using Microsoft.ML.Trainers.Ensemble;
 
-namespace Microsoft.ML.Ensemble
+namespace Microsoft.ML.Trainers.Ensemble
 {
     public abstract class EnsembleModelParametersBase<TOutput> : ModelParametersBase<TOutput>,
         IPredictorProducing<TOutput>, ICanSaveInTextFormat, ICanSaveSummary
diff --git a/src/Microsoft.ML.Ensemble/Trainer/EnsembleTrainerBase.cs b/src/Microsoft.ML.Ensemble/Trainer/EnsembleTrainerBase.cs
index ef7ebc6d4d..b9aad6228f 100644
--- a/src/Microsoft.ML.Ensemble/Trainer/EnsembleTrainerBase.cs
+++ b/src/Microsoft.ML.Ensemble/Trainer/EnsembleTrainerBase.cs
@@ -8,15 +8,13 @@
 using System.Threading.Tasks;
 using Microsoft.ML.CommandLine;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble.OutputCombiners;
-using Microsoft.ML.Ensemble.Selector;
-using Microsoft.ML.Ensemble.Selector.SubsetSelector;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Internal.Internallearn;
 using Microsoft.ML.Internal.Utilities;
+using Microsoft.ML.Trainers.Ensemble.SubsetSelector;
 using Microsoft.ML.Training;
 
-namespace Microsoft.ML.Ensemble
+namespace Microsoft.ML.Trainers.Ensemble
 {
     using Stopwatch = System.Diagnostics.Stopwatch;
 
diff --git a/src/Microsoft.ML.Ensemble/Trainer/IModelCombiner.cs b/src/Microsoft.ML.Ensemble/Trainer/IModelCombiner.cs
index 85f55d8111..48af1cfcfa 100644
--- a/src/Microsoft.ML.Ensemble/Trainer/IModelCombiner.cs
+++ b/src/Microsoft.ML.Ensemble/Trainer/IModelCombiner.cs
@@ -4,7 +4,7 @@
 
 using System.Collections.Generic;
 
-namespace Microsoft.ML.Ensemble
+namespace Microsoft.ML.Trainers.Ensemble
 {
     public delegate void SignatureModelCombiner(PredictionKind kind);
 
diff --git a/src/Microsoft.ML.Ensemble/Trainer/Multiclass/EnsembleMultiClassModelParameters.cs b/src/Microsoft.ML.Ensemble/Trainer/Multiclass/EnsembleMultiClassModelParameters.cs
index 134e58d51d..163b256f1e 100644
--- a/src/Microsoft.ML.Ensemble/Trainer/Multiclass/EnsembleMultiClassModelParameters.cs
+++ b/src/Microsoft.ML.Ensemble/Trainer/Multiclass/EnsembleMultiClassModelParameters.cs
@@ -7,17 +7,14 @@
 using Microsoft.Data.DataView;
 using Microsoft.ML;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble;
-using Microsoft.ML.Ensemble.OutputCombiners;
 using Microsoft.ML.Model;
+using Microsoft.ML.Trainers.Ensemble;
 
 [assembly: LoadableClass(typeof(EnsembleMultiClassModelParameters), null, typeof(SignatureLoadModel),
     EnsembleMultiClassModelParameters.UserName, EnsembleMultiClassModelParameters.LoaderSignature)]
 
-namespace Microsoft.ML.Ensemble
+namespace Microsoft.ML.Trainers.Ensemble
 {
-    using TVectorPredictor = IPredictorProducing<VBuffer<Single>>;
-
     public sealed class EnsembleMultiClassModelParameters : EnsembleModelParametersBase<VBuffer<Single>>, IValueMapper
     {
         internal const string UserName = "Ensemble Multiclass Executor";
diff --git a/src/Microsoft.ML.Ensemble/Trainer/Multiclass/MulticlassDataPartitionEnsembleTrainer.cs b/src/Microsoft.ML.Ensemble/Trainer/Multiclass/MulticlassDataPartitionEnsembleTrainer.cs
index 9f5446d327..4420b15ba9 100644
--- a/src/Microsoft.ML.Ensemble/Trainer/Multiclass/MulticlassDataPartitionEnsembleTrainer.cs
+++ b/src/Microsoft.ML.Ensemble/Trainer/Multiclass/MulticlassDataPartitionEnsembleTrainer.cs
@@ -8,11 +8,8 @@
 using Microsoft.ML;
 using Microsoft.ML.CommandLine;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble;
-using Microsoft.ML.Ensemble.OutputCombiners;
-using Microsoft.ML.Ensemble.Selector;
 using Microsoft.ML.Internal.Internallearn;
-using Microsoft.ML.Trainers;
+using Microsoft.ML.Trainers.Ensemble;
 using Microsoft.ML.Training;
 
 [assembly: LoadableClass(MulticlassDataPartitionEnsembleTrainer.Summary, typeof(MulticlassDataPartitionEnsembleTrainer),
@@ -24,7 +21,7 @@
 [assembly: LoadableClass(typeof(MulticlassDataPartitionEnsembleTrainer), typeof(MulticlassDataPartitionEnsembleTrainer.Arguments),
     typeof(SignatureModelCombiner), "Multiclass Classification Ensemble Model Combiner", MulticlassDataPartitionEnsembleTrainer.LoadNameValue)]
 
-namespace Microsoft.ML.Ensemble
+namespace Microsoft.ML.Trainers.Ensemble
 {
     using TVectorPredictor = IPredictorProducing<VBuffer<Single>>;
     /// <summary>
diff --git a/src/Microsoft.ML.Ensemble/Trainer/Regression/RegressionEnsembleTrainer.cs b/src/Microsoft.ML.Ensemble/Trainer/Regression/RegressionEnsembleTrainer.cs
index a4075c9c94..e3b7976d51 100644
--- a/src/Microsoft.ML.Ensemble/Trainer/Regression/RegressionEnsembleTrainer.cs
+++ b/src/Microsoft.ML.Ensemble/Trainer/Regression/RegressionEnsembleTrainer.cs
@@ -7,11 +7,8 @@
 using System.Linq;
 using Microsoft.ML;
 using Microsoft.ML.CommandLine;
-using Microsoft.ML.Ensemble;
-using Microsoft.ML.Ensemble.OutputCombiners;
-using Microsoft.ML.Ensemble.Selector;
 using Microsoft.ML.Internal.Internallearn;
-using Microsoft.ML.Trainers;
+using Microsoft.ML.Trainers.Ensemble;
 using Microsoft.ML.Trainers.Online;
 using Microsoft.ML.Training;
 
@@ -23,7 +20,7 @@
 [assembly: LoadableClass(typeof(RegressionEnsembleTrainer), typeof(RegressionEnsembleTrainer.Arguments), typeof(SignatureModelCombiner),
     "Regression Ensemble Model Combiner", RegressionEnsembleTrainer.LoadNameValue)]
 
-namespace Microsoft.ML.Ensemble
+namespace Microsoft.ML.Trainers.Ensemble
 {
     using TScalarPredictor = IPredictorProducing<Single>;
     internal sealed class RegressionEnsembleTrainer : EnsembleTrainerBase<Single, TScalarPredictor,
diff --git a/src/Microsoft.ML.FastTree/TreeEnsemble/TreeEnsembleCombiner.cs b/src/Microsoft.ML.FastTree/TreeEnsemble/TreeEnsembleCombiner.cs
index 48819147ef..ab451165c8 100644
--- a/src/Microsoft.ML.FastTree/TreeEnsemble/TreeEnsembleCombiner.cs
+++ b/src/Microsoft.ML.FastTree/TreeEnsemble/TreeEnsembleCombiner.cs
@@ -4,10 +4,9 @@
 
 using System.Collections.Generic;
 using Microsoft.ML;
-using Microsoft.ML.Calibrator;
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble;
 using Microsoft.ML.Internal.Calibration;
+using Microsoft.ML.Trainers.Ensemble;
 using Microsoft.ML.Trainers.FastTree;
 
 [assembly: LoadableClass(typeof(TreeEnsembleCombiner), null, typeof(SignatureModelCombiner), "Fast Tree Model Combiner", "FastTreeCombiner")]
diff --git a/src/Microsoft.ML.TimeSeries.StaticPipe/TimeSeriesStatic.cs b/src/Microsoft.ML.TimeSeries.StaticPipe/TimeSeriesStatic.cs
index 85398dded2..8eec3a20e3 100644
--- a/src/Microsoft.ML.TimeSeries.StaticPipe/TimeSeriesStatic.cs
+++ b/src/Microsoft.ML.TimeSeries.StaticPipe/TimeSeriesStatic.cs
@@ -5,7 +5,7 @@
 using System.Collections.Generic;
 using Microsoft.ML.Core.Data;
 using Microsoft.ML.StaticPipe.Runtime;
-using Microsoft.ML.TimeSeriesProcessing;
+using Microsoft.ML.Transforms.TimeSeries;
 
 namespace Microsoft.ML.StaticPipe
 {
diff --git a/src/Microsoft.ML.TimeSeries/AdaptiveSingularSpectrumSequenceModeler.cs b/src/Microsoft.ML.TimeSeries/AdaptiveSingularSpectrumSequenceModeler.cs
index f41298e41f..cf5e602cf9 100644
--- a/src/Microsoft.ML.TimeSeries/AdaptiveSingularSpectrumSequenceModeler.cs
+++ b/src/Microsoft.ML.TimeSeries/AdaptiveSingularSpectrumSequenceModeler.cs
@@ -11,14 +11,13 @@
 using Microsoft.ML.Internal.CpuMath;
 using Microsoft.ML.Internal.Utilities;
 using Microsoft.ML.Model;
-using Microsoft.ML.TimeSeries;
-using Microsoft.ML.TimeSeriesProcessing;
+using Microsoft.ML.Transforms.TimeSeries;
 
 [assembly: LoadableClass(typeof(AdaptiveSingularSpectrumSequenceModeler), typeof(AdaptiveSingularSpectrumSequenceModeler), null, typeof(SignatureLoadModel),
     "SSA Sequence Modeler",
     AdaptiveSingularSpectrumSequenceModeler.LoaderSignature)]
 
-namespace Microsoft.ML.TimeSeriesProcessing
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     /// <summary>
     /// This class implements basic Singular Spectrum Analysis (SSA) model for modeling univariate time-series.
diff --git a/src/Microsoft.ML.TimeSeries/EigenUtils.cs b/src/Microsoft.ML.TimeSeries/EigenUtils.cs
index 98be26f316..fc8224b94e 100644
--- a/src/Microsoft.ML.TimeSeries/EigenUtils.cs
+++ b/src/Microsoft.ML.TimeSeries/EigenUtils.cs
@@ -8,7 +8,7 @@
 using Microsoft.ML.Internal.Utilities;
 using Float = System.Single;
 
-namespace Microsoft.ML.TimeSeriesProcessing
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     //REVIEW: improve perf with SSE and Multithreading
     internal static class EigenUtils
diff --git a/src/Microsoft.ML.TimeSeries/ExponentialAverageTransform.cs b/src/Microsoft.ML.TimeSeries/ExponentialAverageTransform.cs
index dae1fae4f5..29653b2620 100644
--- a/src/Microsoft.ML.TimeSeries/ExponentialAverageTransform.cs
+++ b/src/Microsoft.ML.TimeSeries/ExponentialAverageTransform.cs
@@ -10,14 +10,14 @@
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Internal.Utilities;
 using Microsoft.ML.Model;
-using Microsoft.ML.TimeSeriesProcessing;
+using Microsoft.ML.Transforms.TimeSeries;
 
 [assembly: LoadableClass(ExponentialAverageTransform.Summary, typeof(ExponentialAverageTransform), typeof(ExponentialAverageTransform.Arguments), typeof(SignatureDataTransform),
     ExponentialAverageTransform.UserName, ExponentialAverageTransform.LoaderSignature, ExponentialAverageTransform.ShortName)]
 [assembly: LoadableClass(ExponentialAverageTransform.Summary, typeof(ExponentialAverageTransform), null, typeof(SignatureLoadDataTransform),
     ExponentialAverageTransform.UserName, ExponentialAverageTransform.LoaderSignature)]
 
-namespace Microsoft.ML.TimeSeriesProcessing
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     /// <summary>
     /// ExponentialAverageTransform is a weighted average of the values: ExpAvg(y_t) = a * y_t + (1-a) * ExpAvg(y_(t-1)).
diff --git a/src/Microsoft.ML.TimeSeries/ExtensionsCatalog.cs b/src/Microsoft.ML.TimeSeries/ExtensionsCatalog.cs
index 4090a26ebb..e013f7c671 100644
--- a/src/Microsoft.ML.TimeSeries/ExtensionsCatalog.cs
+++ b/src/Microsoft.ML.TimeSeries/ExtensionsCatalog.cs
@@ -3,7 +3,7 @@
 // See the LICENSE file in the project root for more information.
 
 using Microsoft.ML.Data;
-using Microsoft.ML.TimeSeriesProcessing;
+using Microsoft.ML.Transforms.TimeSeries;
 
 namespace Microsoft.ML
 {
diff --git a/src/Microsoft.ML.TimeSeries/FftUtils.cs b/src/Microsoft.ML.TimeSeries/FftUtils.cs
index a02575c031..28a19a89ed 100644
--- a/src/Microsoft.ML.TimeSeries/FftUtils.cs
+++ b/src/Microsoft.ML.TimeSeries/FftUtils.cs
@@ -6,7 +6,7 @@
 using System.Runtime.InteropServices;
 using System.Security;
 
-namespace Microsoft.ML.TimeSeriesProcessing
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     /// <summary>
     /// The utility functions that wrap the native Discrete Fast Fourier Transform functionality from Intel MKL.
diff --git a/src/Microsoft.ML.TimeSeries/IidAnomalyDetectionBase.cs b/src/Microsoft.ML.TimeSeries/IidAnomalyDetectionBase.cs
index 4773fac099..25cf99347b 100644
--- a/src/Microsoft.ML.TimeSeries/IidAnomalyDetectionBase.cs
+++ b/src/Microsoft.ML.TimeSeries/IidAnomalyDetectionBase.cs
@@ -9,9 +9,8 @@
 using Microsoft.ML.Data;
 using Microsoft.ML.Internal.Utilities;
 using Microsoft.ML.Model;
-using Microsoft.ML.TimeSeries;
 
-namespace Microsoft.ML.TimeSeriesProcessing
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     /// <summary>
     /// The is the wrapper to <see cref="IidAnomalyDetectionBase"/> that computes the p-values and martingale scores for a supposedly i.i.d input sequence of floats. In other words, it assumes
diff --git a/src/Microsoft.ML.TimeSeries/IidChangePointDetector.cs b/src/Microsoft.ML.TimeSeries/IidChangePointDetector.cs
index 3984d6973d..9f5fc85a2d 100644
--- a/src/Microsoft.ML.TimeSeries/IidChangePointDetector.cs
+++ b/src/Microsoft.ML.TimeSeries/IidChangePointDetector.cs
@@ -12,8 +12,7 @@
 using Microsoft.ML.Data;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Model;
-using Microsoft.ML.TimeSeries;
-using Microsoft.ML.TimeSeriesProcessing;
+using Microsoft.ML.Transforms.TimeSeries;
 
 [assembly: LoadableClass(IidChangePointDetector.Summary, typeof(IDataTransform), typeof(IidChangePointDetector), typeof(IidChangePointDetector.Options), typeof(SignatureDataTransform),
     IidChangePointDetector.UserName, IidChangePointDetector.LoaderSignature, IidChangePointDetector.ShortName)]
@@ -27,7 +26,7 @@
 [assembly: LoadableClass(typeof(IRowMapper), typeof(IidChangePointDetector), null, typeof(SignatureLoadRowMapper),
    IidChangePointDetector.UserName, IidChangePointDetector.LoaderSignature)]
 
-namespace Microsoft.ML.TimeSeriesProcessing
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     /// <summary>
     /// This class implements the change point detector transform for an i.i.d. sequence based on adaptive kernel density estimation and martingales.
diff --git a/src/Microsoft.ML.TimeSeries/IidSpikeDetector.cs b/src/Microsoft.ML.TimeSeries/IidSpikeDetector.cs
index c6d06e66ae..813043606a 100644
--- a/src/Microsoft.ML.TimeSeries/IidSpikeDetector.cs
+++ b/src/Microsoft.ML.TimeSeries/IidSpikeDetector.cs
@@ -11,8 +11,7 @@
 using Microsoft.ML.Data;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Model;
-using Microsoft.ML.TimeSeries;
-using Microsoft.ML.TimeSeriesProcessing;
+using Microsoft.ML.Transforms.TimeSeries;
 
 [assembly: LoadableClass(IidSpikeDetector.Summary, typeof(IDataTransform), typeof(IidSpikeDetector), typeof(IidSpikeDetector.Options), typeof(SignatureDataTransform),
     IidSpikeDetector.UserName, IidSpikeDetector.LoaderSignature, IidSpikeDetector.ShortName)]
@@ -26,7 +25,7 @@
 [assembly: LoadableClass(typeof(IRowMapper), typeof(IidSpikeDetector), null, typeof(SignatureLoadRowMapper),
    IidSpikeDetector.UserName, IidSpikeDetector.LoaderSignature)]
 
-namespace Microsoft.ML.TimeSeriesProcessing
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     /// <summary>
     /// This class implements the spike detector transform for an i.i.d. sequence based on adaptive kernel density estimation.
diff --git a/src/Microsoft.ML.TimeSeries/MovingAverageTransform.cs b/src/Microsoft.ML.TimeSeries/MovingAverageTransform.cs
index 2c51fa13f5..1e04173d49 100644
--- a/src/Microsoft.ML.TimeSeries/MovingAverageTransform.cs
+++ b/src/Microsoft.ML.TimeSeries/MovingAverageTransform.cs
@@ -10,14 +10,14 @@
 using Microsoft.ML.Data;
 using Microsoft.ML.Internal.Utilities;
 using Microsoft.ML.Model;
-using Microsoft.ML.TimeSeriesProcessing;
+using Microsoft.ML.Transforms.TimeSeries;
 
 [assembly: LoadableClass(MovingAverageTransform.Summary, typeof(MovingAverageTransform), typeof(MovingAverageTransform.Arguments), typeof(SignatureDataTransform),
     "Moving Average Transform", MovingAverageTransform.LoaderSignature, "MoAv")]
 [assembly: LoadableClass(MovingAverageTransform.Summary, typeof(MovingAverageTransform), null, typeof(SignatureLoadDataTransform),
     "Moving Average Transform", MovingAverageTransform.LoaderSignature)]
 
-namespace Microsoft.ML.TimeSeriesProcessing
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     /// <summary>
     /// MovingAverageTransform is a weighted average of the values in
diff --git a/src/Microsoft.ML.TimeSeries/PValueTransform.cs b/src/Microsoft.ML.TimeSeries/PValueTransform.cs
index a1723ef162..528f8b7fd0 100644
--- a/src/Microsoft.ML.TimeSeries/PValueTransform.cs
+++ b/src/Microsoft.ML.TimeSeries/PValueTransform.cs
@@ -10,14 +10,14 @@
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Internal.Utilities;
 using Microsoft.ML.Model;
-using Microsoft.ML.TimeSeriesProcessing;
+using Microsoft.ML.Transforms.TimeSeries;
 
 [assembly: LoadableClass(PValueTransform.Summary, typeof(PValueTransform), typeof(PValueTransform.Arguments), typeof(SignatureDataTransform),
     PValueTransform.UserName, PValueTransform.LoaderSignature, PValueTransform.ShortName)]
 [assembly: LoadableClass(PValueTransform.Summary, typeof(PValueTransform), null, typeof(SignatureLoadDataTransform),
     PValueTransform.UserName, PValueTransform.LoaderSignature)]
 
-namespace Microsoft.ML.TimeSeriesProcessing
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     /// <summary>
     /// PValueTransform is a sequential transform that computes the empirical p-value of the current value in the series based on the other values in
diff --git a/src/Microsoft.ML.TimeSeries/PercentileThresholdTransform.cs b/src/Microsoft.ML.TimeSeries/PercentileThresholdTransform.cs
index bfac8ad93a..a4e8c792d0 100644
--- a/src/Microsoft.ML.TimeSeries/PercentileThresholdTransform.cs
+++ b/src/Microsoft.ML.TimeSeries/PercentileThresholdTransform.cs
@@ -10,14 +10,14 @@
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Internal.Utilities;
 using Microsoft.ML.Model;
-using Microsoft.ML.TimeSeriesProcessing;
+using Microsoft.ML.Transforms.TimeSeries;
 
 [assembly: LoadableClass(PercentileThresholdTransform.Summary, typeof(PercentileThresholdTransform), typeof(PercentileThresholdTransform.Arguments), typeof(SignatureDataTransform),
     PercentileThresholdTransform.UserName, PercentileThresholdTransform.LoaderSignature, PercentileThresholdTransform.ShortName)]
 [assembly: LoadableClass(PercentileThresholdTransform.Summary, typeof(PercentileThresholdTransform), null, typeof(SignatureLoadDataTransform),
     PercentileThresholdTransform.UserName, PercentileThresholdTransform.LoaderSignature)]
 
-namespace Microsoft.ML.TimeSeriesProcessing
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     /// <summary>
     /// PercentileThresholdTransform is a sequential transform that decides whether the current value of the time-series belongs to the 'percentile' % of the top values in
diff --git a/src/Microsoft.ML.TimeSeries/PolynomialUtils.cs b/src/Microsoft.ML.TimeSeries/PolynomialUtils.cs
index 19b1d7f97d..7ba7dd0d25 100644
--- a/src/Microsoft.ML.TimeSeries/PolynomialUtils.cs
+++ b/src/Microsoft.ML.TimeSeries/PolynomialUtils.cs
@@ -8,7 +8,7 @@
 using System.Numerics;
 using Microsoft.ML.Internal.Utilities;
 
-namespace Microsoft.ML.TimeSeriesProcessing
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     internal static class PolynomialUtils
     {
diff --git a/src/Microsoft.ML.TimeSeries/PredictionFunction.cs b/src/Microsoft.ML.TimeSeries/PredictionFunction.cs
index 0e97713247..5aab239fef 100644
--- a/src/Microsoft.ML.TimeSeries/PredictionFunction.cs
+++ b/src/Microsoft.ML.TimeSeries/PredictionFunction.cs
@@ -10,7 +10,7 @@
 using Microsoft.ML.Core.Data;
 using Microsoft.ML.Data;
 
-namespace Microsoft.ML.TimeSeries
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     internal interface IStatefulRowToRowMapper : IRowToRowMapper
     {
diff --git a/src/Microsoft.ML.TimeSeries/SequenceModelerBase.cs b/src/Microsoft.ML.TimeSeries/SequenceModelerBase.cs
index d643435704..b6da0925cc 100644
--- a/src/Microsoft.ML.TimeSeries/SequenceModelerBase.cs
+++ b/src/Microsoft.ML.TimeSeries/SequenceModelerBase.cs
@@ -6,7 +6,7 @@
 using Microsoft.ML.Internal.Utilities;
 using Microsoft.ML.Model;
 
-namespace Microsoft.ML.TimeSeriesProcessing
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     /// <summary>
     /// The base container class for the forecast result on a sequence of type <typeparamref name="T"/>.
diff --git a/src/Microsoft.ML.TimeSeries/SequentialAnomalyDetectionTransformBase.cs b/src/Microsoft.ML.TimeSeries/SequentialAnomalyDetectionTransformBase.cs
index d9c3750cd6..4bd1cbc87d 100644
--- a/src/Microsoft.ML.TimeSeries/SequentialAnomalyDetectionTransformBase.cs
+++ b/src/Microsoft.ML.TimeSeries/SequentialAnomalyDetectionTransformBase.cs
@@ -12,9 +12,9 @@
 using Microsoft.ML.Internal.CpuMath;
 using Microsoft.ML.Internal.Utilities;
 using Microsoft.ML.Model;
-using Microsoft.ML.TimeSeries;
+using Microsoft.ML.Transforms.TimeSeries;
 
-namespace Microsoft.ML.TimeSeriesProcessing
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     /// <summary>
     /// The type of the martingale.
diff --git a/src/Microsoft.ML.TimeSeries/SequentialTransformBase.cs b/src/Microsoft.ML.TimeSeries/SequentialTransformBase.cs
index d476ba6c64..728d3bc710 100644
--- a/src/Microsoft.ML.TimeSeries/SequentialTransformBase.cs
+++ b/src/Microsoft.ML.TimeSeries/SequentialTransformBase.cs
@@ -11,7 +11,7 @@
 using Microsoft.ML.Model;
 using Microsoft.ML.Transforms;
 
-namespace Microsoft.ML.TimeSeriesProcessing
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     /// <summary>
     /// The box class that is used to box the TInput and TOutput for the LambdaTransform.
diff --git a/src/Microsoft.ML.TimeSeries/SequentialTransformerBase.cs b/src/Microsoft.ML.TimeSeries/SequentialTransformerBase.cs
index e0878e58e1..1c795b1bee 100644
--- a/src/Microsoft.ML.TimeSeries/SequentialTransformerBase.cs
+++ b/src/Microsoft.ML.TimeSeries/SequentialTransformerBase.cs
@@ -13,10 +13,8 @@
 using Microsoft.ML.Model;
 using Microsoft.ML.Model.Onnx;
 using Microsoft.ML.Model.Pfa;
-using Microsoft.ML.TimeSeries;
-using Microsoft.ML.Transforms;
 
-namespace Microsoft.ML.TimeSeriesProcessing
+namespace Microsoft.ML.Transforms.TimeSeries
 {
 
     /// <summary>
diff --git a/src/Microsoft.ML.TimeSeries/SlidingWindowTransform.cs b/src/Microsoft.ML.TimeSeries/SlidingWindowTransform.cs
index 3f57b81113..103d63f0fa 100644
--- a/src/Microsoft.ML.TimeSeries/SlidingWindowTransform.cs
+++ b/src/Microsoft.ML.TimeSeries/SlidingWindowTransform.cs
@@ -7,14 +7,14 @@
 using Microsoft.ML;
 using Microsoft.ML.Data;
 using Microsoft.ML.Model;
-using Microsoft.ML.TimeSeriesProcessing;
+using Microsoft.ML.Transforms.TimeSeries;
 
 [assembly: LoadableClass(SlidingWindowTransform.Summary, typeof(SlidingWindowTransform), typeof(SlidingWindowTransform.Arguments), typeof(SignatureDataTransform),
     SlidingWindowTransform.UserName, SlidingWindowTransform.LoaderSignature, SlidingWindowTransform.ShortName)]
 [assembly: LoadableClass(SlidingWindowTransform.Summary, typeof(SlidingWindowTransform), null, typeof(SignatureLoadDataTransform),
     SlidingWindowTransform.UserName, SlidingWindowTransform.LoaderSignature)]
 
-namespace Microsoft.ML.TimeSeriesProcessing
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     /// <summary>
     /// Outputs a sliding window on a time series of type Single.
diff --git a/src/Microsoft.ML.TimeSeries/SlidingWindowTransformBase.cs b/src/Microsoft.ML.TimeSeries/SlidingWindowTransformBase.cs
index 84abfacc94..677ddc2488 100644
--- a/src/Microsoft.ML.TimeSeries/SlidingWindowTransformBase.cs
+++ b/src/Microsoft.ML.TimeSeries/SlidingWindowTransformBase.cs
@@ -6,13 +6,11 @@
 using Microsoft.Data.DataView;
 using Microsoft.ML.CommandLine;
 using Microsoft.ML.Data;
-using Microsoft.ML.Data.Conversion;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Internal.Utilities;
 using Microsoft.ML.Model;
-using Microsoft.ML.Transforms;
 
-namespace Microsoft.ML.TimeSeriesProcessing
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     /// <summary>
     /// SlidingWindowTransformBase outputs a sliding window as a VBuffer from a series of any type.
@@ -104,7 +102,7 @@ private TInput GetNaValue()
             int index;
             sch.TryGetColumnIndex(InputColumnName, out index);
             ColumnType col = sch[index].Type;
-            TInput nanValue = Conversions.Instance.GetNAOrDefault<TInput>(col);
+            TInput nanValue = Data.Conversion.Conversions.Instance.GetNAOrDefault<TInput>(col);
 
             // We store the nan_value here to avoid getting it each time a state is instanciated.
             return nanValue;
diff --git a/src/Microsoft.ML.TimeSeries/SsaAnomalyDetectionBase.cs b/src/Microsoft.ML.TimeSeries/SsaAnomalyDetectionBase.cs
index 4cb858485a..3a7411693f 100644
--- a/src/Microsoft.ML.TimeSeries/SsaAnomalyDetectionBase.cs
+++ b/src/Microsoft.ML.TimeSeries/SsaAnomalyDetectionBase.cs
@@ -10,9 +10,9 @@
 using Microsoft.ML.Data;
 using Microsoft.ML.Internal.Utilities;
 using Microsoft.ML.Model;
-using Microsoft.ML.TimeSeries;
+using Microsoft.ML.Transforms.TimeSeries;
 
-namespace Microsoft.ML.TimeSeriesProcessing
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     public enum ErrorFunction : byte
     {
diff --git a/src/Microsoft.ML.TimeSeries/SsaChangePointDetector.cs b/src/Microsoft.ML.TimeSeries/SsaChangePointDetector.cs
index 6da61935dc..e6ea241e26 100644
--- a/src/Microsoft.ML.TimeSeries/SsaChangePointDetector.cs
+++ b/src/Microsoft.ML.TimeSeries/SsaChangePointDetector.cs
@@ -12,8 +12,7 @@
 using Microsoft.ML.Data;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Model;
-using Microsoft.ML.TimeSeries;
-using Microsoft.ML.TimeSeriesProcessing;
+using Microsoft.ML.Transforms.TimeSeries;
 
 [assembly: LoadableClass(SsaChangePointDetector.Summary, typeof(IDataTransform), typeof(SsaChangePointDetector), typeof(SsaChangePointDetector.Options), typeof(SignatureDataTransform),
     SsaChangePointDetector.UserName, SsaChangePointDetector.LoaderSignature, SsaChangePointDetector.ShortName)]
@@ -27,7 +26,7 @@
 [assembly: LoadableClass(typeof(IRowMapper), typeof(SsaChangePointDetector), null, typeof(SignatureLoadRowMapper),
    SsaChangePointDetector.UserName, SsaChangePointDetector.LoaderSignature)]
 
-namespace Microsoft.ML.TimeSeriesProcessing
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     /// <summary>
     /// This class implements the change point detector transform based on Singular Spectrum modeling of the time-series.
diff --git a/src/Microsoft.ML.TimeSeries/SsaSpikeDetector.cs b/src/Microsoft.ML.TimeSeries/SsaSpikeDetector.cs
index 9a2ad25aab..399bc6b6e0 100644
--- a/src/Microsoft.ML.TimeSeries/SsaSpikeDetector.cs
+++ b/src/Microsoft.ML.TimeSeries/SsaSpikeDetector.cs
@@ -11,8 +11,7 @@
 using Microsoft.ML.Data;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Model;
-using Microsoft.ML.TimeSeries;
-using Microsoft.ML.TimeSeriesProcessing;
+using Microsoft.ML.Transforms.TimeSeries;
 
 [assembly: LoadableClass(SsaSpikeDetector.Summary, typeof(IDataTransform), typeof(SsaSpikeDetector), typeof(SsaSpikeDetector.Options), typeof(SignatureDataTransform),
     SsaSpikeDetector.UserName, SsaSpikeDetector.LoaderSignature, SsaSpikeDetector.ShortName)]
@@ -26,7 +25,7 @@
 [assembly: LoadableClass(typeof(IRowMapper), typeof(SsaSpikeDetector), null, typeof(SignatureLoadRowMapper),
    SsaSpikeDetector.UserName, SsaSpikeDetector.LoaderSignature)]
 
-namespace Microsoft.ML.TimeSeriesProcessing
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     /// <summary>
     /// This class implements the spike detector transform based on Singular Spectrum modeling of the time-series.
diff --git a/src/Microsoft.ML.TimeSeries/TimeSeriesProcessing.cs b/src/Microsoft.ML.TimeSeries/TimeSeriesProcessing.cs
index da5c7b9153..e128a4730c 100644
--- a/src/Microsoft.ML.TimeSeries/TimeSeriesProcessing.cs
+++ b/src/Microsoft.ML.TimeSeries/TimeSeriesProcessing.cs
@@ -3,11 +3,11 @@
 // See the LICENSE file in the project root for more information.
 
 using Microsoft.ML.EntryPoints;
-using Microsoft.ML.TimeSeriesProcessing;
+using Microsoft.ML.Transforms.TimeSeries;
 
 [assembly: EntryPointModule(typeof(TimeSeriesProcessingEntryPoints))]
 
-namespace Microsoft.ML.TimeSeriesProcessing
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     /// <summary>
     /// Entry points for text anylytics transforms.
@@ -26,7 +26,9 @@ internal static CommonOutputs.TransformOutput ExponentialAverage(IHostEnvironmen
             };
         }
 
-        [TlcModule.EntryPoint(Desc = TimeSeriesProcessing.IidChangePointDetector.Summary, UserName = TimeSeriesProcessing.IidChangePointDetector.UserName, ShortName = TimeSeriesProcessing.IidChangePointDetector.ShortName)]
+        [TlcModule.EntryPoint(Desc = TimeSeries.IidChangePointDetector.Summary,
+            UserName = TimeSeries.IidChangePointDetector.UserName,
+            ShortName = TimeSeries.IidChangePointDetector.ShortName)]
         internal static CommonOutputs.TransformOutput IidChangePointDetector(IHostEnvironment env, IidChangePointDetector.Options options)
         {
             var h = EntryPointUtils.CheckArgsAndCreateHost(env, "IidChangePointDetector", options);
@@ -38,7 +40,9 @@ internal static CommonOutputs.TransformOutput IidChangePointDetector(IHostEnviro
             };
         }
 
-        [TlcModule.EntryPoint(Desc = TimeSeriesProcessing.IidSpikeDetector.Summary, UserName = TimeSeriesProcessing.IidSpikeDetector.UserName, ShortName = TimeSeriesProcessing.IidSpikeDetector.ShortName)]
+        [TlcModule.EntryPoint(Desc = TimeSeries.IidSpikeDetector.Summary,
+            UserName = TimeSeries.IidSpikeDetector.UserName,
+            ShortName = TimeSeries.IidSpikeDetector.ShortName)]
         internal static CommonOutputs.TransformOutput IidSpikeDetector(IHostEnvironment env, IidSpikeDetector.Options options)
         {
             var h = EntryPointUtils.CheckArgsAndCreateHost(env, "IidSpikeDetector", options);
@@ -50,7 +54,9 @@ internal static CommonOutputs.TransformOutput IidSpikeDetector(IHostEnvironment
             };
         }
 
-        [TlcModule.EntryPoint(Desc = TimeSeriesProcessing.PercentileThresholdTransform.Summary, UserName = TimeSeriesProcessing.PercentileThresholdTransform.UserName, ShortName = TimeSeriesProcessing.PercentileThresholdTransform.ShortName)]
+        [TlcModule.EntryPoint(Desc = TimeSeries.PercentileThresholdTransform.Summary,
+            UserName = TimeSeries.PercentileThresholdTransform.UserName,
+            ShortName = TimeSeries.PercentileThresholdTransform.ShortName)]
         internal static CommonOutputs.TransformOutput PercentileThresholdTransform(IHostEnvironment env, PercentileThresholdTransform.Arguments input)
         {
             var h = EntryPointUtils.CheckArgsAndCreateHost(env, "PercentileThresholdTransform", input);
@@ -62,7 +68,9 @@ internal static CommonOutputs.TransformOutput PercentileThresholdTransform(IHost
             };
         }
 
-        [TlcModule.EntryPoint(Desc = TimeSeriesProcessing.PValueTransform.Summary, UserName = TimeSeriesProcessing.PValueTransform.UserName, ShortName = TimeSeriesProcessing.PValueTransform.ShortName)]
+        [TlcModule.EntryPoint(Desc = TimeSeries.PValueTransform.Summary,
+            UserName = TimeSeries.PValueTransform.UserName,
+            ShortName = TimeSeries.PValueTransform.ShortName)]
         internal static CommonOutputs.TransformOutput PValueTransform(IHostEnvironment env, PValueTransform.Arguments input)
         {
             var h = EntryPointUtils.CheckArgsAndCreateHost(env, "PValueTransform", input);
@@ -74,7 +82,9 @@ internal static CommonOutputs.TransformOutput PValueTransform(IHostEnvironment e
             };
         }
 
-        [TlcModule.EntryPoint(Desc = TimeSeriesProcessing.SlidingWindowTransform.Summary, UserName = TimeSeriesProcessing.SlidingWindowTransform.UserName, ShortName = TimeSeriesProcessing.SlidingWindowTransform.ShortName)]
+        [TlcModule.EntryPoint(Desc = TimeSeries.SlidingWindowTransform.Summary,
+            UserName = TimeSeries.SlidingWindowTransform.UserName,
+            ShortName = TimeSeries.SlidingWindowTransform.ShortName)]
         internal static CommonOutputs.TransformOutput SlidingWindowTransform(IHostEnvironment env, SlidingWindowTransform.Arguments input)
         {
             var h = EntryPointUtils.CheckArgsAndCreateHost(env, "SlidingWindowTransform", input);
@@ -86,7 +96,9 @@ internal static CommonOutputs.TransformOutput SlidingWindowTransform(IHostEnviro
             };
         }
 
-        [TlcModule.EntryPoint(Desc = TimeSeriesProcessing.SsaChangePointDetector.Summary, UserName = TimeSeriesProcessing.SsaChangePointDetector.UserName, ShortName = TimeSeriesProcessing.SsaChangePointDetector.ShortName)]
+        [TlcModule.EntryPoint(Desc = TimeSeries.SsaChangePointDetector.Summary,
+            UserName = TimeSeries.SsaChangePointDetector.UserName,
+            ShortName = TimeSeries.SsaChangePointDetector.ShortName)]
         internal static CommonOutputs.TransformOutput SsaChangePointDetector(IHostEnvironment env, SsaChangePointDetector.Options options)
         {
             var h = EntryPointUtils.CheckArgsAndCreateHost(env, "SsaChangePointDetector", options);
@@ -98,8 +110,10 @@ internal static CommonOutputs.TransformOutput SsaChangePointDetector(IHostEnviro
             };
         }
 
-        [TlcModule.EntryPoint(Desc = TimeSeriesProcessing.SsaSpikeDetector.Summary, UserName = TimeSeriesProcessing.SsaSpikeDetector.UserName, ShortName = TimeSeriesProcessing.SsaSpikeDetector.ShortName)]
-        internal static CommonOutputs.TransformOutput SsaSpikeDetector(IHostEnvironment env, SsaSpikeDetector.Options options)
+        [TlcModule.EntryPoint(Desc = TimeSeries.SsaSpikeDetector.Summary,
+            UserName = TimeSeries.SsaSpikeDetector.UserName,
+            ShortName = TimeSeries.SsaSpikeDetector.ShortName)]
+        public static CommonOutputs.TransformOutput SsaSpikeDetector(IHostEnvironment env, SsaSpikeDetector.Options options)
         {
             var h = EntryPointUtils.CheckArgsAndCreateHost(env, "SsaSpikeDetector", options);
             var view = new SsaSpikeEstimator(h, options).Fit(options.Data).Transform(options.Data);
diff --git a/src/Microsoft.ML.TimeSeries/TimeSeriesUtils.cs b/src/Microsoft.ML.TimeSeries/TimeSeriesUtils.cs
index 82334f7976..e8eb79f1ba 100644
--- a/src/Microsoft.ML.TimeSeries/TimeSeriesUtils.cs
+++ b/src/Microsoft.ML.TimeSeries/TimeSeriesUtils.cs
@@ -2,7 +2,7 @@
 using System.IO;
 using Microsoft.ML.Internal.Utilities;
 
-namespace Microsoft.ML.TimeSeries
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     internal static class TimeSeriesUtils
     {
diff --git a/src/Microsoft.ML.TimeSeries/TrajectoryMatrix.cs b/src/Microsoft.ML.TimeSeries/TrajectoryMatrix.cs
index b8153cd03f..2ea67dae96 100644
--- a/src/Microsoft.ML.TimeSeries/TrajectoryMatrix.cs
+++ b/src/Microsoft.ML.TimeSeries/TrajectoryMatrix.cs
@@ -5,7 +5,7 @@
 using System;
 using Microsoft.ML.Internal.Utilities;
 
-namespace Microsoft.ML.TimeSeriesProcessing
+namespace Microsoft.ML.Transforms.TimeSeries
 {
     /// <summary>
     /// This class encapsulates the trajectory matrix of a time-series used in Singular Spectrum Analysis (SSA).
diff --git a/test/BaselineOutput/Common/EntryPoints/core_ep-list.tsv b/test/BaselineOutput/Common/EntryPoints/core_ep-list.tsv
index d1a8e3c139..0c60d474be 100644
--- a/test/BaselineOutput/Common/EntryPoints/core_ep-list.tsv
+++ b/test/BaselineOutput/Common/EntryPoints/core_ep-list.tsv
@@ -4,19 +4,19 @@ Data.IDataViewArrayConverter	Create an array variable of IDataView	Microsoft.ML.
 Data.PredictorModelArrayConverter	Create an array variable of PredictorModel	Microsoft.ML.EntryPoints.MacroUtils	MakeArray	Microsoft.ML.EntryPoints.MacroUtils+ArrayIPredictorModelInput	Microsoft.ML.EntryPoints.MacroUtils+ArrayIPredictorModelOutput
 Data.TextLoader	Import a dataset from a text file	Microsoft.ML.EntryPoints.ImportTextData	TextLoader	Microsoft.ML.EntryPoints.ImportTextData+LoaderInput	Microsoft.ML.EntryPoints.ImportTextData+Output
 Models.AnomalyDetectionEvaluator	Evaluates an anomaly detection scored dataset.	Microsoft.ML.Data.Evaluate	AnomalyDetection	Microsoft.ML.Data.AnomalyDetectionMamlEvaluator+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+CommonEvaluateOutput
-Models.AnomalyPipelineEnsemble	Combine anomaly detection models into an ensemble	Microsoft.ML.Ensemble.EnsembleCreator	CreateAnomalyPipelineEnsemble	Microsoft.ML.Ensemble.EnsembleCreator+PipelineAnomalyInput	Microsoft.ML.EntryPoints.CommonOutputs+AnomalyDetectionOutput
+Models.AnomalyPipelineEnsemble	Combine anomaly detection models into an ensemble	Microsoft.ML.Trainers.Ensemble.EnsembleCreator	CreateAnomalyPipelineEnsemble	Microsoft.ML.Trainers.Ensemble.EnsembleCreator+PipelineAnomalyInput	Microsoft.ML.EntryPoints.CommonOutputs+AnomalyDetectionOutput
 Models.BinaryClassificationEvaluator	Evaluates a binary classification scored dataset.	Microsoft.ML.Data.Evaluate	Binary	Microsoft.ML.Data.BinaryClassifierMamlEvaluator+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+ClassificationEvaluateOutput
-Models.BinaryEnsemble	Combine binary classifiers into an ensemble	Microsoft.ML.Ensemble.EnsembleCreator	CreateBinaryEnsemble	Microsoft.ML.Ensemble.EnsembleCreator+ClassifierInput	Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput
-Models.BinaryPipelineEnsemble	Combine binary classification models into an ensemble	Microsoft.ML.Ensemble.EnsembleCreator	CreateBinaryPipelineEnsemble	Microsoft.ML.Ensemble.EnsembleCreator+PipelineClassifierInput	Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput
+Models.BinaryEnsemble	Combine binary classifiers into an ensemble	Microsoft.ML.Trainers.Ensemble.EnsembleCreator	CreateBinaryEnsemble	Microsoft.ML.Trainers.Ensemble.EnsembleCreator+ClassifierInput	Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput
+Models.BinaryPipelineEnsemble	Combine binary classification models into an ensemble	Microsoft.ML.Trainers.Ensemble.EnsembleCreator	CreateBinaryPipelineEnsemble	Microsoft.ML.Trainers.Ensemble.EnsembleCreator+PipelineClassifierInput	Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput
 Models.ClassificationEvaluator	Evaluates a multi class classification scored dataset.	Microsoft.ML.Data.Evaluate	MultiClass	Microsoft.ML.Data.MultiClassMamlEvaluator+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+ClassificationEvaluateOutput
 Models.ClusterEvaluator	Evaluates a clustering scored dataset.	Microsoft.ML.Data.Evaluate	Clustering	Microsoft.ML.Data.ClusteringMamlEvaluator+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+CommonEvaluateOutput
 Models.CrossValidationResultsCombiner	Combine the metric data views returned from cross validation.	Microsoft.ML.EntryPoints.CrossValidationMacro	CombineMetrics	Microsoft.ML.EntryPoints.CrossValidationMacro+CombineMetricsInput	Microsoft.ML.EntryPoints.CrossValidationMacro+CombinedOutput
 Models.CrossValidator	Cross validation for general learning	Microsoft.ML.EntryPoints.CrossValidationMacro	CrossValidate	Microsoft.ML.EntryPoints.CrossValidationMacro+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+MacroOutput`1[Microsoft.ML.EntryPoints.CrossValidationMacro+Output]
 Models.CrossValidatorDatasetSplitter	Split the dataset into the specified number of cross-validation folds (train and test sets)	Microsoft.ML.EntryPoints.CVSplit	Split	Microsoft.ML.EntryPoints.CVSplit+Input	Microsoft.ML.EntryPoints.CVSplit+Output
 Models.DatasetTransformer	Applies a TransformModel to a dataset.	Microsoft.ML.EntryPoints.ModelOperations	Apply	Microsoft.ML.EntryPoints.ModelOperations+ApplyTransformModelInput	Microsoft.ML.EntryPoints.ModelOperations+ApplyTransformModelOutput
-Models.EnsembleSummary	Summarize a pipeline ensemble predictor.	Microsoft.ML.Ensemble.PipelineEnsemble	Summarize	Microsoft.ML.EntryPoints.SummarizePredictor+Input	Microsoft.ML.Ensemble.PipelineEnsemble+SummaryOutput
+Models.EnsembleSummary	Summarize a pipeline ensemble predictor.	Microsoft.ML.Trainers.Ensemble.PipelineEnsemble	Summarize	Microsoft.ML.EntryPoints.SummarizePredictor+Input	Microsoft.ML.Trainers.Ensemble.PipelineEnsemble+SummaryOutput
 Models.FixedPlattCalibrator	Apply a Platt calibrator with a fixed slope and offset to an input model	Microsoft.ML.Internal.Calibration.Calibrate	FixedPlatt	Microsoft.ML.Internal.Calibration.Calibrate+FixedPlattInput	Microsoft.ML.EntryPoints.CommonOutputs+CalibratorOutput
-Models.MultiClassPipelineEnsemble	Combine multiclass classifiers into an ensemble	Microsoft.ML.Ensemble.EnsembleCreator	CreateMultiClassPipelineEnsemble	Microsoft.ML.Ensemble.EnsembleCreator+PipelineClassifierInput	Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput
+Models.MultiClassPipelineEnsemble	Combine multiclass classifiers into an ensemble	Microsoft.ML.Trainers.Ensemble.EnsembleCreator	CreateMultiClassPipelineEnsemble	Microsoft.ML.Trainers.Ensemble.EnsembleCreator+PipelineClassifierInput	Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput
 Models.MultiOutputRegressionEvaluator	Evaluates a multi output regression scored dataset.	Microsoft.ML.Data.Evaluate	MultiOutputRegression	Microsoft.ML.Data.MultiOutputRegressionMamlEvaluator+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+CommonEvaluateOutput
 Models.NaiveCalibrator	Apply a Naive calibrator to an input model	Microsoft.ML.Internal.Calibration.Calibrate	Naive	Microsoft.ML.Internal.Calibration.Calibrate+NoArgumentsInput	Microsoft.ML.EntryPoints.CommonOutputs+CalibratorOutput
 Models.OneVersusAll	One-vs-All macro (OVA)	Microsoft.ML.EntryPoints.OneVersusAllMacro	OneVersusAll	Microsoft.ML.EntryPoints.OneVersusAllMacro+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+MacroOutput`1[Microsoft.ML.EntryPoints.OneVersusAllMacro+Output]
@@ -26,23 +26,23 @@ Models.PAVCalibrator	Apply a PAV calibrator to an input model	Microsoft.ML.Inter
 Models.PlattCalibrator	Apply a Platt calibrator to an input model	Microsoft.ML.Internal.Calibration.Calibrate	Platt	Microsoft.ML.Internal.Calibration.Calibrate+NoArgumentsInput	Microsoft.ML.EntryPoints.CommonOutputs+CalibratorOutput
 Models.QuantileRegressionEvaluator	Evaluates a quantile regression scored dataset.	Microsoft.ML.Data.Evaluate	QuantileRegression	Microsoft.ML.Data.QuantileRegressionMamlEvaluator+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+CommonEvaluateOutput
 Models.RankerEvaluator	Evaluates a ranking scored dataset.	Microsoft.ML.Data.Evaluate	Ranking	Microsoft.ML.Data.RankerMamlEvaluator+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+CommonEvaluateOutput
-Models.RegressionEnsemble	Combine regression models into an ensemble	Microsoft.ML.Ensemble.EnsembleCreator	CreateRegressionEnsemble	Microsoft.ML.Ensemble.EnsembleCreator+RegressionInput	Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput
+Models.RegressionEnsemble	Combine regression models into an ensemble	Microsoft.ML.Trainers.Ensemble.EnsembleCreator	CreateRegressionEnsemble	Microsoft.ML.Trainers.Ensemble.EnsembleCreator+RegressionInput	Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput
 Models.RegressionEvaluator	Evaluates a regression scored dataset.	Microsoft.ML.Data.Evaluate	Regression	Microsoft.ML.Data.RegressionMamlEvaluator+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+CommonEvaluateOutput
-Models.RegressionPipelineEnsemble	Combine regression models into an ensemble	Microsoft.ML.Ensemble.EnsembleCreator	CreateRegressionPipelineEnsemble	Microsoft.ML.Ensemble.EnsembleCreator+PipelineRegressionInput	Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput
+Models.RegressionPipelineEnsemble	Combine regression models into an ensemble	Microsoft.ML.Trainers.Ensemble.EnsembleCreator	CreateRegressionPipelineEnsemble	Microsoft.ML.Trainers.Ensemble.EnsembleCreator+PipelineRegressionInput	Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput
 Models.Summarizer	Summarize a linear regression predictor.	Microsoft.ML.EntryPoints.SummarizePredictor	Summarize	Microsoft.ML.EntryPoints.SummarizePredictor+Input	Microsoft.ML.EntryPoints.CommonOutputs+SummaryOutput
 Models.TrainTestEvaluator	General train test for any supported evaluator	Microsoft.ML.EntryPoints.TrainTestMacro	TrainTest	Microsoft.ML.EntryPoints.TrainTestMacro+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+MacroOutput`1[Microsoft.ML.EntryPoints.TrainTestMacro+Output]
-TimeSeriesProcessingEntryPoints.ExponentialAverage	Applies a Exponential average on a time series.	Microsoft.ML.TimeSeriesProcessing.TimeSeriesProcessingEntryPoints	ExponentialAverage	Microsoft.ML.TimeSeriesProcessing.ExponentialAverageTransform+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput
-TimeSeriesProcessingEntryPoints.IidChangePointDetector	This transform detects the change-points in an i.i.d. sequence using adaptive kernel density estimation and martingales.	Microsoft.ML.TimeSeriesProcessing.TimeSeriesProcessingEntryPoints	IidChangePointDetector	Microsoft.ML.TimeSeriesProcessing.IidChangePointDetector+Options	Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput
-TimeSeriesProcessingEntryPoints.IidSpikeDetector	This transform detects the spikes in a i.i.d. sequence using adaptive kernel density estimation.	Microsoft.ML.TimeSeriesProcessing.TimeSeriesProcessingEntryPoints	IidSpikeDetector	Microsoft.ML.TimeSeriesProcessing.IidSpikeDetector+Options	Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput
-TimeSeriesProcessingEntryPoints.PercentileThresholdTransform	Detects the values of time-series that are in the top percentile of the sliding window.	Microsoft.ML.TimeSeriesProcessing.TimeSeriesProcessingEntryPoints	PercentileThresholdTransform	Microsoft.ML.TimeSeriesProcessing.PercentileThresholdTransform+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput
-TimeSeriesProcessingEntryPoints.PValueTransform	This P-Value transform calculates the p-value of the current input in the sequence with regard to the values in the sliding window.	Microsoft.ML.TimeSeriesProcessing.TimeSeriesProcessingEntryPoints	PValueTransform	Microsoft.ML.TimeSeriesProcessing.PValueTransform+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput
-TimeSeriesProcessingEntryPoints.SlidingWindowTransform	Returns the last values for a time series [y(t-d-l+1), y(t-d-l+2), ..., y(t-l-1), y(t-l)] where d is the size of the window, l the lag and y is a Float.	Microsoft.ML.TimeSeriesProcessing.TimeSeriesProcessingEntryPoints	SlidingWindowTransform	Microsoft.ML.TimeSeriesProcessing.SlidingWindowTransformBase`1+Arguments[System.Single]	Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput
-TimeSeriesProcessingEntryPoints.SsaChangePointDetector	This transform detects the change-points in a seasonal time-series using Singular Spectrum Analysis (SSA).	Microsoft.ML.TimeSeriesProcessing.TimeSeriesProcessingEntryPoints	SsaChangePointDetector	Microsoft.ML.TimeSeriesProcessing.SsaChangePointDetector+Options	Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput
-TimeSeriesProcessingEntryPoints.SsaSpikeDetector	This transform detects the spikes in a seasonal time-series using Singular Spectrum Analysis (SSA).	Microsoft.ML.TimeSeriesProcessing.TimeSeriesProcessingEntryPoints	SsaSpikeDetector	Microsoft.ML.TimeSeriesProcessing.SsaSpikeDetector+Options	Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput
+TimeSeriesProcessingEntryPoints.ExponentialAverage	Applies a Exponential average on a time series.	Microsoft.ML.Transforms.TimeSeries.TimeSeriesProcessingEntryPoints	ExponentialAverage	Microsoft.ML.Transforms.TimeSeries.ExponentialAverageTransform+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput
+TimeSeriesProcessingEntryPoints.IidChangePointDetector	This transform detects the change-points in an i.i.d. sequence using adaptive kernel density estimation and martingales.	Microsoft.ML.Transforms.TimeSeries.TimeSeriesProcessingEntryPoints	IidChangePointDetector	Microsoft.ML.Transforms.TimeSeries.IidChangePointDetector+Options	Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput
+TimeSeriesProcessingEntryPoints.IidSpikeDetector	This transform detects the spikes in a i.i.d. sequence using adaptive kernel density estimation.	Microsoft.ML.Transforms.TimeSeries.TimeSeriesProcessingEntryPoints	IidSpikeDetector	Microsoft.ML.Transforms.TimeSeries.IidSpikeDetector+Options	Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput
+TimeSeriesProcessingEntryPoints.PercentileThresholdTransform	Detects the values of time-series that are in the top percentile of the sliding window.	Microsoft.ML.Transforms.TimeSeries.TimeSeriesProcessingEntryPoints	PercentileThresholdTransform	Microsoft.ML.Transforms.TimeSeries.PercentileThresholdTransform+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput
+TimeSeriesProcessingEntryPoints.PValueTransform	This P-Value transform calculates the p-value of the current input in the sequence with regard to the values in the sliding window.	Microsoft.ML.Transforms.TimeSeries.TimeSeriesProcessingEntryPoints	PValueTransform	Microsoft.ML.Transforms.TimeSeries.PValueTransform+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput
+TimeSeriesProcessingEntryPoints.SlidingWindowTransform	Returns the last values for a time series [y(t-d-l+1), y(t-d-l+2), ..., y(t-l-1), y(t-l)] where d is the size of the window, l the lag and y is a Float.	Microsoft.ML.Transforms.TimeSeries.TimeSeriesProcessingEntryPoints	SlidingWindowTransform	Microsoft.ML.Transforms.TimeSeries.SlidingWindowTransformBase`1+Arguments[System.Single]	Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput
+TimeSeriesProcessingEntryPoints.SsaChangePointDetector	This transform detects the change-points in a seasonal time-series using Singular Spectrum Analysis (SSA).	Microsoft.ML.Transforms.TimeSeries.TimeSeriesProcessingEntryPoints	SsaChangePointDetector	Microsoft.ML.Transforms.TimeSeries.SsaChangePointDetector+Options	Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput
+TimeSeriesProcessingEntryPoints.SsaSpikeDetector	This transform detects the spikes in a seasonal time-series using Singular Spectrum Analysis (SSA).	Microsoft.ML.Transforms.TimeSeries.TimeSeriesProcessingEntryPoints	SsaSpikeDetector	Microsoft.ML.Transforms.TimeSeries.SsaSpikeDetector+Options	Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput
 Trainers.AveragedPerceptronBinaryClassifier	Averaged Perceptron Binary Classifier.	Microsoft.ML.Trainers.Online.AveragedPerceptronTrainer	TrainBinary	Microsoft.ML.Trainers.Online.AveragedPerceptronTrainer+Options	Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput
-Trainers.EnsembleBinaryClassifier	Train binary ensemble.	Microsoft.ML.Ensemble.Ensemble	CreateBinaryEnsemble	Microsoft.ML.Ensemble.EnsembleTrainer+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput
-Trainers.EnsembleClassification	Train multiclass ensemble.	Microsoft.ML.Ensemble.Ensemble	CreateMultiClassEnsemble	Microsoft.ML.Ensemble.MulticlassDataPartitionEnsembleTrainer+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput
-Trainers.EnsembleRegression	Train regression ensemble.	Microsoft.ML.Ensemble.Ensemble	CreateRegressionEnsemble	Microsoft.ML.Ensemble.RegressionEnsembleTrainer+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput
+Trainers.EnsembleBinaryClassifier	Train binary ensemble.	Microsoft.ML.Trainers.Ensemble.Ensemble	CreateBinaryEnsemble	Microsoft.ML.Trainers.Ensemble.EnsembleTrainer+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput
+Trainers.EnsembleClassification	Train multiclass ensemble.	Microsoft.ML.Trainers.Ensemble.Ensemble	CreateMultiClassEnsemble	Microsoft.ML.Trainers.Ensemble.MulticlassDataPartitionEnsembleTrainer+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput
+Trainers.EnsembleRegression	Train regression ensemble.	Microsoft.ML.Trainers.Ensemble.Ensemble	CreateRegressionEnsemble	Microsoft.ML.Trainers.Ensemble.RegressionEnsembleTrainer+Arguments	Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput
 Trainers.FastForestBinaryClassifier	Uses a random forest learner to perform binary classification.	Microsoft.ML.Trainers.FastTree.FastForest	TrainBinary	Microsoft.ML.Trainers.FastTree.FastForestClassification+Options	Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput
 Trainers.FastForestRegressor	Trains a random forest to fit target values using least-squares.	Microsoft.ML.Trainers.FastTree.FastForest	TrainRegression	Microsoft.ML.Trainers.FastTree.FastForestRegression+Options	Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput
 Trainers.FastTreeBinaryClassifier	Uses a logit-boost boosted tree learner to perform binary classification.	Microsoft.ML.Trainers.FastTree.FastTree	TrainBinary	Microsoft.ML.Trainers.FastTree.FastTreeBinaryClassificationTrainer+Options	Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput
diff --git a/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs b/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs
index 4f5686c3d7..8b0c46b817 100644
--- a/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs
+++ b/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs
@@ -12,8 +12,6 @@
 using Microsoft.ML.Core.Tests.UnitTests;
 using Microsoft.ML.Data;
 using Microsoft.ML.Data.IO;
-using Microsoft.ML.Ensemble;
-using Microsoft.ML.Ensemble.OutputCombiners;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.EntryPoints.JsonUtils;
 using Microsoft.ML.ImageAnalytics;
@@ -23,8 +21,8 @@
 using Microsoft.ML.LightGBM;
 using Microsoft.ML.Model.Onnx;
 using Microsoft.ML.TestFramework.Attributes;
-using Microsoft.ML.TimeSeriesProcessing;
 using Microsoft.ML.Trainers;
+using Microsoft.ML.Trainers.Ensemble;
 using Microsoft.ML.Trainers.FastTree;
 using Microsoft.ML.Trainers.HalLearners;
 using Microsoft.ML.Trainers.PCA;
@@ -34,6 +32,7 @@
 using Microsoft.ML.Transforms.Normalizers;
 using Microsoft.ML.Transforms.Projections;
 using Microsoft.ML.Transforms.Text;
+using Microsoft.ML.Transforms.TimeSeries;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
 using Xunit;
diff --git a/test/Microsoft.ML.Predictor.Tests/TestPredictors.cs b/test/Microsoft.ML.Predictor.Tests/TestPredictors.cs
index 0af5ad72b5..464fd0dc59 100644
--- a/test/Microsoft.ML.Predictor.Tests/TestPredictors.cs
+++ b/test/Microsoft.ML.Predictor.Tests/TestPredictors.cs
@@ -15,12 +15,12 @@ namespace Microsoft.ML.RunTests
     using Microsoft.Data.DataView;
     using Microsoft.ML;
     using Microsoft.ML.Data;
-    using Microsoft.ML.Ensemble;
     using Microsoft.ML.EntryPoints;
     using Microsoft.ML.Internal.Utilities;
     using Microsoft.ML.LightGBM;
     using Microsoft.ML.TestFramework;
     using Microsoft.ML.Trainers;
+    using Microsoft.ML.Trainers.Ensemble;
     using Microsoft.ML.Trainers.FastTree;
     using Microsoft.ML.Trainers.HalLearners;
     using Microsoft.ML.Trainers.Online;
diff --git a/test/Microsoft.ML.TestFramework/EnvironmentExtensions.cs b/test/Microsoft.ML.TestFramework/EnvironmentExtensions.cs
index 36fccc7980..51f9c7e465 100644
--- a/test/Microsoft.ML.TestFramework/EnvironmentExtensions.cs
+++ b/test/Microsoft.ML.TestFramework/EnvironmentExtensions.cs
@@ -3,9 +3,9 @@
 // See the LICENSE file in the project root for more information.
 
 using Microsoft.ML.Data;
-using Microsoft.ML.Ensemble;
 using Microsoft.ML.EntryPoints;
 using Microsoft.ML.Trainers;
+using Microsoft.ML.Trainers.Ensemble;
 using Microsoft.ML.Trainers.FastTree;
 using Microsoft.ML.Trainers.KMeans;
 using Microsoft.ML.Trainers.PCA;
diff --git a/test/Microsoft.ML.TimeSeries.Tests/TimeSeries.cs b/test/Microsoft.ML.TimeSeries.Tests/TimeSeries.cs
index e79da61465..bfb8a7999c 100644
--- a/test/Microsoft.ML.TimeSeries.Tests/TimeSeries.cs
+++ b/test/Microsoft.ML.TimeSeries.Tests/TimeSeries.cs
@@ -5,7 +5,7 @@
 using System.IO;
 using System.Linq;
 using Microsoft.ML.TestFramework.Attributes;
-using Microsoft.ML.TimeSeriesProcessing;
+using Microsoft.ML.Transforms.TimeSeries;
 using Xunit;
 using Xunit.Abstractions;
 
diff --git a/test/Microsoft.ML.TimeSeries.Tests/TimeSeriesDirectApi.cs b/test/Microsoft.ML.TimeSeries.Tests/TimeSeriesDirectApi.cs
index 9b64a68abd..8b190e0769 100644
--- a/test/Microsoft.ML.TimeSeries.Tests/TimeSeriesDirectApi.cs
+++ b/test/Microsoft.ML.TimeSeries.Tests/TimeSeriesDirectApi.cs
@@ -8,8 +8,7 @@
 using Microsoft.ML.Data;
 using Microsoft.ML.RunTests;
 using Microsoft.ML.TestFramework.Attributes;
-using Microsoft.ML.TimeSeries;
-using Microsoft.ML.TimeSeriesProcessing;
+using Microsoft.ML.Transforms.TimeSeries;
 using Xunit;
 
 namespace Microsoft.ML.Tests
diff --git a/test/Microsoft.ML.TimeSeries.Tests/TimeSeriesEstimatorTests.cs b/test/Microsoft.ML.TimeSeries.Tests/TimeSeriesEstimatorTests.cs
index e65c9da724..fa77255e3c 100644
--- a/test/Microsoft.ML.TimeSeries.Tests/TimeSeriesEstimatorTests.cs
+++ b/test/Microsoft.ML.TimeSeries.Tests/TimeSeriesEstimatorTests.cs
@@ -5,7 +5,7 @@
 using System.Collections.Generic;
 using Microsoft.ML.Data;
 using Microsoft.ML.RunTests;
-using Microsoft.ML.TimeSeriesProcessing;
+using Microsoft.ML.Transforms.TimeSeries;
 using Xunit;
 using Xunit.Abstractions;