diff --git a/rails_event_store/lib/rails_event_store/aggregate_root.rb b/rails_event_store/lib/rails_event_store/aggregate_root.rb
index <HASH>..<HASH> 100644
--- a/rails_event_store/lib/rails_event_store/aggregate_root.rb
+++ b/rails_event_store/lib/rails_event_store/aggregate_root.rb
@@ -1,4 +1,7 @@
 module RailsEventStore
   module AggregateRoot
+    def generate_uuid
+      SecureRandom.uuid
+    end
   end
 end
diff --git a/rails_event_store/spec/aggregate_root_spec.rb b/rails_event_store/spec/aggregate_root_spec.rb
index <HASH>..<HASH> 100644
--- a/rails_event_store/spec/aggregate_root_spec.rb
+++ b/rails_event_store/spec/aggregate_root_spec.rb
@@ -2,9 +2,21 @@ require 'spec_helper.rb'
 
 class Order
   include RailsEventStore::AggregateRoot
+
+  def initialize(id = generate_uuid)
+    @id = id
+  end
+
+  attr_accessor :id
 end
 
 module RailsEventStore
   describe Client do
+    it "should be able to generate UUID if user won't provide it's own" do
+      order1 = Order.new
+      order2 = Order.new
+      expect(order1.id).to_not eq(order2.id)
+      expect(order1.id).to be_a(String)
+    end
   end
 end
Added uuid generator to AggregateRoot