diff --git a/microDI/Container.cs b/microDI/Container.cs
index 9ae0a52..1f7ab9e 100644
--- a/microDI/Container.cs
+++ b/microDI/Container.cs
@@ -63,6 +63,16 @@ public IReferencedObject RegisterAs<TInterface, TImplementation>(
                     c => instanceCreatorFunc(c), typeof(TImplementation), lifeCycle));
         }
 
+        public IReferencedObject Register<TClass>(ILifeCyclePolicy lifeCycle)
+        {
+            RuntimeCheck.NotNull(lifeCycle, nameof(lifeCycle));
+
+            var registeringType = typeof(TClass);
+
+            return _registryService.Register(
+                registeringType, new RegisteredObject(null, registeringType, lifeCycle));
+        }
+
         public IReferencedObject Register<TClass>(
             Func<IContainer, TClass> instanceCreatorFunc, ILifeCyclePolicy lifeCycle)
         {
@@ -82,7 +92,7 @@ public object Resolve(Type resolveType)
 
         public TInterface Resolve<TInterface>()
         {
-            return (TInterface)Resolve(typeof(TInterface));
+            return (TInterface) Resolve(typeof(TInterface));
         }
 
         public IReferencedObject GetReferencedType<TClass>()
@@ -90,4 +100,4 @@ public IReferencedObject GetReferencedType<TClass>()
             return new ReferencedObject(_registryService.GetRegisteredObject(typeof(TClass)), _registryService);
         }
     }
-}
+}
\ No newline at end of file
diff --git a/microDI/IContainer.cs b/microDI/IContainer.cs
index bcb65b0..1cc1959 100644
--- a/microDI/IContainer.cs
+++ b/microDI/IContainer.cs
@@ -42,7 +42,8 @@ public interface IContainer
         /// <param name="lifeCycle">Life cycle of registered type.</param>
         /// <see cref="IReferencedObject"/>
         /// <see cref="ILifeCyclePolicy"/>
-        [NotNull] IReferencedObject RegisterAs<TInterface, TImplementation>([NotNull] ILifeCyclePolicy lifeCycle)
+        [NotNull] IReferencedObject RegisterAs<TInterface, TImplementation>(
+			[NotNull] ILifeCyclePolicy lifeCycle)
             where TImplementation : TInterface;
 
         /// <summary>
@@ -59,6 +60,16 @@ [NotNull] IReferencedObject RegisterAs<TInterface, TImplementation>(
             [NotNull] ILifeCyclePolicy lifeCycle)
             where TImplementation : TInterface;
 
+		/// <summary>
+        /// Register class and creator function to be used for instantiation with life
+        /// cycle.
+        /// </summary>
+        /// <typeparam name="TClass">Type of class to be registered</typeparam>
+        /// <param name="lifeCycle">Life cycle of registered type.</param>
+        /// <see cref="IReferencedObject"/>
+        /// <see cref="ILifeCyclePolicy"/>
+        [NotNull] IReferencedObject Register<TClass>([NotNull] ILifeCyclePolicy lifeCycle);
+
         /// <summary>
         /// Register class and creator function to be used for instantiation with life
         /// cycle.