diff --git a/LightweightIocContainer/Interfaces/Registrations/ITypedRegistrationBase.cs b/LightweightIocContainer/Interfaces/Registrations/ITypedRegistrationBase.cs
new file mode 100644
index 0000000..27728d9
--- /dev/null
+++ b/LightweightIocContainer/Interfaces/Registrations/ITypedRegistrationBase.cs
@@ -0,0 +1,19 @@
+// Author: Simon Gockner
+// Created: 2019-12-08
+// Copyright(c) 2019 SimonG. All Rights Reserved.
+
+using System;
+
+namespace LightweightIocContainer.Interfaces.Registrations
+{
+ ///
+ /// A that implements a
+ ///
+ public interface ITypedRegistrationBase : IRegistrationBase
+ {
+ ///
+ /// The that implements the that is registered with this
+ ///
+ Type ImplementationType { get; }
+ }
+}
\ No newline at end of file
diff --git a/LightweightIocContainer/Registrations/TypedRegistrationBase.cs b/LightweightIocContainer/Registrations/TypedRegistrationBase.cs
new file mode 100644
index 0000000..f9efe26
--- /dev/null
+++ b/LightweightIocContainer/Registrations/TypedRegistrationBase.cs
@@ -0,0 +1,32 @@
+// Author: Simon Gockner
+// Created: 2019-12-14
+// Copyright(c) 2019 SimonG. All Rights Reserved.
+
+using System;
+using LightweightIocContainer.Interfaces.Registrations;
+
+namespace LightweightIocContainer.Registrations
+{
+ ///
+ /// A that implements a
+ ///
+ public abstract class TypedRegistrationBase : RegistrationBase, ITypedRegistrationBase
+ {
+ ///
+ /// A that implements a
+ ///
+ /// The of the interface
+ /// The of the implementation type
+ /// The of this
+ protected TypedRegistrationBase(Type interfaceType, Type implementationType, Lifestyle lifestyle)
+ : base(interfaceType, lifestyle)
+ {
+ ImplementationType = implementationType;
+ }
+
+ ///
+ /// The that implements the that is registered with this
+ ///
+ public Type ImplementationType { get; }
+ }
+}
\ No newline at end of file