diff --git a/Perspex.Application/Application.cs b/Perspex.Application/Application.cs
index 4bd43a5984..173e4f2504 100644
--- a/Perspex.Application/Application.cs
+++ b/Perspex.Application/Application.cs
@@ -9,6 +9,7 @@ namespace Perspex
using System;
using System.Threading;
using Perspex.Controls;
+ using Perspex.Controls.Templates;
using Perspex.Input;
using Perspex.Layout;
using Perspex.Rendering;
diff --git a/Perspex.Controls/Control.cs b/Perspex.Controls/Control.cs
index ab7ccab3e3..3b3e641062 100644
--- a/Perspex.Controls/Control.cs
+++ b/Perspex.Controls/Control.cs
@@ -11,6 +11,7 @@ namespace Perspex.Controls
using System.Reactive.Linq;
using Perspex.Collections;
using Perspex.Controls.Primitives;
+ using Perspex.Controls.Templates;
using Perspex.Input;
using Perspex.Interactivity;
using Perspex.LogicalTree;
diff --git a/Perspex.Controls/ControlTemplate.cs b/Perspex.Controls/ControlTemplate.cs
deleted file mode 100644
index 62852c58bd..0000000000
--- a/Perspex.Controls/ControlTemplate.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-// -----------------------------------------------------------------------
-//
-// Copyright 2014 MIT Licence. See licence.md for more information.
-//
-// -----------------------------------------------------------------------
-
-namespace Perspex.Controls
-{
- using System;
- using Perspex.Styling;
-
- public class ControlTemplate
- {
- private Func build;
-
- public ControlTemplate(Func build)
- {
- Contract.Requires(build != null);
-
- this.build = build;
- }
-
- public static ControlTemplate Create(Func build)
- where TControl : ITemplatedControl
- {
- Contract.Requires(build != null);
-
- return new ControlTemplate(c => build((TControl)c));
- }
-
- public Control Build(ITemplatedControl templatedParent)
- {
- Contract.Requires(templatedParent != null);
-
- var root = this.build(templatedParent);
- return root;
- }
- }
-}
diff --git a/Perspex.Controls/DataTemplate.cs b/Perspex.Controls/DataTemplate.cs
deleted file mode 100644
index 85d2d12a46..0000000000
--- a/Perspex.Controls/DataTemplate.cs
+++ /dev/null
@@ -1,80 +0,0 @@
-// -----------------------------------------------------------------------
-//
-// Copyright 2014 MIT Licence. See licence.md for more information.
-//
-// -----------------------------------------------------------------------
-
-namespace Perspex.Controls
-{
- using System;
- using System.Reflection;
-
- public class DataTemplate : IDataTemplate
- {
- public static readonly DataTemplate Default =
- new DataTemplate(typeof(object), o => (o != null) ? new TextBlock { Text = o.ToString() } : null);
-
- public DataTemplate(Func