diff --git a/lib/aethyr/core/actions/action.rb b/lib/aethyr/core/actions/action.rb
index 474219f2c35db82429d18742956c2e3e4ce3b746..df067fab4b3cde2c11cdb0693aab2afbaad815b8 100644
--- a/lib/aethyr/core/actions/action.rb
+++ b/lib/aethyr/core/actions/action.rb
@@ -1,14 +1,16 @@
+require 'aethyr/core/event'
+
 module Aethyr
   module Extend
-    module Action
-      def action; end
-    end
+    class Action < Event
+      def initialize(**data)
+        super(**data)
 
-    class Event
-      include Aethyr::Extend::Action
+        self.agent = data[:agent]
+        self.target = data[:target]
+      end
 
-      def initialize(**data)
-        @data = data.freeze
+      def action
       end
     end
   end
diff --git a/lib/aethyr/core/actions/commands/command_action.rb b/lib/aethyr/core/actions/commands/command_action.rb
index 671e02268458a629dfc70f67492a980231ecca3d..344bcb95b40d15a7d65381427cb72c385e3c23a0 100644
--- a/lib/aethyr/core/actions/commands/command_action.rb
+++ b/lib/aethyr/core/actions/commands/command_action.rb
@@ -2,19 +2,21 @@ require "aethyr/core/actions/action"
 
 module Aethyr
   module Extend
-    class CommandAction < Event
+    class CommandAction < Action
       def initialize(actor, **data)
-        super(**data)
+        new_data = data.dup
+        new_data[:actor] = actor
+        super(**new_data)
         @player = actor
       end
 
       #Looks in player's inventory and room for name.
       #Then checks at global level for GOID.
       def find_object(name, event)
-        if event[:player].nil?
+        if event[:actor].nil?
           return $manager.find(name, nil) || $manager.get_object(name)
         else
-          return $manager.find(name, event[:player]) || $manager.find(name, event[:player].container) || $manager.get_object(name)
+          return $manager.find(name, event[:actor]) || $manager.find(name, event[:actor].container) || $manager.get_object(name)
         end
       end
     end