diff --git a/aggregate_root/lib/aggregate_root.rb b/aggregate_root/lib/aggregate_root.rb
index <HASH>..<HASH> 100644
--- a/aggregate_root/lib/aggregate_root.rb
+++ b/aggregate_root/lib/aggregate_root.rb
@@ -30,18 +30,9 @@ module AggregateRoot
     end
   end
 
-  module ConstructorRuby2
-    def new(*)
-      super.tap do |instance|
-        instance.instance_variable_set(:@version, -1)
-        instance.instance_variable_set(:@unpublished_events, [])
-      end
-    end
-  end
-
   module Constructor
-    def new(*, **)
-      super.tap do |instance|
+    def new(*args, **kwargs, &block)
+      (kwargs.empty? ? super(*args, &block) : super(*args, **kwargs, &block)).tap do |instance|
         instance.instance_variable_set(:@version, -1)
         instance.instance_variable_set(:@unpublished_events, [])
       end
@@ -82,7 +73,7 @@ module AggregateRoot
   def self.with_strategy(strategy)
     Module.new do
       def self.included(host_class)
-        host_class.extend  RUBY_VERSION < "3.0" ? ConstructorRuby2 : Constructor
+        host_class.extend  Constructor
         host_class.include AggregateMethods
       end
Make it independent from RUBY_VERSION