diff --git a/lib/aethyr/core/actions/commands/acarea.rb b/lib/aethyr/core/actions/commands/acarea.rb
index a5361597b40091d710fba1b3f931fa4cda4fd443..ce302301394dab89bdfab621c7ef02e561395156 100644
--- a/lib/aethyr/core/actions/commands/acarea.rb
+++ b/lib/aethyr/core/actions/commands/acarea.rb
@@ -10,11 +10,9 @@ module Aethyr
           end
 
           def action
-            event = @data
-
-            room = $manager.get_object(@player.container)
-            player = @player
-            area = $manager.create_object(Area, nil, nil, nil, {:@name => event[:name]})
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            area = $manager.create_object(Area, nil, nil, nil, {:@name => self[:name]})
             player.output "Created: #{area}"
           end
 
diff --git a/lib/aethyr/core/actions/commands/acdoor.rb b/lib/aethyr/core/actions/commands/acdoor.rb
index 70d7d3ca6e624446ee3dfcaa3c826d9088ad14b7..3187199a7c65de2d1d1a9cf1d8e3ab3d6730ffd4 100644
--- a/lib/aethyr/core/actions/commands/acdoor.rb
+++ b/lib/aethyr/core/actions/commands/acdoor.rb
@@ -10,15 +10,15 @@ module Aethyr
           end
 
           def action
-            event = @data
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             exit_room = nil
-            if event[:exit_room].nil?
-              out = find_object event[:direction], event
+            if self[:exit_room].nil?
+              out = find_object self[:direction], event
               if out and out.is_a? Exit
                 exit_room = $manager.find out.exit_room
-                other_side = $manager.find opposite_dir(event[:direction]), out.exit_room
+                other_side = $manager.find opposite_dir(self[:direction]), out.exit_room
 
                 if other_side
                   $manager.delete_object other_side
@@ -31,24 +31,24 @@ module Aethyr
                 player.output "Removed exit (#{out})."
               end
             else
-              exit_room = $manager.get_object event[:exit_room]
+              exit_room = $manager.get_object self[:exit_room]
             end
 
             if exit_room.nil?
-              player.output "Cannot find #{event[:exit_room]} to connect to."
+              player.output "Cannot find #{self[:exit_room]} to connect to."
               return
             end
 
-            door_here = $manager.create_object Door, room, nil, exit_room.goid, :@alt_names => [event[:direction]], :@name => "a door to the #{event[:direction]}"
-            door_there = $manager.create_object Door, exit_room, nil, room.goid, :@alt_names => [opposite_dir(event[:direction])], :@name => "a door to the #{opposite_dir event[:direction]}"
+            door_here = $manager.create_object Door, room, nil, exit_room.goid, :@alt_names => [self[:direction]], :@name => "a door to the #{self[:direction]}"
+            door_there = $manager.create_object Door, exit_room, nil, room.goid, :@alt_names => [opposite_dir(self[:direction])], :@name => "a door to the #{opposite_dir self[:direction]}"
             door_here.connect_to door_there
 
             player.output "Created: #{door_here}"
             player.output "Created: #{door_there}"
 
             if room
-              event[:to_player] = "Frowning in concentration, you make vague motions with your hands. There is a small flash of light as #{door_here.name} to #{exit_room.name} appears."
-              event[:to_other] = "Frowning in concentration, #{player.name} makes vague motions with #{player.pronoun(:possessive)} hands. There is a small flash of light as #{door_here.name} to #{exit_room.name} appears."
+              self[:to_player] = "Frowning in concentration, you make vague motions with your hands. There is a small flash of light as #{door_here.name} to #{exit_room.name} appears."
+              self[:to_other] = "Frowning in concentration, #{player.name} makes vague motions with #{player.pronoun(:possessive)} hands. There is a small flash of light as #{door_here.name} to #{exit_room.name} appears."
               room.out_event event
             end
           end
diff --git a/lib/aethyr/core/actions/commands/acomment.rb b/lib/aethyr/core/actions/commands/acomment.rb
index 24ef59f82ace5c9473d4e4438b9a77ae8ecdee98..fe6329a949f4d88c247f348475aa2ecf4bb16dd0 100644
--- a/lib/aethyr/core/actions/commands/acomment.rb
+++ b/lib/aethyr/core/actions/commands/acomment.rb
@@ -10,18 +10,18 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
-            object = find_object(event[:target], event)
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            object = find_object(self[:target], event)
             if object.nil?
-              player.output "Cannot find:#{event[:target]}"
+              player.output "Cannot find:#{self[:target]}"
               return
             end
 
-            object.comment = event[:comment]
-            player.output "Added comment: '#{event[:comment]}'\nto#{object}"
+            object.comment = self[:comment]
+            player.output "Added comment: '#{self[:comment]}'\nto#{object}"
           end
 
         end
diff --git a/lib/aethyr/core/actions/commands/aconfig.rb b/lib/aethyr/core/actions/commands/aconfig.rb
index 38a24811f095d3c3c8d4816ccbf00fbdd0fe284b..fa441e3349a731f19721a4bbebfa36e93f3eade9 100644
--- a/lib/aethyr/core/actions/commands/aconfig.rb
+++ b/lib/aethyr/core/actions/commands/aconfig.rb
@@ -10,17 +10,17 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
 
-            if event[:setting].nil?
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+
+            if self[:setting].nil?
               player.output "Current configuration:\n#{ServerConfig}"
               return
             end
 
-            setting = event[:setting].downcase.to_sym
+            setting = self[:setting].downcase.to_sym
 
             if setting == :reload
               ServerConfig.reload
@@ -31,7 +31,7 @@ module Aethyr
               return
             end
 
-            value = event[:value]
+            value = self[:value]
             if value =~ /^\d+$/
               value = value.to_i
             end
diff --git a/lib/aethyr/core/actions/commands/acportal.rb b/lib/aethyr/core/actions/commands/acportal.rb
index 61f003a390fd613507e72885b878040a4d939e58..351dff72ff958afa6f1da59878fe2f54117b795d 100644
--- a/lib/aethyr/core/actions/commands/acportal.rb
+++ b/lib/aethyr/core/actions/commands/acportal.rb
@@ -10,13 +10,13 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             object = Admin.acreate(event, player, room)
-            if event[:portal_action] and event[:portal_action].downcase != "enter"
-              object.info.portal_action = event[:portal_action].downcase.to_sym
+            if self[:portal_action] and self[:portal_action].downcase != "enter"
+              object.info.portal_action = self[:portal_action].downcase.to_sym
             end
           end
 
diff --git a/lib/aethyr/core/actions/commands/acreate.rb b/lib/aethyr/core/actions/commands/acreate.rb
index d8e1d07350a6047e4ae7410c3ba11172123b68ac..4a9def705b67af6db54c97f42776982f809fb207 100644
--- a/lib/aethyr/core/actions/commands/acreate.rb
+++ b/lib/aethyr/core/actions/commands/acreate.rb
@@ -10,11 +10,11 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
-            class_name = event[:object]
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            class_name = self[:object]
 
             class_name[0,1] = class_name[0,1].capitalize
 
@@ -31,16 +31,16 @@ module Aethyr
             end
 
             vars = {}
-            vars[:@name] = event[:name] if event[:name]
-            vars[:@alt_names] = event[:alt_names] if event[:alt_names]
-            vars[:@generic] = event[:generic] if event[:generic]
-            args = event[:args]
+            vars[:@name] = self[:name] if self[:name]
+            vars[:@alt_names] = self[:alt_names] if self[:alt_names]
+            vars[:@generic] = self[:generic] if self[:generic]
+            args = self[:args]
 
             object = $manager.create_object(klass, room, nil, args, vars)
 
             if room
-              event[:to_player] = "Frowning in concentration, you make vague motions with your hands. There is a small flash of light as #{object.name} appears."
-              event[:to_other] = "Frowning in concentration, #{player.name} makes vague motions with #{player.pronoun(:possessive)} hands. There is a small flash of light as #{object.name} appears."
+              self[:to_player] = "Frowning in concentration, you make vague motions with your hands. There is a small flash of light as #{object.name} appears."
+              self[:to_other] = "Frowning in concentration, #{player.name} makes vague motions with #{player.pronoun(:possessive)} hands. There is a small flash of light as #{object.name} appears."
               room.out_event event
             end
 
diff --git a/lib/aethyr/core/actions/commands/acroom.rb b/lib/aethyr/core/actions/commands/acroom.rb
index f68efd91d572ec752aeb0826d050839c0d5b8b30..01d14f0deb10c7b77bcc89383e231ff8a1c25143 100644
--- a/lib/aethyr/core/actions/commands/acroom.rb
+++ b/lib/aethyr/core/actions/commands/acroom.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             area = nil
             if room.container
               area = $manager.get_object(room.container)
@@ -22,7 +22,7 @@ module Aethyr
             unless area.nil? or area.map_type.eql? :none
               current_pos = area.position(room)
               new_pos = current_pos.dup
-              case event[:out_dir].downcase.strip
+              case self[:out_dir].downcase.strip
                 when "north"
                   new_pos[1] += 1
                 when "south"
@@ -32,16 +32,16 @@ module Aethyr
                 when "east"
                   new_pos[0] += 1
                 when "northeast"
-                  player.output "Can not create a #{event[:out_dir]} exit in a mappable area at this time"
+                  player.output "Can not create a #{self[:out_dir]} exit in a mappable area at this time"
                   return
                 when "northwest"
-                  player.output "Can not create a #{event[:out_dir]} exit in a mappable area at this time"
+                  player.output "Can not create a #{self[:out_dir]} exit in a mappable area at this time"
                   return
                 when "southeast"
-                  player.output "Can not create a #{event[:out_dir]} exit in a mappable area at this time"
+                  player.output "Can not create a #{self[:out_dir]} exit in a mappable area at this time"
                   return
                 when "southwest"
-                  player.output "Can not create a #{event[:out_dir]} exit in a mappable area at this time"
+                  player.output "Can not create a #{self[:out_dir]} exit in a mappable area at this time"
                   return
                 else
                   new_pos = nil
@@ -54,9 +54,9 @@ module Aethyr
               return
             end
 
-            new_room = $manager.create_object(Room, area, new_pos, nil, :@name => event[:name])
-            out_exit = $manager.create_object(Exit, room, nil, new_room.goid, :@alt_names => [event[:out_dir]])
-            in_exit = $manager.create_object(Exit, new_room, nil, room.goid, :@alt_names => [event[:in_dir]])
+            new_room = $manager.create_object(Room, area, new_pos, nil, :@name => self[:name])
+            out_exit = $manager.create_object(Exit, room, nil, new_room.goid, :@alt_names => [self[:out_dir]])
+            in_exit = $manager.create_object(Exit, new_room, nil, room.goid, :@alt_names => [self[:in_dir]])
 
             player.output "Created: #{new_room}#{new_pos.nil? ? '' : ' @ ' + new_pos_text}"
             player.output "Created: #{out_exit}"
@@ -95,7 +95,7 @@ module Aethyr
             end
 
             if room
-              room.output "There is a small flash of light as a new room appears to the #{event[:out_dir]}."
+              room.output "There is a small flash of light as a new room appears to the #{self[:out_dir]}."
             end
 
           end
diff --git a/lib/aethyr/core/actions/commands/adelete.rb b/lib/aethyr/core/actions/commands/adelete.rb
index e94927d8ecb115f155b1ec92fbdf5834ac01e719..91010b612f7a7786478bad01a10067b653795085 100644
--- a/lib/aethyr/core/actions/commands/adelete.rb
+++ b/lib/aethyr/core/actions/commands/adelete.rb
@@ -10,13 +10,13 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
-            if event[:object] and event[:object].split.first.downcase == "all"
-              log event[:object].split
-              klass = event[:object].split[1]
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            if self[:object] and self[:object].split.first.downcase == "all"
+              log self[:object].split
+              klass = self[:object].split[1]
               klass.capitalize! unless klass[0,1] == klass[0,1].upcase
               begin
                 klass = Module.const_get klass.to_sym
@@ -37,10 +37,10 @@ module Aethyr
               return
             end
 
-            object = find_object(event[:object], event)
+            object = find_object(self[:object], event)
 
             if object.nil?
-              player.output "Cannot find #{event[:object]} to delete."
+              player.output "Cannot find #{self[:object]} to delete."
               return
             elsif object.is_a? Player
               player.output "Use DELETEPLAYER to delete players."
@@ -52,8 +52,8 @@ module Aethyr
             $manager.delete_object(object)
 
             if room and room.goid == object.container
-              event[:to_player] = "You casually wave your hand and #{object.name} disappears."
-              event[:to_other] = "With a casual wave of #{player.pronoun(:possessive)} hand, #{player.name} makes #{object.name} disappear."
+              self[:to_player] = "You casually wave your hand and #{object.name} disappears."
+              self[:to_other] = "With a casual wave of #{player.pronoun(:possessive)} hand, #{player.name} makes #{object.name} disappear."
               room.out_event event
             else
               player.output "You casually wave your hand and #{object.name} disappears."
diff --git a/lib/aethyr/core/actions/commands/adesc.rb b/lib/aethyr/core/actions/commands/adesc.rb
index f57b482c10af94a345dec888ba223c4dad9b72af..34eb7cf7da9e79fb441096cfb983575ad2eee79c 100644
--- a/lib/aethyr/core/actions/commands/adesc.rb
+++ b/lib/aethyr/core/actions/commands/adesc.rb
@@ -10,32 +10,32 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             object = nil
-            if event[:object].downcase == "here"
+            if self[:object].downcase == "here"
               object = room
             else
-              object = find_object(event[:object], event)
+              object = find_object(self[:object], event)
             end
 
             if object.nil?
-              player.output "Cannot find #{event[:object]}."
+              player.output "Cannot find #{self[:object]}."
               return
             end
 
-            if event[:inroom]
-              if event[:desc].nil? or event[:desc].downcase == "false"
+            if self[:inroom]
+              if self[:desc].nil? or self[:desc].downcase == "false"
                 object.show_in_look = false
                 player.output "#{object.name} will not be shown in the room description."
               else
-                object.show_in_look= event[:desc]
+                object.show_in_look= self[:desc]
                 player.output "The room will show #{object.show_in_look}"
               end
             else
-              object.instance_variable_set(:@short_desc, event[:desc])
+              object.instance_variable_set(:@short_desc, self[:desc])
               player.output "#{object.name} now looks like:\n#{object.short_desc}"
             end
           end
diff --git a/lib/aethyr/core/actions/commands/aforce.rb b/lib/aethyr/core/actions/commands/aforce.rb
index 5ce4c21a5f7754f1f2d00790a359af1544bedc21..8dc37e95c78588cc8481ed5d565eb2e5dc0c27e6 100644
--- a/lib/aethyr/core/actions/commands/aforce.rb
+++ b/lib/aethyr/core/actions/commands/aforce.rb
@@ -10,16 +10,16 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
-            object = find_object(event[:target], event)
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            object = find_object(self[:target], event)
             if object.nil?
               player.output "Force who?"
               return
             elsif object.is_a? Player
-              object.handle_input(event[:command])
+              object.handle_input(self[:command])
             else
               player.output "You can only force other players to execute a command."
             end
diff --git a/lib/aethyr/core/actions/commands/ahelp.rb b/lib/aethyr/core/actions/commands/ahelp.rb
index d7e9e6bfe34c1cdf96da507dd3467c10942227bb..43020bb17b28acabd8169df5c3f59e8408db3392 100644
--- a/lib/aethyr/core/actions/commands/ahelp.rb
+++ b/lib/aethyr/core/actions/commands/ahelp.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             Generic.help(event, player, room)
           end
 
diff --git a/lib/aethyr/core/actions/commands/ahide.rb b/lib/aethyr/core/actions/commands/ahide.rb
index 7151ad01b2b3a73884ed86f2aeaa83cd68ac7301..22cddcff98f8aa1390b061e490d3fda01a462300 100644
--- a/lib/aethyr/core/actions/commands/ahide.rb
+++ b/lib/aethyr/core/actions/commands/ahide.rb
@@ -10,18 +10,18 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
-            object = find_object(event[:object], event)
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            object = find_object(self[:object], event)
 
             if object.nil?
-              player.output "Cannot find #{event[:object]}."
+              player.output "Cannot find #{self[:object]}."
               return
             end
 
-            if event[:hide]
+            if self[:hide]
               object.show_in_look = ""
               player.output "#{object.name} is now hidden."
             elsif object.show_in_look == ""
diff --git a/lib/aethyr/core/actions/commands/ainfo.rb b/lib/aethyr/core/actions/commands/ainfo.rb
index a7c7f97d835287ff1004ec8089ce5103748df3f5..62af0bbb11b78abe38885fbbec7772b476f1d19d 100644
--- a/lib/aethyr/core/actions/commands/ainfo.rb
+++ b/lib/aethyr/core/actions/commands/ainfo.rb
@@ -10,17 +10,17 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
-            if event[:object].downcase == "here"
-              event[:object] = player.container
-            elsif event[:object].downcase == "me"
-              event[:object] = player
-            elsif event[:object] and event[:object].split.first.downcase == "all"
-              log event[:object].split
-              klass = event[:object].split[1]
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            if self[:object].downcase == "here"
+              self[:object] = player.container
+            elsif self[:object].downcase == "me"
+              self[:object] = player
+            elsif self[:object] and self[:object].split.first.downcase == "all"
+              log self[:object].split
+              klass = self[:object].split[1]
               klass.capitalize! unless klass[0,1] == klass[0,1].upcase
               begin
                 klass = Module.const_get klass.to_sym
@@ -41,16 +41,16 @@ module Aethyr
               return
             end
 
-            object = find_object(event[:object], event)
+            object = find_object(self[:object], event)
 
             if object.nil?
-              player.output "What object? #{event[:object]}"
+              player.output "What object? #{self[:object]}"
               return
             end
 
-            case event[:command]
+            case self[:command]
             when "set"
-              value = event[:value] #for ease
+              value = self[:value] #for ease
               if value.split.length == 1
                 if value == "true"
                   value = true
@@ -66,11 +66,11 @@ module Aethyr
                   value = ""
                 end
               end
-              object.info.set(event[:attrib], value)
-              player.output "Set #{event[:attrib]} to #{object.info.get(event[:attrib])}"
+              object.info.set(self[:attrib], value)
+              player.output "Set #{self[:attrib]} to #{object.info.get(self[:attrib])}"
             when "delete"
-              object.info.delete(event[:attrib])
-              player.output "Deleted #{event[:attrib]} from #{object}"
+              object.info.delete(self[:attrib])
+              player.output "Deleted #{self[:attrib]} from #{object}"
             when "show"
               player.output object.info.inspect
             when "clear"
diff --git a/lib/aethyr/core/actions/commands/alearn.rb b/lib/aethyr/core/actions/commands/alearn.rb
index 3ec75e828a83cc55aa24f5cd6f0cb23373a33136..75d7a8c515123109e49d8398320a4481ab0f7a15 100644
--- a/lib/aethyr/core/actions/commands/alearn.rb
+++ b/lib/aethyr/core/actions/commands/alearn.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
           end
 
         end
diff --git a/lib/aethyr/core/actions/commands/alist.rb b/lib/aethyr/core/actions/commands/alist.rb
index 835b90d6b75c26774764a89829ddbd1e525c0cde..6f2f564b1ffbf4b632ef86575ec80184d618aaf8 100644
--- a/lib/aethyr/core/actions/commands/alist.rb
+++ b/lib/aethyr/core/actions/commands/alist.rb
@@ -10,15 +10,15 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             objects = nil
-            if event[:match].nil?
+            if self[:match].nil?
               objects = $manager.find_all("class", :GameObject)
             else
-              objects = $manager.find_all(event[:match], event[:attrib])
+              objects = $manager.find_all(self[:match], self[:attrib])
             end
 
             if objects.empty?
diff --git a/lib/aethyr/core/actions/commands/all.rb b/lib/aethyr/core/actions/commands/all.rb
index 7c5d101dc41239a690c8c552c294d5a94db8269b..43231d7adf924153052d5ccc9e548edaca326d27 100644
--- a/lib/aethyr/core/actions/commands/all.rb
+++ b/lib/aethyr/core/actions/commands/all.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             board = find_board(event, room)
 
             if board.nil?
diff --git a/lib/aethyr/core/actions/commands/alog.rb b/lib/aethyr/core/actions/commands/alog.rb
index 9865553434981a85750f9e744cd796a995104a04..cb701725547a852d16691500ae3bd615c7c0b81f 100644
--- a/lib/aethyr/core/actions/commands/alog.rb
+++ b/lib/aethyr/core/actions/commands/alog.rb
@@ -10,37 +10,37 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
-            if event[:command].nil?
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            if self[:command].nil?
               player.output "What do you want to do with the log?"
               return
             else
-              command = event[:command].downcase
+              command = self[:command].downcase
             end
 
             case command
             when /^players?$/
-              if event[:value]
-                lines = event[:value].to_i
+              if self[:value]
+                lines = self[:value].to_i
               else
                 lines = 10
               end
 
               player.output tail('logs/player.log', lines)
             when 'server'
-              if event[:value]
-                lines = event[:value].to_i
+              if self[:value]
+                lines = self[:value].to_i
               else
                 lines = 10
               end
 
               player.output tail('logs/server.log', lines)
             when 'system'
-              if event[:value]
-                lines = event[:value].to_i
+              if self[:value]
+                lines = self[:value].to_i
               else
                 lines = 10
               end
diff --git a/lib/aethyr/core/actions/commands/alook.rb b/lib/aethyr/core/actions/commands/alook.rb
index 921e0eef3e8a1d588b2730d593e7840ea8ae9e8d..ab07834e913dd58cd1cf1d3cbd04b7c9e7c578a5 100644
--- a/lib/aethyr/core/actions/commands/alook.rb
+++ b/lib/aethyr/core/actions/commands/alook.rb
@@ -10,20 +10,20 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
-            if event[:at].nil?
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            if self[:at].nil?
               object = room
-            elsif event[:at].downcase == "here"
+            elsif self[:at].downcase == "here"
               object = $manager.find player.container
             else
-              object = find_object(event[:at], event)
+              object = find_object(self[:at], event)
             end
 
             if object.nil?
-              player.output "Cannot find #{event[:at]} to inspect."
+              player.output "Cannot find #{self[:at]} to inspect."
               return
             end
 
diff --git a/lib/aethyr/core/actions/commands/aput.rb b/lib/aethyr/core/actions/commands/aput.rb
index a08e1032a470c545e9605a766fec79a782e0a793..9e1894f47707087926609e2b89756740a5d798e1 100644
--- a/lib/aethyr/core/actions/commands/aput.rb
+++ b/lib/aethyr/core/actions/commands/aput.rb
@@ -10,36 +10,36 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
-            if event[:object].is_a? GameObject
-              object = event[:object]
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            if self[:object].is_a? GameObject
+              object = self[:object]
             else
-              event[:object] = player.container if event[:object].downcase == "here"
-              object = find_object(event[:object], event)
+              self[:object] = player.container if self[:object].downcase == "here"
+              object = find_object(self[:object], event)
             end
 
-            container = find_object(event[:in], event)
+            container = find_object(self[:in], event)
 
             if object.nil?
-              player.output "Cannot find #{event[:object]} to move."
+              player.output "Cannot find #{self[:object]} to move."
               return
-            elsif event[:in] == "!world"
+            elsif self[:in] == "!world"
               container = $manager.find object.container
               container.inventory.remove(object) unless container.nil?
               object.container = nil
               player.output "Removed #{object} from any containers."
               return
-            elsif event[:in].downcase == "here"
+            elsif self[:in].downcase == "here"
               container = $manager.find player.container
               if container.nil?
-                player.output "Cannot find #{event[:in]} "
+                player.output "Cannot find #{self[:in]} "
                 return
               end
             elsif container.nil?
-              player.output "Cannot find #{event[:in]} "
+              player.output "Cannot find #{self[:in]} "
               return
             end
 
@@ -48,8 +48,8 @@ module Aethyr
               current_container.inventory.remove(object) if current_container
             end
 
-            unless event[:at] == nil
-              position = event[:at].split('x').map{ |e| e.to_i}
+            unless self[:at] == nil
+              position = self[:at].split('x').map{ |e| e.to_i}
             end
 
             if container.is_a? Inventory
@@ -61,7 +61,7 @@ module Aethyr
               object.container = container.goid
             end
 
-            player.output "Moved #{object} into #{container}#{event[:at] == nil ? '' : ' at ' + event[:at]}"
+            player.output "Moved #{object} into #{container}#{self[:at] == nil ? '' : ' at ' + self[:at]}"
           end
 
         end
diff --git a/lib/aethyr/core/actions/commands/areaction.rb b/lib/aethyr/core/actions/commands/areaction.rb
index b9b95251501f831c336b2fc10e97c4a20005edf4..bd7b6351f3f52b173d9adc9574431a1fe9466060 100644
--- a/lib/aethyr/core/actions/commands/areaction.rb
+++ b/lib/aethyr/core/actions/commands/areaction.rb
@@ -10,12 +10,12 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
 
-            if event[:command] == "reload" and event[:object] and event[:object].downcase == "all"
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+
+            if self[:command] == "reload" and self[:object] and self[:object].downcase == "all"
               objects = $manager.find_all("class", Reacts)
 
               objects.each do |o|
@@ -23,8 +23,8 @@ module Aethyr
               end
 
               player.output "Updated reactions for #{objects.length} objects."
-            elsif event[:object] and event[:object].split.first.downcase == "all"
-              klass = event[:object].split[1]
+            elsif self[:object] and self[:object].split.first.downcase == "all"
+              klass = self[:object].split[1]
               klass.capitalize! unless klass[0,1] == klass[0,1].upcase
               begin
                 klass = Module.const_get klass.to_sym
@@ -43,40 +43,40 @@ module Aethyr
                 Admin.areaction(e, player, room)
               end
             else
-              if event[:object] == "here"
+              if self[:object] == "here"
                 object = room
               else
-                object = find_object(event[:object], event)
+                object = find_object(self[:object], event)
               end
 
               if object.nil?
-                player.output "Cannot find:#{event[:object]}"
+                player.output "Cannot find:#{self[:object]}"
                 return
-              elsif not object.is_a? Reacts and (event[:command] == "load" or event[:command] == "reload")
+              elsif not object.is_a? Reacts and (self[:command] == "load" or self[:command] == "reload")
                 player.output "Object cannot react, adding react ability."
                 object.extend(Reacts)
               end
 
-              case event[:command]
+              case self[:command]
               when "add"
-                if object.actions.add? event[:action_name]
-                  player.output "Added #{event[:action_name]}"
+                if object.actions.add? self[:action_name]
+                  player.output "Added #{self[:action_name]}"
                 else
                   player.output "Already had a reaction by that name."
                 end
               when "delete"
-                if object.actions.delete? event[:action_name]
-                  player.output "Removed #{event[:action_name]}"
+                if object.actions.delete? self[:action_name]
+                  player.output "Removed #{self[:action_name]}"
                 else
                   player.output "That verb was not associated with this object."
                 end
               when "load"
-                unless File.exist? "objects/reactions/#{event[:file]}.rx"
-                  player.output "No such reaction file - #{event[:file]}"
+                unless File.exist? "objects/reactions/#{self[:file]}.rx"
+                  player.output "No such reaction file - #{self[:file]}"
                   return
                 end
 
-                object.load_reactions event[:file]
+                object.load_reactions self[:file]
                 player.output "Probably loaded reactions."
               when "reload"
                 object.reload_reactions if object.can? :reload_reactions
diff --git a/lib/aethyr/core/actions/commands/areas.rb b/lib/aethyr/core/actions/commands/areas.rb
index 42c0778e256f6d5fff2fcf2ee40c4f2092f1c09f..8f971d3fc8c70c8e42f24cf4cef8bd48c8adcbc2 100644
--- a/lib/aethyr/core/actions/commands/areas.rb
+++ b/lib/aethyr/core/actions/commands/areas.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             areas = $manager.find_all('class', Area)
 
             if areas.empty?
diff --git a/lib/aethyr/core/actions/commands/areload.rb b/lib/aethyr/core/actions/commands/areload.rb
index f23248fcb98c132ff8cbf96e6a677ae704bfe6e4..d20c1d9dd12e42b7790897024bb421bec2d77921 100644
--- a/lib/aethyr/core/actions/commands/areload.rb
+++ b/lib/aethyr/core/actions/commands/areload.rb
@@ -10,15 +10,15 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             begin
-              result = load "#{event[:object]}.rb"
-              player.output "Reloaded #{event[:object]}: #{result}"
+              result = load "#{self[:object]}.rb"
+              player.output "Reloaded #{self[:object]}: #{result}"
             rescue LoadError
-              player.output "Unable to load #{event[:object]}"
+              player.output "Unable to load #{self[:object]}"
             end
           end
 
diff --git a/lib/aethyr/core/actions/commands/asave.rb b/lib/aethyr/core/actions/commands/asave.rb
index 29c08f752d164784303a4e96512b381738a768b5..8ec09766d83f32b51bcfe3f31821bfdab8893287 100644
--- a/lib/aethyr/core/actions/commands/asave.rb
+++ b/lib/aethyr/core/actions/commands/asave.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             log "#{player.name} initiated manual save."
             $manager.save_all
             player.output "Save complete. Check log for details."
diff --git a/lib/aethyr/core/actions/commands/aset.rb b/lib/aethyr/core/actions/commands/aset.rb
index ffb488ed5cd74040cb794e855411acaa566d35f4..b9c765217a4c2334b2e8b73edc39a1266693433b 100644
--- a/lib/aethyr/core/actions/commands/aset.rb
+++ b/lib/aethyr/core/actions/commands/aset.rb
@@ -10,15 +10,15 @@ module Aethyr
           end
 
           def action
-            event = @data
-
-            room = $manager.get_object(@player.container)
-            player = @player
-            if event[:object].downcase == "here"
-              event[:object] = player.container
-            elsif event[:object] and event[:object].split.first.downcase == "all"
-              log event[:object].split
-              klass = event[:object].split[1]
+
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            if self[:object].downcase == "here"
+              self[:object] = player.container
+            elsif self[:object] and self[:object].split.first.downcase == "all"
+              log self[:object].split
+              klass = self[:object].split[1]
               klass.capitalize! unless klass[0,1] == klass[0,1].upcase
               begin
                 klass = Module.const_get klass.to_sym
@@ -39,17 +39,17 @@ module Aethyr
               return
             end
 
-            object = find_object(event[:object], event)
+            object = find_object(self[:object], event)
 
             if object.nil?
-              player.output "Cannot find #{event[:object]} to edit."
+              player.output "Cannot find #{self[:object]} to edit."
               return
             end
 
-            attrib = event[:attribute]
+            attrib = self[:attribute]
 
             if attrib[0,1] != "@"
-              value = event[:value]
+              value = self[:value]
               if value.downcase == "!nothing" or value.downcase == "nil"
                 value = nil
               end
@@ -101,16 +101,16 @@ module Aethyr
               end
             end
 
-            if not object.instance_variables.include? attrib and not object.instance_variables.include? attrib.to_sym and not event[:force]
+            if not object.instance_variables.include? attrib and not object.instance_variables.include? attrib.to_sym and not self[:force]
               player.output "#{object}:No such setting/variable/attribute: #{attrib}"
               return
             else
               current_value = object.instance_variable_get(attrib)
               if current_value.is_a? Array
-                object.instance_variable_set(attrib, event[:value].split(/s*"(.*?)"\s*|\s+/))
-                player.output "Set #{object} attribute #{attrib} to #{event[:value].inspect}"
+                object.instance_variable_set(attrib, self[:value].split(/s*"(.*?)"\s*|\s+/))
+                player.output "Set #{object} attribute #{attrib} to #{self[:value].inspect}"
               else
-                value = event[:value] #for ease
+                value = self[:value] #for ease
                 if value.split.length == 1
                   case value.downcase
                   when "true"
diff --git a/lib/aethyr/core/actions/commands/astatus.rb b/lib/aethyr/core/actions/commands/astatus.rb
index c5466d5ce62e73e14dfb5ea6205b0c32ac01f1df..911dc7a5db8afbcd94df7926277a704b8d1a1e36 100644
--- a/lib/aethyr/core/actions/commands/astatus.rb
+++ b/lib/aethyr/core/actions/commands/astatus.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             awho(event, player, room)
             total_objects = $manager.game_objects_count
             player.output("Object Counts:" , true)
diff --git a/lib/aethyr/core/actions/commands/ateach.rb b/lib/aethyr/core/actions/commands/ateach.rb
index 39d3318320984348271f860622b698b310f18613..8556f1e410a87ca813e2300c1ec1a08866c902d7 100644
--- a/lib/aethyr/core/actions/commands/ateach.rb
+++ b/lib/aethyr/core/actions/commands/ateach.rb
@@ -10,11 +10,11 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
-            object = find_object(event[:target], event)
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            object = find_object(self[:target], event)
             if object.nil?
               player.output "Teach who what where?"
               return
diff --git a/lib/aethyr/core/actions/commands/awatch.rb b/lib/aethyr/core/actions/commands/awatch.rb
index bb2a58f3824197191a4ebf6cee3d0bf4f9791f6e..c5006ed11ddb53354479b2010aad84e3d3b38d34 100644
--- a/lib/aethyr/core/actions/commands/awatch.rb
+++ b/lib/aethyr/core/actions/commands/awatch.rb
@@ -10,11 +10,11 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
-            object = find_object(event[:target], event)
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            object = find_object(self[:target], event)
             if object.nil?
               player.output "What mobile do you want to watch?"
               return
@@ -23,7 +23,7 @@ module Aethyr
               return
             end
 
-            case event[:command]
+            case self[:command]
             when "start"
               if object.info.redirect_output_to == player.goid
                 player.output "You are already watching #{object.name}."
diff --git a/lib/aethyr/core/actions/commands/awho.rb b/lib/aethyr/core/actions/commands/awho.rb
index 916eb3e8529ef6e7962c8e173b27d6260061f810..aaae48ec96eabbaf3e7c9e9436ed3fc86126b17d 100644
--- a/lib/aethyr/core/actions/commands/awho.rb
+++ b/lib/aethyr/core/actions/commands/awho.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             players = $manager.find_all('class', Player)
 
             names = []
diff --git a/lib/aethyr/core/actions/commands/close.rb b/lib/aethyr/core/actions/commands/close.rb
index 778ca0b9165427bfb43fd5370d40232bdf8c61a2..e9111d9f36150e1893648b1448a193019a0f58bb 100644
--- a/lib/aethyr/core/actions/commands/close.rb
+++ b/lib/aethyr/core/actions/commands/close.rb
@@ -10,15 +10,15 @@ module Aethyr
           end
 
           def action()
-            event = @data
-            room = $manager.get_object(@player.container)
-            object = expand_direction(event[:object])
-            object = @player.search_inv(object) || $manager.find(object, room)
+
+            room = $manager.get_object(self[:agent].container)
+            object = expand_direction(self[:object])
+            object = self[:agent].search_inv(object) || $manager.find(object, room)
 
             if object.nil?
-              @player.output("Close what?")
+              self[:agent].output("Close what?")
             elsif not object.can? :open
-              @player.output("You cannot close #{object.name}.")
+              self[:agent].output("You cannot close #{object.name}.")
             else
               object.close(event)
             end
diff --git a/lib/aethyr/core/actions/commands/command_action.rb b/lib/aethyr/core/actions/commands/command_action.rb
index 47f1b80d2357a6dc4710b00745fca6267e3846ac..de195251659a465e7bf87b402645fd3bff6e66b2 100644
--- a/lib/aethyr/core/actions/commands/command_action.rb
+++ b/lib/aethyr/core/actions/commands/command_action.rb
@@ -6,16 +6,15 @@ module Aethyr
       def initialize(actor, **data)
         new_data = data.dup
         super(actor, **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 self[:actor].nil?
+        if self[:agent].nil?
           return $manager.find(name, nil) || $manager.get_object(name)
         else
-          return $manager.find(name, self[:actor]) || $manager.find(name, self[:actor].container) || $manager.get_object(name)
+          return $manager.find(name, self[:agent]) || $manager.find(name, self[:agent].container) || $manager.get_object(name)
         end
       end
     end
diff --git a/lib/aethyr/core/actions/commands/date.rb b/lib/aethyr/core/actions/commands/date.rb
index 73cdd45ec4f86709b73a143d14fc1c39dff995d8..d62e5bfc45089e4134bee940b8ba999b17980e8b 100644
--- a/lib/aethyr/core/actions/commands/date.rb
+++ b/lib/aethyr/core/actions/commands/date.rb
@@ -10,8 +10,8 @@ module Aethyr
           end
 
           def action
-            event = @data
-            @player.output $manager.date
+
+            self[:agent].output $manager.date
           end
           #Show who is in the game.
         end
diff --git a/lib/aethyr/core/actions/commands/delete_player.rb b/lib/aethyr/core/actions/commands/delete_player.rb
index ae41a003e0bee0421530c96780393bfc771c80ff..99dc6287b7363b82906daaead4f7c24caf38e148 100644
--- a/lib/aethyr/core/actions/commands/delete_player.rb
+++ b/lib/aethyr/core/actions/commands/delete_player.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             name = event.object
             if not $manager.player_exist? name
               player.output "No such player found: #{name}"
diff --git a/lib/aethyr/core/actions/commands/delete_post.rb b/lib/aethyr/core/actions/commands/delete_post.rb
index 9d072e5446bc00b7e2e0850d27d0a5c1d09ff9e4..44f0301f0cac2fd097887acfe0448a85f91d2a78 100644
--- a/lib/aethyr/core/actions/commands/delete_post.rb
+++ b/lib/aethyr/core/actions/commands/delete_post.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
 
 
@@ -25,15 +25,15 @@ module Aethyr
               return
             end
 
-            post = board.get_post event[:post_id]
+            post = board.get_post self[:post_id]
 
             if post.nil?
               player.output "No such post."
             elsif post[:author] != player.name
               player.output "You can only delete your own posts."
             else
-              board.delete_post event[:post_id]
-              player.output "Deleted post ##{event[:post_id]}"
+              board.delete_post self[:post_id]
+              player.output "Deleted post ##{self[:post_id]}"
             end
           end
 
diff --git a/lib/aethyr/core/actions/commands/deleteme.rb b/lib/aethyr/core/actions/commands/deleteme.rb
index 51708867cf24402bcdebe636da0f8c0ec15ef620..be0f225a118349743560663f8741135f8c86a353 100644
--- a/lib/aethyr/core/actions/commands/deleteme.rb
+++ b/lib/aethyr/core/actions/commands/deleteme.rb
@@ -10,21 +10,21 @@ module Aethyr
           end
 
           def action
-            event = @data
-            if event[:password]
-              if $manager.check_password(@player.name, event[:password])
-                @player.output "This character #{@player.name} will no longer exist."
-                @player.quit
-                $manager.delete_player(@player.name)
+
+            if self[:password]
+              if $manager.check_password(self[:agent].name, self[:password])
+                self[:agent].output "This character #{self[:agent].name} will no longer exist."
+                self[:agent].quit
+                $manager.delete_player(self[:agent].name)
               else
-                @player.output "That password is incorrect. You are allowed to continue existing."
+                self[:agent].output "That password is incorrect. You are allowed to continue existing."
               end
             else
-              @player.output "To confirm your deletion, please enter your password:"
-              @player.io.echo_off
-              @player.expect do |password|
-                @player.io.echo_on
-                event[:password] = password
+              self[:agent].output "To confirm your deletion, please enter your password:"
+              self[:agent].io.echo_off
+              self[:agent].expect do |password|
+                self[:agent].io.echo_on
+                self[:password] = password
                 Generic.deleteme(event)
               end
             end
diff --git a/lib/aethyr/core/actions/commands/drop.rb b/lib/aethyr/core/actions/commands/drop.rb
index 3bfd9398f0351803c510138592a19e0acd6ddccc..8bb22f0fb3c825ed33f72da816cb58feed37f469 100644
--- a/lib/aethyr/core/actions/commands/drop.rb
+++ b/lib/aethyr/core/actions/commands/drop.rb
@@ -10,28 +10,28 @@ module Aethyr
           end
 
           def action
-            event = @data
-            room = $manager.get_object(@player.container)
-            object = @player.inventory.find(event[:object])
+
+            room = $manager.get_object(self[:agent].container)
+            object = self[:agent].inventory.find(self[:object])
 
             if object.nil?
-              if response = @player.equipment.worn_or_wielded?(event[:object])
-                @player.output response
+              if response = self[:agent].equipment.worn_or_wielded?(self[:object])
+                self[:agent].output response
               else
-                @player.output "You have no #{event[:object]} to drop."
+                self[:agent].output "You have no #{self[:object]} to drop."
               end
 
               return
             end
 
-            @player.inventory.remove(object)
+            self[:agent].inventory.remove(object)
 
             object.container = room.goid
             room.add(object)
 
-            event[:to_player] = "You drop #{object.name}."
-            event[:to_other] = "#{@player.name} drops #{object.name}."
-            event[:to_blind_other] = "You hear something hit the ground."
+            self[:to_player] = "You drop #{object.name}."
+            self[:to_other] = "#{self[:agent].name} drops #{object.name}."
+            self[:to_blind_other] = "You hear something hit the ground."
             room.out_event(event)
           end
         end
diff --git a/lib/aethyr/core/actions/commands/emotes/agree.rb b/lib/aethyr/core/actions/commands/emotes/agree.rb
index b0ba07405247d71595c96c048d348c7f7573c490..a4916b8e6afe87ad3a4aa33eaa1c61d7816c91be 100644
--- a/lib/aethyr/core/actions/commands/emotes/agree.rb
+++ b/lib/aethyr/core/actions/commands/emotes/agree.rb
@@ -10,30 +10,30 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
               no_target do
                 to_player "You nod your head in agreement."
                 to_other "#{player.name} nods #{player.pronoun(:possessive)} head in agreement."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
 
               self_target do
                 to_player "You are in complete agreement with yourself."
                 to_other "#{player.name} nods at #{player.pronoun(:reflexive)}, apparently in complete agreement."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
 
               target do
                 to_player "You nod your head in agreement with #{event.target.name}."
                 to_target "#{player.name} nods #{player.pronoun(:possessive)} head in agreement with you."
                 to_other "#{player.name} nods #{player.pronoun(:possessive)} head in agreement with #{event.target.name}."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
             end
 
diff --git a/lib/aethyr/core/actions/commands/emotes/back.rb b/lib/aethyr/core/actions/commands/emotes/back.rb
index 44288f084bb4ae4e2fab9ac1466fa6c3063d04af..32eef31afe9654396165f345eb5454553518938f 100644
--- a/lib/aethyr/core/actions/commands/emotes/back.rb
+++ b/lib/aethyr/core/actions/commands/emotes/back.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
diff --git a/lib/aethyr/core/actions/commands/emotes/blush.rb b/lib/aethyr/core/actions/commands/emotes/blush.rb
index f0533fc01ac2c00a5262c0aa44bda5d6d457ffe1..659d31d81700c378e1cbc4c41788bf3bd680f194 100644
--- a/lib/aethyr/core/actions/commands/emotes/blush.rb
+++ b/lib/aethyr/core/actions/commands/emotes/blush.rb
@@ -10,31 +10,31 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
               no_target do
                 to_player "You feel the blood rush to your cheeks and you look down, blushing."
                 to_other "#{player.name}'s face turns bright red as #{player.pronoun} looks down, blushing."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
 
               self_target do
                 to_player "You blush at your foolishness."
                 to_other "#{player.name} blushes at #{event.target.pronoun(:possessive)} foolishness."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
 
               target do
                 to_player "Your face turns red and you blush at #{event.target.name} uncomfortably."
                 to_target "#{player.name} blushes in your direction."
-                to_deaf_target event[:to_target]
+                to_deaf_target self[:to_target]
                 to_other "#{player.name} blushes at #{event.target.name}, clearly uncomfortable."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
             end
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/bow.rb b/lib/aethyr/core/actions/commands/emotes/bow.rb
index d6dc5ee1bb7fd805b906f594b94332ac7eb651d4..abd19495b65bfe508d2de996ff3942b6298eb5f9 100644
--- a/lib/aethyr/core/actions/commands/emotes/bow.rb
+++ b/lib/aethyr/core/actions/commands/emotes/bow.rb
@@ -10,17 +10,17 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
               no_target do
                 to_player "You bow deeply and respectfully."
                 to_other "#{player.name} bows deeply and respectfully."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
 
               self_target do
@@ -31,7 +31,7 @@ module Aethyr
                 to_player  "You bow respectfully towards #{event.target.name}."
                 to_target "#{player.name} bows respectfully before you."
                 to_other "#{player.name} bows respectfully towards #{event.target.name}."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
             end
 
diff --git a/lib/aethyr/core/actions/commands/emotes/brb.rb b/lib/aethyr/core/actions/commands/emotes/brb.rb
index 0a2da882d94633dd307897c36b8c7d1ee29b0660..7fdb74493879e83e952b4d6a8927991107d4c501 100644
--- a/lib/aethyr/core/actions/commands/emotes/brb.rb
+++ b/lib/aethyr/core/actions/commands/emotes/brb.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
diff --git a/lib/aethyr/core/actions/commands/emotes/bye.rb b/lib/aethyr/core/actions/commands/emotes/bye.rb
index 4f7b8652c9d8604eb807352edf90ff587b042a0a..7cc266b86a7c31dbf734634b0555d3c3e894da17 100644
--- a/lib/aethyr/core/actions/commands/emotes/bye.rb
+++ b/lib/aethyr/core/actions/commands/emotes/bye.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
diff --git a/lib/aethyr/core/actions/commands/emotes/cheer.rb b/lib/aethyr/core/actions/commands/emotes/cheer.rb
index 9f89ad0e8add44c75092ed968386231c03b46ae2..645616fdc13d640a6663fb8e12f9c6adf9cee5db 100644
--- a/lib/aethyr/core/actions/commands/emotes/cheer.rb
+++ b/lib/aethyr/core/actions/commands/emotes/cheer.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
diff --git a/lib/aethyr/core/actions/commands/emotes/cry.rb b/lib/aethyr/core/actions/commands/emotes/cry.rb
index 1513198834db0437f1e04f06c6940eeb2bf0bf35..4eaacb014bce6d9a70818e97d5ea227ddf3b6b02 100644
--- a/lib/aethyr/core/actions/commands/emotes/cry.rb
+++ b/lib/aethyr/core/actions/commands/emotes/cry.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
diff --git a/lib/aethyr/core/actions/commands/emotes/curtsey.rb b/lib/aethyr/core/actions/commands/emotes/curtsey.rb
index 59662232d834bceac9c7c60c5041917a91b0f8ec..75a30ecf3896abe5ba245b583f5df09256651658 100644
--- a/lib/aethyr/core/actions/commands/emotes/curtsey.rb
+++ b/lib/aethyr/core/actions/commands/emotes/curtsey.rb
@@ -10,17 +10,17 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
               no_target do
                 to_player  "You perform a very graceful curtsey."
                 to_other "#{player.name} curtseys quite gracefully."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
 
               self_target do
@@ -31,7 +31,7 @@ module Aethyr
                 to_player "You curtsey gracefully and respectfully towards #{event.target.name}."
                 to_target "#{player.name} curtseys gracefully and respectfully in your direction."
                 to_other "#{player.name} curtseys gracefully and respectfully towards #{event.target.name}."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
 
             end
diff --git a/lib/aethyr/core/actions/commands/emotes/eh.rb b/lib/aethyr/core/actions/commands/emotes/eh.rb
index 28d1dee869ae1d4773db636e435c018360c3c701..bf4fe1eb2098260616308e5683d3accd0fe747f8 100644
--- a/lib/aethyr/core/actions/commands/emotes/eh.rb
+++ b/lib/aethyr/core/actions/commands/emotes/eh.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             make_emote event, player, room do
               target do
                 to_player "After giving #{event.target.name} a cursory glance, you emit an unimpressed, 'Eh.'"
diff --git a/lib/aethyr/core/actions/commands/emotes/emote.rb b/lib/aethyr/core/actions/commands/emotes/emote.rb
index 2a4921897ae2ab9b359f5f53c95c38aeeb01bfe3..49ac864d5a8095a83a550c567c3a2eadc07c2906 100644
--- a/lib/aethyr/core/actions/commands/emotes/emote.rb
+++ b/lib/aethyr/core/actions/commands/emotes/emote.rb
@@ -10,11 +10,11 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
-            action = event[:show].strip
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            action = self[:show].strip
 
             unless ['!', '.', '?', '"'].include? action[-1..-1]
               action << '.'
@@ -44,9 +44,9 @@ module Aethyr
             end
 
             if show
-              event[:message_type] = :chat
-              event[:to_player] = "You emote: #{show}"
-              event[:to_other] = show
+              self[:message_type] = :chat
+              self[:to_player] = "You emote: #{show}"
+              self[:to_other] = show
               room.out_event event
             end
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/emote_action.rb b/lib/aethyr/core/actions/commands/emotes/emote_action.rb
index cbfc4d35343c291dbe6ebdf5fa6944bfe4992141..e640e90fbbfad15673400af05b8e74ce698f2b36 100644
--- a/lib/aethyr/core/actions/commands/emotes/emote_action.rb
+++ b/lib/aethyr/core/actions/commands/emotes/emote_action.rb
@@ -28,11 +28,11 @@ module Aethyr
 
         def initialize(event, player, room)
           @event = event.dup
-          @event[:message_type] = :chat
-          @event[:player] = player
+          @self[:message_type] = :chat
+          @self[:player] = player
           @player = player
           @room = room
-          @post = event[:post]
+          @post = self[:post]
           @object = nil
           @return_event = nil
           find_target
@@ -72,43 +72,43 @@ module Aethyr
 
         #Provide output to show player.
         def to_player output
-          @event[:to_player] = output
+          @self[:to_player] = output
           @event
         end
 
         #Provide output to show others.
         def to_other output
-          @event[:to_other] = output
+          @self[:to_other] = output
           @event
         end
 
         #Provide output to show target.
         def to_target output
-          @event[:to_target] = output
+          @self[:to_target] = output
           @event
         end
 
         #Provide output to show blind others.
         def to_blind_other output
-          @event[:to_blind_other] = output
+          @self[:to_blind_other] = output
           @event
         end
 
         #Provide output to show deaf others.
         def to_deaf_other output
-          @event[:to_deaf_other] = output
+          @self[:to_deaf_other] = output
           @event
         end
 
         #Provide output to show blind target.
         def to_blind_target output
-          @event[:to_blind_target] = output
+          @self[:to_blind_target] = output
           @event
         end
 
         #Provide output to show deaf target.
         def to_deaf_target output
-          @event[:to_deaf_target] = output
+          @self[:to_deaf_target] = output
           @event
         end
 
@@ -116,19 +116,19 @@ module Aethyr
         def set_post
           return if not @post
           [:to_player, :to_other, :to_target, :to_blind_other, :to_blind_target, :to_deaf_other, :to_deaf_target].each do |t|
-            if @return_event[t]
-              if @return_event[t][-1,1] == "."
-                @return_event[t][-1] = ""
+            if @return_self[t]
+              if @return_self[t][-1,1] == "."
+                @return_self[t][-1] = ""
               end
 
               if @post[0,1] == ","
-                @return_event[t] << @post
+                @return_self[t] << @post
               else
-                @return_event[t] << " " << @post
+                @return_self[t] << " " << @post
               end
 
               unless ["!", "?", ".", "\"", "'"].include? @post[-1,1]
-                @return_event[t] << "."
+                @return_self[t] << "."
               end
             end
           end
@@ -138,9 +138,9 @@ module Aethyr
 
         #Find target for emote.
         def find_target
-          if @object.nil? and @event[:object]
-            @object = @room.find(@event[:object]) || @player.search_inv(@event[:object])
-            @event[:target] = @object
+          if @object.nil? and @self[:object]
+            @object = @room.find(@self[:object]) || @player.search_inv(@self[:object])
+            @self[:target] = @object
           end
         end
       end
diff --git a/lib/aethyr/core/actions/commands/emotes/er.rb b/lib/aethyr/core/actions/commands/emotes/er.rb
index 8c095a6deac26fe745c7248074bd8264e617daaa..c7c34c374c39eb3d2ce05d180e29c35684a98125 100644
--- a/lib/aethyr/core/actions/commands/emotes/er.rb
+++ b/lib/aethyr/core/actions/commands/emotes/er.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             make_emote event, player, room do
               no_target do
                 to_player "With a look of uncertainty, you say, \"Er...\""
diff --git a/lib/aethyr/core/actions/commands/emotes/ew.rb b/lib/aethyr/core/actions/commands/emotes/ew.rb
index a0659611da2d936103fdfc8c87524a541845d028..951a1aae2b201e64008cd299881d9eb67e0ef393 100644
--- a/lib/aethyr/core/actions/commands/emotes/ew.rb
+++ b/lib/aethyr/core/actions/commands/emotes/ew.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
diff --git a/lib/aethyr/core/actions/commands/emotes/frown.rb b/lib/aethyr/core/actions/commands/emotes/frown.rb
index fe36d16572a8ad77825b43901986b063a28e1621..edaf4e9f39f0327ab0bd8df08478c3ad13812464 100644
--- a/lib/aethyr/core/actions/commands/emotes/frown.rb
+++ b/lib/aethyr/core/actions/commands/emotes/frown.rb
@@ -10,30 +10,30 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
               no_target do
                 to_player "The edges of your mouth turn down as you frown."
                 to_other "The edges of #{player.name}'s mouth turn down as #{player.pronoun} frowns."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
 
               self_target do
                 to_player "You frown sadly at yourself."
                 to_other "#{player.name} frowns sadly at #{event.target.pronoun(:reflexive)}."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
 
               target do
                 to_player "You frown at #{event.target.name} unhappily."
                 to_target "#{player.name} frowns at you unhappily."
-                to_deaf_target event[:to_target]
+                to_deaf_target self[:to_target]
                 to_other "#{player.name} frowns at #{event.target.name} unhappily."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
             end
 
diff --git a/lib/aethyr/core/actions/commands/emotes/grin.rb b/lib/aethyr/core/actions/commands/emotes/grin.rb
index ae688e5ba3d1ef2bb0c55996f32453d29b0381ba..b5b1a0982a93bc4294a6138e6cd2d0f06639665d 100644
--- a/lib/aethyr/core/actions/commands/emotes/grin.rb
+++ b/lib/aethyr/core/actions/commands/emotes/grin.rb
@@ -10,31 +10,31 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
               no_target do
                 to_player 'You grin widely, flashing all your teeth.'
                 to_other "#{player.name} grins widely, flashing all #{player.pronoun(:possessive)} teeth."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
 
               self_target do
                 to_player "You grin madly at yourself."
                 to_other "#{player.name} grins madly at #{event.target.pronoun(:reflexive)}."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
 
               target do
                 to_player "You give #{event.target.name} a wide grin."
                 to_target "#{player.name} gives you a wide grin."
-                to_deaf_target event[:to_target]
+                to_deaf_target self[:to_target]
                 to_other "#{player.name} gives #{event.target.name} a wide grin."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
 
             end
diff --git a/lib/aethyr/core/actions/commands/emotes/hi.rb b/lib/aethyr/core/actions/commands/emotes/hi.rb
index 56364f4d6bedee88cfb87bbf3d301ff1843b481c..5801304df2e132eeec53866cf45df167ee9aa67e 100644
--- a/lib/aethyr/core/actions/commands/emotes/hi.rb
+++ b/lib/aethyr/core/actions/commands/emotes/hi.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
diff --git a/lib/aethyr/core/actions/commands/emotes/hm.rb b/lib/aethyr/core/actions/commands/emotes/hm.rb
index f363f746388ffa6f2aefdcc520f1eb009de57700..d91437168e0f658f8bbb2a312ec2e1581e1070b3 100644
--- a/lib/aethyr/core/actions/commands/emotes/hm.rb
+++ b/lib/aethyr/core/actions/commands/emotes/hm.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
diff --git a/lib/aethyr/core/actions/commands/emotes/hug.rb b/lib/aethyr/core/actions/commands/emotes/hug.rb
index 65c86a4625137e0f9afb875ca6048a7ef608543f..a7cf9940d8e31ca5d07715f3b52234bdf4a4f00f 100644
--- a/lib/aethyr/core/actions/commands/emotes/hug.rb
+++ b/lib/aethyr/core/actions/commands/emotes/hug.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
@@ -24,7 +24,7 @@ module Aethyr
               self_target do
                 to_player 'You wrap your arms around yourself and give a tight squeeze.'
                 to_other "#{player.name} gives #{player.pronoun(:reflexive)} a tight squeeze."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
 
               target do
@@ -32,7 +32,7 @@ module Aethyr
                 to_target "#{player.name} gives you a great big hug."
                 to_other "#{player.name} gives #{event.target.name} a great big hug."
                 to_blind_target "Someone gives you a great big hug."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
             end
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/huh.rb b/lib/aethyr/core/actions/commands/emotes/huh.rb
index c70eac40737baa864e7e42aa5d66bbb58a8b317b..ef2a3e738eb10cee8c71703f16f7c0cc98eb9e3a 100644
--- a/lib/aethyr/core/actions/commands/emotes/huh.rb
+++ b/lib/aethyr/core/actions/commands/emotes/huh.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             make_emote event, player, room do
 
               no_target do
diff --git a/lib/aethyr/core/actions/commands/emotes/laugh.rb b/lib/aethyr/core/actions/commands/emotes/laugh.rb
index 7917322ce13ec0c4c88cd9a815749f6143a117ad..bea3fb36ee4defa638487d0a7a689f4bed104f60 100644
--- a/lib/aethyr/core/actions/commands/emotes/laugh.rb
+++ b/lib/aethyr/core/actions/commands/emotes/laugh.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
diff --git a/lib/aethyr/core/actions/commands/emotes/no.rb b/lib/aethyr/core/actions/commands/emotes/no.rb
index 5fa862c692962c7f8415d6d5814312b87bf46e03..8f12e219d07e1ad2c790e03a7db266f219f67dea 100644
--- a/lib/aethyr/core/actions/commands/emotes/no.rb
+++ b/lib/aethyr/core/actions/commands/emotes/no.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             make_emote event, player, room do
               no_target do
                 to_player  "\"No,\" you say, shaking your head."
@@ -22,13 +22,13 @@ module Aethyr
               self_target do
                 to_player  "You shake your head negatively in your direction. You are kind of strange."
                 to_other "#{player.name} shakes #{player.pronoun(:possessive)} head at #{player.pronoun(:reflexive)}."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
               target do
                 to_player  "You shake your head, disagreeing with #{event.target.name}."
                 to_target "#{player.name} shakes #{player.pronoun(:possessive)} head in your direction, disagreeing."
                 to_other "#{player.name} shakes #{player.pronoun(:possessive)} head in disagreement with #{event.target.name}."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
             end
 
diff --git a/lib/aethyr/core/actions/commands/emotes/nod.rb b/lib/aethyr/core/actions/commands/emotes/nod.rb
index 63c5c31b71ceb5c04471d5587cfd0840061762ff..bcbd3fb340abb53784aaeb6c7ca0dae62d35c224 100644
--- a/lib/aethyr/core/actions/commands/emotes/nod.rb
+++ b/lib/aethyr/core/actions/commands/emotes/nod.rb
@@ -10,23 +10,23 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
               no_target do
                 to_player "You nod your head."
                 to_other "#{player.name} nods #{player.pronoun(:possessive)} head."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
 
               self_target do
                 to_player 'You nod to yourself thoughtfully.'
                 to_other "#{player.name} nods to #{player.pronoun(:reflexive)} thoughtfully."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
 
               target do
@@ -34,7 +34,7 @@ module Aethyr
                 to_player "You nod your head towards #{event.target.name}."
                 to_target "#{player.name} nods #{player.pronoun(:possessive)} head towards you."
                 to_other "#{player.name} nods #{player.pronoun(:possessive)} head towards #{event.target.name}."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
             end
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/pet.rb b/lib/aethyr/core/actions/commands/emotes/pet.rb
index 0759df19107ec784bd3e2db37bec593ac1e69704..32c0b7e6b246bfb42b036abf78038b2b7fd02919 100644
--- a/lib/aethyr/core/actions/commands/emotes/pet.rb
+++ b/lib/aethyr/core/actions/commands/emotes/pet.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
@@ -30,10 +30,10 @@ module Aethyr
               target do
                 to_player "You pet #{event.target.name} affectionately."
                 to_target "#{player.name} pets you affectionately."
-                to_deaf_target event[:to_target]
+                to_deaf_target self[:to_target]
                 to_blind_target "Someone pets you affectionately."
                 to_other "#{player.name} pets #{event.target.name} affectionately."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
             end
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/poke.rb b/lib/aethyr/core/actions/commands/emotes/poke.rb
index c42b94a6828bd9c21b5e3f90fc59c6a69f870225..5a804702bfb98ece8a5feed2726c908544053e7d 100644
--- a/lib/aethyr/core/actions/commands/emotes/poke.rb
+++ b/lib/aethyr/core/actions/commands/emotes/poke.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
@@ -24,16 +24,16 @@ module Aethyr
               self_target do
                 to_player  "You poke yourself in the eye. 'Ow!'"
                 to_other "#{player.name} pokes #{player.pronoun(:reflexive)} in the eye."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
 
               target do
                 to_player  "You poke #{event.target.name} playfully."
                 to_target "#{player.name} pokes you playfully."
                 to_blind_target "Someone pokes you playfully."
-                to_deaf_target event[:to_target]
+                to_deaf_target self[:to_target]
                 to_other "#{player.name} pokes #{event.target.name} playfully."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
             end
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/ponder.rb b/lib/aethyr/core/actions/commands/emotes/ponder.rb
index b01c1f829ee5fe97b1b56ccc207cefc36f6c207b..58bbb188f2c6bd5fbb5f0d79de2eaa78dce4611c 100644
--- a/lib/aethyr/core/actions/commands/emotes/ponder.rb
+++ b/lib/aethyr/core/actions/commands/emotes/ponder.rb
@@ -10,30 +10,30 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
               no_target do
                 to_player "You ponder that idea for a moment."
                 to_other "#{player.name} looks thoughtful as #{player.pronoun} ponders a thought."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
 
               self_target do
                 to_player  "You look down in deep thought at your navel."
                 to_other "#{player.name} looks down thoughtfully at #{player.pronoun(:possessive)} navel."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
 
               target do
                 to_player "You give #{event.target.name} a thoughtful look as you reflect and ponder."
                 to_target "#{player.name} gives you a thoughtful look and seems to be reflecting upon something."
                 to_other "#{player.name} gives #{event.target.name} a thoughtful look and appears to be absorbed in reflection."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
             end
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/shrug.rb b/lib/aethyr/core/actions/commands/emotes/shrug.rb
index 1d4ab619b5888c968318f742ad279f04352d41cb..4e4e782e8b916d6370e04369995708ad25a8c3c7 100644
--- a/lib/aethyr/core/actions/commands/emotes/shrug.rb
+++ b/lib/aethyr/core/actions/commands/emotes/shrug.rb
@@ -10,17 +10,17 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
               no_target do
                 to_player "You shrug your shoulders."
                 to_other "#{player.name} shrugs #{player.pronoun(:possessive)} shoulders."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
 
               self_target do
@@ -32,8 +32,8 @@ module Aethyr
                 to_player  "You give #{event.target.name} a brief shrug."
                 to_target "#{player.name} gives you a brief shrug."
                 to_other "#{player.name} gives #{event.target.name} a brief shrug."
-                to_deaf_other event[:to_other]
-                to_deaf_target event[:to_target]
+                to_deaf_other self[:to_other]
+                to_deaf_target self[:to_target]
               end
             end
 
diff --git a/lib/aethyr/core/actions/commands/emotes/sigh.rb b/lib/aethyr/core/actions/commands/emotes/sigh.rb
index fcf3e9bd61a53d5368ab69bed699c57ced2c83f0..c9d505da9d8e5f356cd57dab6f4404bbe8f6fdeb 100644
--- a/lib/aethyr/core/actions/commands/emotes/sigh.rb
+++ b/lib/aethyr/core/actions/commands/emotes/sigh.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
diff --git a/lib/aethyr/core/actions/commands/emotes/skip.rb b/lib/aethyr/core/actions/commands/emotes/skip.rb
index d80f5f399b1dcd7442aea332d6dc03ca5f4484b8..7b96bddcd3c6e374ce033fe3e6d37fe652255d7d 100644
--- a/lib/aethyr/core/actions/commands/emotes/skip.rb
+++ b/lib/aethyr/core/actions/commands/emotes/skip.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
diff --git a/lib/aethyr/core/actions/commands/emotes/smile.rb b/lib/aethyr/core/actions/commands/emotes/smile.rb
index 7c0cca965e33226e349c060a994fc70b0adf0be8..4aa60db5f08f0738373e4dfe65235a14b26299df 100644
--- a/lib/aethyr/core/actions/commands/emotes/smile.rb
+++ b/lib/aethyr/core/actions/commands/emotes/smile.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
diff --git a/lib/aethyr/core/actions/commands/emotes/snicker.rb b/lib/aethyr/core/actions/commands/emotes/snicker.rb
index 463daf548993c1b524dffbb0db16b086288b87bb..26686ee88a3d77bcbcf219e6b17c3130a374453a 100644
--- a/lib/aethyr/core/actions/commands/emotes/snicker.rb
+++ b/lib/aethyr/core/actions/commands/emotes/snicker.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
diff --git a/lib/aethyr/core/actions/commands/emotes/uh.rb b/lib/aethyr/core/actions/commands/emotes/uh.rb
index 1c6af37f60c3169313ab699d36f824832844220b..3db13112bb8700773a59ea448aff94ce2d7de009 100644
--- a/lib/aethyr/core/actions/commands/emotes/uh.rb
+++ b/lib/aethyr/core/actions/commands/emotes/uh.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             make_emote event, player, room do
               no_target do
                 to_player "\"Uh...\" you say, staring blankly."
diff --git a/lib/aethyr/core/actions/commands/emotes/wave.rb b/lib/aethyr/core/actions/commands/emotes/wave.rb
index fd0fa274755175875191e30242c4661db73d35d0..cf96dadfd7bfc5d2b68232b350f576e783522e61 100644
--- a/lib/aethyr/core/actions/commands/emotes/wave.rb
+++ b/lib/aethyr/core/actions/commands/emotes/wave.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
diff --git a/lib/aethyr/core/actions/commands/emotes/yawn.rb b/lib/aethyr/core/actions/commands/emotes/yawn.rb
index 6a9f5d2f41aaf34ae434ddc1bc50a61b2b980eff..efc0d81a59c8a0d5963659cdc803959e33411eee 100644
--- a/lib/aethyr/core/actions/commands/emotes/yawn.rb
+++ b/lib/aethyr/core/actions/commands/emotes/yawn.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             make_emote event, player, room do
 
@@ -25,14 +25,14 @@ module Aethyr
               self_target do
                 to_player "You yawn at how boring you are."
                 to_other "#{player.name} yawns at #{player.pronoun(:reflexive)}."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
 
               target do
                 to_player "You yawn at #{event.target.name}, bored out of your mind."
                 to_target "#{player.name} yawns at you, finding you boring."
                 to_other "#{player.name} yawns at how boring #{event.target.name} is."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
             end
 
diff --git a/lib/aethyr/core/actions/commands/emotes/yes.rb b/lib/aethyr/core/actions/commands/emotes/yes.rb
index 46a9689bbd25839ca6197b07076091a7f09b3d57..f822981c8dd34c077650f3ece696dffd70401e4b 100644
--- a/lib/aethyr/core/actions/commands/emotes/yes.rb
+++ b/lib/aethyr/core/actions/commands/emotes/yes.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             make_emote event, player, room do
 
               no_target do
@@ -24,14 +24,14 @@ module Aethyr
               self_target do
                 to_player  "You nod in agreement with yourself."
                 to_other "#{player.name} nods at #{player.pronoun(:reflexive)} strangely."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
 
               target do
                 to_player  "You nod in agreement with #{event.target.name}."
                 to_target "#{player.name} nods in your direction, agreeing."
                 to_other "#{player.name} nods in agreement with #{event.target.name}."
-                to_deaf_other event[:to_other]
+                to_deaf_other self[:to_other]
               end
             end
 
diff --git a/lib/aethyr/core/actions/commands/feel.rb b/lib/aethyr/core/actions/commands/feel.rb
index 74ab95dc8ee8d5c8a53d7884030346d245fd8ec9..840fe176b80b318a7b51c74df146a78feea638ea 100644
--- a/lib/aethyr/core/actions/commands/feel.rb
+++ b/lib/aethyr/core/actions/commands/feel.rb
@@ -10,27 +10,27 @@ module Aethyr
           end
 
           def action
-            event = @data
-            room = $manager.get_object(@player.container)
-            object = @player.search_inv(event[:target]) || room.find(event[:target])
 
-            if object == @player or event[:target] == "me"
-              @player.output "You feel fine."
+            room = $manager.get_object(self[:agent].container)
+            object = self[:agent].search_inv(self[:target]) || room.find(self[:target])
+
+            if object == self[:agent] or self[:target] == "me"
+              self[:agent].output "You feel fine."
               return
             elsif object.nil?
-              @player.output "What would you like to feel?"
+              self[:agent].output "What would you like to feel?"
               return
             end
 
-            event[:target] = object
-            event[:to_player] = "You reach out your hand and gingerly feel #{object.name}. "
+            self[:target] = object
+            self[:to_player] = "You reach out your hand and gingerly feel #{object.name}. "
             if object.info.texture.nil? or object.info.texture == ""
-              event[:to_player] << "#{object.pronoun(:possessive).capitalize} texture is what you would expect."
+              self[:to_player] << "#{object.pronoun(:possessive).capitalize} texture is what you would expect."
             else
-              event[:to_player] << object.info.texture
+              self[:to_player] << object.info.texture
             end
-            event[:to_target] = "#{@player.name} reaches out a hand and gingerly touches you."
-            event[:to_other] = "#{@player.name} reaches out #{@player.pronoun(:possessive)} hand and touches #{object.name}."
+            self[:to_target] = "#{self[:agent].name} reaches out a hand and gingerly touches you."
+            self[:to_other] = "#{self[:agent].name} reaches out #{self[:agent].pronoun(:possessive)} hand and touches #{object.name}."
             room.out_event event
           end
         end
diff --git a/lib/aethyr/core/actions/commands/fill.rb b/lib/aethyr/core/actions/commands/fill.rb
index 0b53c406d565d54cc18c1a850ca5594e91faf1af..322ed7bb20987f6da4cb26a4e4d8b4eb7a7579cf 100644
--- a/lib/aethyr/core/actions/commands/fill.rb
+++ b/lib/aethyr/core/actions/commands/fill.rb
@@ -10,31 +10,31 @@ module Aethyr
           end
 
           def action
-            event = @data
-            room = $manager.get_object(@player.container)
-            object = @player.search_inv(event[:object]) || room.find(event[:object])
-            from = @player.search_inv(event[:from]) || room.find(event[:from])
+
+            room = $manager.get_object(self[:agent].container)
+            object = self[:agent].search_inv(self[:object]) || room.find(self[:object])
+            from = self[:agent].search_inv(self[:from]) || room.find(self[:from])
 
             if object.nil?
-              @player.output("What would you like to fill?")
+              self[:agent].output("What would you like to fill?")
               return
             elsif not object.is_a? LiquidContainer
-              @player.output("You cannot fill #{object.name} with liquids.")
+              self[:agent].output("You cannot fill #{object.name} with liquids.")
               return
             elsif from.nil?
-              @player.output "There isn't any #{event[:from]} around here."
+              self[:agent].output "There isn't any #{self[:from]} around here."
               return
             elsif not from.is_a? LiquidContainer
-              @player.output "You cannot fill #{object.name} from #{from.name}."
+              self[:agent].output "You cannot fill #{object.name} from #{from.name}."
               return
             elsif from.empty?
-              @player.output "That #{object.generic} is empty."
+              self[:agent].output "That #{object.generic} is empty."
               return
             elsif object.full?
-              @player.output("That #{object.generic} is full.")
+              self[:agent].output("That #{object.generic} is full.")
               return
             elsif object == from
-              @player.output "Quickly flipping #{object.name} upside-down then upright again, you manage to fill it from itself."
+              self[:agent].output "Quickly flipping #{object.name} upside-down then upright again, you manage to fill it from itself."
               return
             end
           end
diff --git a/lib/aethyr/core/actions/commands/gait.rb b/lib/aethyr/core/actions/commands/gait.rb
index 2aa1a718a94596b7b85cb4b0c4594993a4213090..dc5a57d3418a49c93e2fdd39171a6f00e5e97ea0 100644
--- a/lib/aethyr/core/actions/commands/gait.rb
+++ b/lib/aethyr/core/actions/commands/gait.rb
@@ -10,24 +10,24 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
-            if event[:phrase].nil?
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            if self[:phrase].nil?
               if player.info.entrance_message
                 player.output "When you move, it looks something like:", true
                 player.output player.exit_message("north")
               else
                 player.output "You are walking normally."
               end
-            elsif event[:phrase].downcase == "none"
+            elsif self[:phrase].downcase == "none"
               player.info.entrance_message = nil
               player.info.exit_message = nil
               player.output "You will now walk normally."
             else
-              player.info.entrance_message = "#{event[:phrase]}, !name comes in from !direction."
-              player.info.exit_message = "#{event[:phrase]}, !name leaves to !direction."
+              player.info.entrance_message = "#{self[:phrase]}, !name comes in from !direction."
+              player.info.exit_message = "#{self[:phrase]}, !name leaves to !direction."
 
               player.output "When you move, it will now look something like:", true
               player.output player.exit_message("north")
diff --git a/lib/aethyr/core/actions/commands/get.rb b/lib/aethyr/core/actions/commands/get.rb
index dab0089cd3cb760fc23c43b6ff162298265b1c76..b9812a30541cfccc37ba5386923b42e8c3862a51 100644
--- a/lib/aethyr/core/actions/commands/get.rb
+++ b/lib/aethyr/core/actions/commands/get.rb
@@ -10,63 +10,63 @@ module Aethyr
           end
 
           def action
-            event = @data
-            room = $manager.get_object(@player.container)
-            if event[:from].nil?
-              object = $manager.find(event[:object], room)
+
+            room = $manager.get_object(self[:agent].container)
+            if self[:from].nil?
+              object = $manager.find(self[:object], room)
 
               if object.nil?
-                @player.output("There is no #{event[:object]} to take.")
+                self[:agent].output("There is no #{self[:object]} to take.")
                 return
               elsif not object.movable
-                @player.output("You cannot take #{object.name}.")
+                self[:agent].output("You cannot take #{object.name}.")
                 return
-              elsif @player.inventory.full?
-                @player.output("You cannot hold any more objects.")
+              elsif self[:agent].inventory.full?
+                self[:agent].output("You cannot hold any more objects.")
                 return
               end
 
               room.remove(object)
-              object.container = @player.goid
-              @player.inventory << object
+              object.container = self[:agent].goid
+              self[:agent].inventory << object
 
-              event[:to_player] = "You take #{object.name}."
-              event[:to_other] = "#{@player.name} takes #{object.name}."
+              self[:to_player] = "You take #{object.name}."
+              self[:to_other] = "#{self[:agent].name} takes #{object.name}."
               room.out_event(event)
             else
-              from = event[:from]
+              from = self[:from]
               container = $manager.find(from, room)
-              @player.inventory.find(from) if container.nil?
+              self[:agent].inventory.find(from) if container.nil?
 
               if container.nil?
-                @player.output("There is no #{from}.")
+                self[:agent].output("There is no #{from}.")
                 return
               elsif not container.is_a? Container
-                @player.output("Not sure how to do that.")
+                self[:agent].output("Not sure how to do that.")
                 return
               elsif container.can? :open and container.closed?
-                @player.output("You will need to open it first.")
+                self[:agent].output("You will need to open it first.")
                 return
               end
 
-              object = $manager.find(event[:object], container)
+              object = $manager.find(self[:object], container)
 
               if object.nil?
-                @player.output("There is no #{event[:object]} in the #{container.name}.")
+                self[:agent].output("There is no #{self[:object]} in the #{container.name}.")
                 return
               elsif not object.movable
-                @player.output("You cannot take the #{object.name}.")
+                self[:agent].output("You cannot take the #{object.name}.")
                 return
-              elsif @player.inventory.full?
-                @player.output("You cannot hold any more objects.")
+              elsif self[:agent].inventory.full?
+                self[:agent].output("You cannot hold any more objects.")
                 return
               end
 
               container.remove(object)
-              @player.inventory.add(object)
+              self[:agent].inventory.add(object)
 
-              event[:to_player] = "You take #{object.name} from #{container.name}."
-              event[:to_other] = "#{@player.name} takes #{object.name} from #{container.name}."
+              self[:to_player] = "You take #{object.name} from #{container.name}."
+              self[:to_other] = "#{self[:agent].name} takes #{object.name} from #{container.name}."
               room.out_event(event)
             end
           end
diff --git a/lib/aethyr/core/actions/commands/give.rb b/lib/aethyr/core/actions/commands/give.rb
index 45aa75cc765cc8512bf1a1dce611ee60c4a23f75..4e8f6611d28a5b64cd13d03ac915f3e9eb5cb140 100644
--- a/lib/aethyr/core/actions/commands/give.rb
+++ b/lib/aethyr/core/actions/commands/give.rb
@@ -10,24 +10,24 @@ module Aethyr
           end
 
           def action
-            event = @data
-            room = $manager.get_object(@player.container)
-            item = player.inventory.find(event[:item])
+
+            room = $manager.get_object(self[:agent].container)
+            item = player.inventory.find(self[:item])
 
             if item.nil?
-              if response = player.equipment.worn_or_wielded?(event[:item])
+              if response = player.equipment.worn_or_wielded?(self[:item])
                 player.output response
               else
-                player.output "You do not seem to have a #{event[:item]} to give away."
+                player.output "You do not seem to have a #{self[:item]} to give away."
               end
 
               return
             end
 
-            receiver = $manager.find(event[:to], room)
+            receiver = $manager.find(self[:to], room)
 
             if receiver.nil?
-              player.output("There is no #{event[:to]}.")
+              player.output("There is no #{self[:to]}.")
               return
             elsif not receiver.is_a? Player and not receiver.is_a? Mobile
               player.output("You cannot give anything to #{receiver.name}.")
@@ -37,10 +37,10 @@ module Aethyr
             player.inventory.remove(item)
             receiver.inventory.add(item)
 
-            event[:target] = receiver
-            event[:to_player] = "You give #{item.name} to #{receiver.name}."
-            event[:to_target] = "#{player.name} gives you #{item.name}."
-            event[:to_other] = "#{player.name} gives #{item.name} to #{receiver.name}."
+            self[:target] = receiver
+            self[:to_player] = "You give #{item.name} to #{receiver.name}."
+            self[:to_target] = "#{player.name} gives you #{item.name}."
+            self[:to_other] = "#{player.name} gives #{item.name} to #{receiver.name}."
 
             room.out_event(event)
           end
diff --git a/lib/aethyr/core/actions/commands/health.rb b/lib/aethyr/core/actions/commands/health.rb
index d9319368d32222317ec9a44e128937c6b0a4b222..eac7522c4452388c797a25fecddba27342102fe4 100644
--- a/lib/aethyr/core/actions/commands/health.rb
+++ b/lib/aethyr/core/actions/commands/health.rb
@@ -10,8 +10,8 @@ module Aethyr
           end
 
           def action
-            event = @data
-            @player.output "You are #{@player.health}."
+
+            self[:agent].output "You are #{self[:agent].health}."
           end
           #Display hunger.
         end
diff --git a/lib/aethyr/core/actions/commands/inventory.rb b/lib/aethyr/core/actions/commands/inventory.rb
index afe765c53c6582690ca7a82d6edfb1455e0689f4..3f82567160f7cf0f0a531179f4c41367437d1aac 100644
--- a/lib/aethyr/core/actions/commands/inventory.rb
+++ b/lib/aethyr/core/actions/commands/inventory.rb
@@ -10,7 +10,7 @@ module Aethyr
           end
 
           def action
-            event = @data
+
             player.output(player.show_inventory)
           end
         end
diff --git a/lib/aethyr/core/actions/commands/issue.rb b/lib/aethyr/core/actions/commands/issue.rb
index 9c5980f2ccf6f6461b4e4415f350b62541953cfb..ed81ab7815a95fcee8b7ff8eeb7c11c984ca68cf 100644
--- a/lib/aethyr/core/actions/commands/issue.rb
+++ b/lib/aethyr/core/actions/commands/issue.rb
@@ -10,62 +10,62 @@ module Aethyr
           end
 
           def action
-            event = @data
-            case event[:option]
+
+            case self[:option]
             when "new"
-              issue = Issues.add_issue event[:itype], player.name, event[:value]
-              player.output "Thank you for submitting #{event[:itype]} ##{issue[:id]}."
+              issue = Issues.add_issue self[:itype], player.name, self[:value]
+              player.output "Thank you for submitting #{self[:itype]} ##{issue[:id]}."
             when "add"
-              if not event[:issue_id]
-                player.output "Please specify a #{event[:itype]} number."
+              if not self[:issue_id]
+                player.output "Please specify a #{self[:itype]} number."
               else
-                denied = Issues.check_access event[:itype], event[:issue_id], player
+                denied = Issues.check_access self[:itype], self[:issue_id], player
                 if denied
                   player.output denied
                 else
-                  player.output Issues.append_issue(event[:itype], event[:issue_id], player.name, event[:value])
+                  player.output Issues.append_issue(self[:itype], self[:issue_id], player.name, self[:value])
                 end
               end
             when "del"
-              if not event[:issue_id]
-                player.output "Please specify a #{event[:itype]} number."
+              if not self[:issue_id]
+                player.output "Please specify a #{self[:itype]} number."
               else
-                denied = Issues.check_access event[:itype], event[:issue_id], player
+                denied = Issues.check_access self[:itype], self[:issue_id], player
                 if denied
                   player.output denied
                 else
-                  player.output Issues.delete_issue(event[:itype], event[:issue_id])
+                  player.output Issues.delete_issue(self[:itype], self[:issue_id])
                 end
               end
             when "list"
               if player.admin
-                list = Issues.list_issues event[:itype]
+                list = Issues.list_issues self[:itype]
               else
-                list = Issues.list_issues event[:itype], player.name
+                list = Issues.list_issues self[:itype], player.name
               end
               if list.empty?
-                player.output "No #{event[:itype]}s to list."
+                player.output "No #{self[:itype]}s to list."
               else
                 player.output list
               end
             when "show"
-              if not event[:issue_id]
-                player.output "Please specify a #{event[:itype]} number."
+              if not self[:issue_id]
+                player.output "Please specify a #{self[:itype]} number."
               else
-                denied = Issues.check_access event[:itype], event[:issue_id], player
+                denied = Issues.check_access self[:itype], self[:issue_id], player
                 if denied
                   player.output denied
                 else
-                  player.output Issues.show_issue(event[:itype], event[:issue_id])
+                  player.output Issues.show_issue(self[:itype], self[:issue_id])
                 end
               end
             when "status"
               if not player.admin
-                player.output "Only administrators may change a #{event[:itype]}'s status."
-              elsif not event[:issue_id]
-                player.output "Please specify a #{event[:itype]} number."
+                player.output "Only administrators may change a #{self[:itype]}'s status."
+              elsif not self[:issue_id]
+                player.output "Please specify a #{self[:itype]} number."
               else
-                player.output Issues.set_status(event[:itype], event[:issue_id], player.name, event[:value])
+                player.output Issues.set_status(self[:itype], self[:issue_id], player.name, self[:value])
               end
 
             end
diff --git a/lib/aethyr/core/actions/commands/kick.rb b/lib/aethyr/core/actions/commands/kick.rb
index a326619e9ef66a0303acfe1d9597064744a08303..854e59c26a17d8cb225f011bd27bf165e65e5de7 100644
--- a/lib/aethyr/core/actions/commands/kick.rb
+++ b/lib/aethyr/core/actions/commands/kick.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             return if not Combat.ready? player
 
             target = (event.target && room.find(event.target)) || room.find(player.last_target)
@@ -29,10 +29,10 @@ module Aethyr
 
             event.target = target
 
-            event[:to_other] = "#{player.name} kicks #{player.pronoun(:possessive)} foot out at #{target.name}."
-            event[:to_target] = "#{player.name} kicks #{player.pronoun(:possessive)} foot at you."
-            event[:to_player] = "You balance carefully and kick your foot out towards #{target.name}."
-            event[:blockable] = true
+            self[:to_other] = "#{player.name} kicks #{player.pronoun(:possessive)} foot out at #{target.name}."
+            self[:to_target] = "#{player.name} kicks #{player.pronoun(:possessive)} foot at you."
+            self[:to_player] = "You balance carefully and kick your foot out towards #{target.name}."
+            self[:blockable] = true
 
             player.balance = false
             player.info.in_combat = true
@@ -40,11 +40,11 @@ module Aethyr
 
             room.out_event event
 
-            event[:action] = :martial_hit
-            event[:combat_action] = :kick
-            event[:to_other] = "#{player.name} kicks #{target.name} with considerable violence."
-            event[:to_target] = "#{player.name} kicks you rather violently."
-            event[:to_player] = "Your kick makes good contact with #{target.name}."
+            self[:action] = :martial_hit
+            self[:combat_action] = :kick
+            self[:to_other] = "#{player.name} kicks #{target.name} with considerable violence."
+            self[:to_target] = "#{player.name} kicks you rather violently."
+            self[:to_player] = "Your kick makes good contact with #{target.name}."
 
             Combat.future_event event
           end
diff --git a/lib/aethyr/core/actions/commands/latest_news.rb b/lib/aethyr/core/actions/commands/latest_news.rb
index 5af68eb641aaab535cf53631478df91d9397b676..c798d7b7273a2a5caa6f99df0debdbbfd959eb1f 100644
--- a/lib/aethyr/core/actions/commands/latest_news.rb
+++ b/lib/aethyr/core/actions/commands/latest_news.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             board = find_board(event, room)
 
             if board.nil?
@@ -25,9 +25,9 @@ module Aethyr
               log board.class
             end
 
-            offset = event[:offset] || 0
+            offset = self[:offset] || 0
             wordwrap = player.word_wrap || 100
-            limit = event[:limit] || player.page_height
+            limit = self[:limit] || player.page_height
 
             player.output board.list_latest(wordwrap, offset, limit)
           end
diff --git a/lib/aethyr/core/actions/commands/list_unread.rb b/lib/aethyr/core/actions/commands/list_unread.rb
index 67e39a8e246b639e300fdfe1f8a43f80aa8c2c20..6f6e02effee831211b4456f9e8196566923b5812 100644
--- a/lib/aethyr/core/actions/commands/list_unread.rb
+++ b/lib/aethyr/core/actions/commands/list_unread.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             board = find_board(event, room)
 
             if board.nil?
diff --git a/lib/aethyr/core/actions/commands/listen.rb b/lib/aethyr/core/actions/commands/listen.rb
index 45910582ca9fc4c544fa06630ea233ed1cf821d3..312d5afe0688c656e681bd61c43900a9e827e599 100644
--- a/lib/aethyr/core/actions/commands/listen.rb
+++ b/lib/aethyr/core/actions/commands/listen.rb
@@ -10,39 +10,39 @@ module Aethyr
           end
 
           def action
-            event = @data
-            room = $manager.get_object(@player.container)
-            if event[:target].nil?
-              event[:target] = room
+
+            room = $manager.get_object(self[:agent].container)
+            if self[:target].nil?
+              self[:target] = room
               if room.info.sound
-                event[:to_player] = "You listen carefully. #{room.info.sound}."
+                self[:to_player] = "You listen carefully. #{room.info.sound}."
               else
-                event[:to_player] = "You listen carefully but hear nothing unusual."
+                self[:to_player] = "You listen carefully but hear nothing unusual."
               end
-              event[:to_other] = "A look of concentration forms on #{@player.name}'s face as #{@player.pronoun} listens intently."
+              self[:to_other] = "A look of concentration forms on #{self[:agent].name}'s face as #{self[:agent].pronoun} listens intently."
               room.out_event event
               return
             end
 
-            object = @player.search_inv(event[:target]) || room.find(event[:target])
+            object = self[:agent].search_inv(self[:target]) || room.find(self[:target])
 
-            if object == @player or event[:target] == "me"
-              @player.output "Listening quietly, you can faintly hear your pulse."
+            if object == self[:agent] or self[:target] == "me"
+              self[:agent].output "Listening quietly, you can faintly hear your pulse."
               return
             elsif object.nil?
-              @player.output "What would you like to listen to?"
+              self[:agent].output "What would you like to listen to?"
               return
             end
 
-            event[:target] = object
-            event[:to_player] = "You bend your head towards #{object.name}. "
+            self[:target] = object
+            self[:to_player] = "You bend your head towards #{object.name}. "
             if object.info.sound.nil? or object.info.sound == ""
-              event[:to_player] << "#{object.pronoun.capitalize} emits no unusual sounds."
+              self[:to_player] << "#{object.pronoun.capitalize} emits no unusual sounds."
             else
-              event[:to_player] << object.info.sound
+              self[:to_player] << object.info.sound
             end
-            event[:to_target] = "#{@player.name} listens to you carefully."
-            event[:to_other] = "#{@player.name} bends #{@player.pronoun(:possessive)} head towards #{object.name} and listens."
+            self[:to_target] = "#{self[:agent].name} listens to you carefully."
+            self[:to_other] = "#{self[:agent].name} bends #{self[:agent].pronoun(:possessive)} head towards #{object.name} and listens."
             room.out_event event
           end
         end
diff --git a/lib/aethyr/core/actions/commands/lock.rb b/lib/aethyr/core/actions/commands/lock.rb
index 474d7c5ac1c12318e53de9a62fd27698807dc8d4..5fa5cfee059097cb420f4953831f61a09022d6e8 100644
--- a/lib/aethyr/core/actions/commands/lock.rb
+++ b/lib/aethyr/core/actions/commands/lock.rb
@@ -10,35 +10,35 @@ module Aethyr
           end
 
           def action
-            event = @data
-            room = $manager.get_object(@player.container)
-            object = @player.search_inv(event[:object]) || room.find(event[:object])
+
+            room = $manager.get_object(self[:agent].container)
+            object = self[:agent].search_inv(self[:object]) || room.find(self[:object])
 
             if object.nil?
-              @player.output('Lock what?')
+              self[:agent].output('Lock what?')
               return
             elsif not object.can? :lock or not object.lockable?
-              @player.output('That object cannot be locked.')
+              self[:agent].output('That object cannot be locked.')
               return
             elsif object.locked?
-              @player.output("#{object.name} is already locked.")
+              self[:agent].output("#{object.name} is already locked.")
               return
             end
 
             has_key = false
             object.keys.each do |key|
-              if @player.inventory.include? key
+              if self[:agent].inventory.include? key
                 has_key = key
                 break
               end
             end
 
-            if has_key or @player.admin
-              status = object.lock(has_key, @player.admin)
+            if has_key or self[:agent].admin
+              status = object.lock(has_key, self[:agent].admin)
               if status
-                event[:to_player] = "You lock #{object.name}."
-                event[:to_other] = "#{@player.name} locks #{object.name}."
-                event[:to_blind_other] = "You hear the click of a lock."
+                self[:to_player] = "You lock #{object.name}."
+                self[:to_other] = "#{self[:agent].name} locks #{object.name}."
+                self[:to_blind_other] = "You hear the click of a lock."
 
                 room.out_event(event)
 
@@ -47,15 +47,15 @@ module Aethyr
                   other_side.lock(has_key)
                   other_room = $manager.find other_side.container
                   o_event = event.dup
-                  event[:to_other] = "#{other_side.name} locks from the other side."
-                  event[:to_blind_other] = "You hear the click of a lock."
+                  self[:to_other] = "#{other_side.name} locks from the other side."
+                  self[:to_blind_other] = "You hear the click of a lock."
                   other_room.out_event(event)
                 end
               else
-                @player.output("You are unable to lock that #{object.name}.")
+                self[:agent].output("You are unable to lock that #{object.name}.")
               end
             else
-              @player.output("You do not have the key to that #{object.name}.")
+              self[:agent].output("You do not have the key to that #{object.name}.")
             end
           end
 
diff --git a/lib/aethyr/core/actions/commands/look.rb b/lib/aethyr/core/actions/commands/look.rb
index 1036385c9459cd0325aae05090640c5bd7510c35..193f64bb294d1b3c2c0cb742a151509097048ffd 100644
--- a/lib/aethyr/core/actions/commands/look.rb
+++ b/lib/aethyr/core/actions/commands/look.rb
@@ -11,66 +11,66 @@ module Aethyr
           end
 
           def action
-            event = @data
-            room = $manager.get_object(@player.container)
+
+            room = $manager.get_object(self[:agent].container)
 
             pre_look_data = { :can_look => true }
-            @player.broadcast_from(:pre_look, pre_look_data)
+            self[:agent].broadcast_from(:pre_look, pre_look_data)
 
             if not pre_look_data[:can_look]
               if pre_look_data[:reason].nil?
-                @player.output "You cannot see."
+                self[:agent].output "You cannot see."
               else
-                @player.output blind_data[:reason]
+                self[:agent].output blind_data[:reason]
               end
             else
-              if event[:at]
-                object = room if event[:at] == "here"
-                object = object || @player.search_inv(event[:at]) || room.find(event[:at])
+              if self[:at]
+                object = room if self[:at] == "here"
+                object = object || self[:agent].search_inv(self[:at]) || room.find(self[:at])
 
                 if object.nil?
-                  @player.output("Look at what, again?")
+                  self[:agent].output("Look at what, again?")
                   return
                 end
 
                 if object.is_a? Exit
-                  @player.output object.peer
+                  self[:agent].output object.peer
                 elsif object.is_a? Room
-                  @player.output("You are indoors.", true) if object.info.terrain.indoors
-                  @player.output("You are underwater.", true) if object.info.terrain.underwater
-                  @player.output("You are swimming.", true) if object.info.terrain.water
+                  self[:agent].output("You are indoors.", true) if object.info.terrain.indoors
+                  self[:agent].output("You are underwater.", true) if object.info.terrain.underwater
+                  self[:agent].output("You are swimming.", true) if object.info.terrain.water
 
-                  @player.output "You are in a place called #{room.name} in #{room.area ? room.area.name : "an unknown area"}.", true
+                  self[:agent].output "You are in a place called #{room.name} in #{room.area ? room.area.name : "an unknown area"}.", true
                   if room.area
-                    @player.output "The area is generally #{describe_area(room.area)} and this spot is #{describe_area(room)}."
+                    self[:agent].output "The area is generally #{describe_area(room.area)} and this spot is #{describe_area(room)}."
                   elsif room.info.terrain.room_type
-                    @player.output "Where you are standing is considered to be #{describe_area(room)}."
+                    self[:agent].output "Where you are standing is considered to be #{describe_area(room)}."
                   else
-                    @player.output "You are unsure about anything else concerning the area."
+                    self[:agent].output "You are unsure about anything else concerning the area."
                   end
-                elsif @player == object
-                  @player.output "You look over yourself and see:\n#{@player.instance_variable_get("@long_desc")}", true
-                  @player.output object.show_inventory
+                elsif self[:agent] == object
+                  self[:agent].output "You look over yourself and see:\n#{self[:agent].instance_variable_get("@long_desc")}", true
+                  self[:agent].output object.show_inventory
                 else
-                  @player.output object.long_desc
+                  self[:agent].output object.long_desc
                 end
-              elsif event[:in]
-                object = room.find(event[:in])
-                object = @player.inventory.find(event[:in]) if object.nil?
+              elsif self[:in]
+                object = room.find(self[:in])
+                object = self[:agent].inventory.find(self[:in]) if object.nil?
 
                 if object.nil?
-                  @player.output("Look inside what?")
+                  self[:agent].output("Look inside what?")
                 elsif not object.can? :look_inside
-                  @player.output("You cannot look inside that.")
+                  self[:agent].output("You cannot look inside that.")
                 else
                   object.look_inside(event)
                 end
               else
                 if not room.nil?
-                  look_text = room.look(@player)
-                  @player.output(look_text)
+                  look_text = room.look(self[:agent])
+                  self[:agent].output(look_text)
                 else
-                  @player.output "Nothing to look at."
+                  self[:agent].output "Nothing to look at."
                 end
               end
             end
diff --git a/lib/aethyr/core/actions/commands/map.rb b/lib/aethyr/core/actions/commands/map.rb
index c8c57280a111257cb1e089f0217788cc507745f5..ece990f58f789dd19a522cc31cad6047e2881262 100644
--- a/lib/aethyr/core/actions/commands/map.rb
+++ b/lib/aethyr/core/actions/commands/map.rb
@@ -10,9 +10,9 @@ module Aethyr
           end
 
           def action
-            event = @data
-            room = $manager.get_object(@player.container)
-            @player.output(room.area.render_map(@player, room.area.position(room)))
+
+            room = $manager.get_object(self[:agent].container)
+            self[:agent].output(room.area.render_map(self[:agent], room.area.position(room)))
           end
         end
       end
diff --git a/lib/aethyr/core/actions/commands/more.rb b/lib/aethyr/core/actions/commands/more.rb
index 9a92180348d86f0c74e4ea3282ef21783486744e..87f329b1d22379e24e0137709e28ffcaaa0cace5 100644
--- a/lib/aethyr/core/actions/commands/more.rb
+++ b/lib/aethyr/core/actions/commands/more.rb
@@ -10,7 +10,7 @@ module Aethyr
           end
 
           def action
-            event = @data
+
             player.more
           end
         end
diff --git a/lib/aethyr/core/actions/commands/move.rb b/lib/aethyr/core/actions/commands/move.rb
index 3bc7c7dc7e282986b64013583c31f6793f7e3eaa..653c991176467c05b4ec8525582b4066c7ad8964 100644
--- a/lib/aethyr/core/actions/commands/move.rb
+++ b/lib/aethyr/core/actions/commands/move.rb
@@ -10,36 +10,35 @@ module Aethyr
           end
 
           def action
-            event = @data.dup
-            room = $manager.get_object(@player.container)
-            exit = room.exit(event[:direction])
+            room = $manager.get_object(self[:agent].container)
+            exit = room.exit(self[:direction])
 
             if exit.nil?
-              @player.output("You cannot go #{event[:direction]}.")
+              self[:agent].output("You cannot go #{self[:direction]}.")
               return
             elsif exit.can? :open and not exit.open?
-              @player.output("That exit is closed. Perhaps you should open it?")
+              self[:agent].output("That exit is closed. Perhaps you should open it?")
               return
             end
 
             new_room = $manager.find(exit.exit_room)
 
             if new_room.nil?
-              @player.output("That exit #{exit.name} leads into the void.")
+              self[:agent].output("That exit #{exit.name} leads into the void.")
               return
             end
 
-            room.remove(@player)
-            new_room.add(@player)
-            @player.container = new_room.game_object_id
-            event[:to_player] = "You move #{event[:direction]}."
-            event[:to_other] = "#{@player.name} leaves #{event[:direction]}."
-            event[:to_blind_other] = "You hear someone leave."
+            room.remove(self[:agent])
+            new_room.add(self[:agent])
+            self[:agent].container = new_room.game_object_id
+            self[:to_player] = "You move #{self[:direction]}."
+            self[:to_other] = "#{self[:agent].name} leaves #{self[:direction]}."
+            self[:to_blind_other] = "You hear someone leave."
 
             room.out_event(event)
-            look_text = new_room.look(@player)
+            look_text = new_room.look(self[:agent])
             out_text = Window.split_message(look_text, 79).join("\n")
-            @player.output(out_text, message_type: :look, internal_clear: true)
+            self[:agent].output(out_text, message_type: :look, internal_clear: true)
           end
         end
       end
diff --git a/lib/aethyr/core/actions/commands/open.rb b/lib/aethyr/core/actions/commands/open.rb
index 05245108fc3252f09d161c1feae2a9f93aa35582..c3741a81bd4566c68ef248f4316a81796401428e 100644
--- a/lib/aethyr/core/actions/commands/open.rb
+++ b/lib/aethyr/core/actions/commands/open.rb
@@ -10,9 +10,9 @@ module Aethyr
           end
 
           def action
-            event = @data
-            room = $manager.get_object(@player.container)
-            object = expand_direction(event[:object])
+
+            room = $manager.get_object(self[:agent].container)
+            object = expand_direction(self[:object])
             object = player.search_inv(object) || $manager.find(object, room)
 
             if object.nil?
diff --git a/lib/aethyr/core/actions/commands/portal.rb b/lib/aethyr/core/actions/commands/portal.rb
index 849e4f40fbfca38b078b9ff396b1c999cc772ab4..bd5848e34453da123b38ee564e7390396c5c6233 100644
--- a/lib/aethyr/core/actions/commands/portal.rb
+++ b/lib/aethyr/core/actions/commands/portal.rb
@@ -10,22 +10,22 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
-            object = find_object(event[:object], event)
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            object = find_object(self[:object], event)
             if object.nil?
-              player.output "Cannot find #{event[:object]}"
+              player.output "Cannot find #{self[:object]}"
               return
             elsif not object.is_a? Portal
               player.output "That is not a portal."
               return
             end
 
-            value = event[:value]
+            value = self[:value]
 
-            case event[:setting]
+            case self[:setting]
             when "action"
               value.downcase!
               if value == "enter"
diff --git a/lib/aethyr/core/actions/commands/pose.rb b/lib/aethyr/core/actions/commands/pose.rb
index 83f1be534d4913960cc624719a165f6e89cb61f8..554c027c93708e7b031441176454509e869b245c 100644
--- a/lib/aethyr/core/actions/commands/pose.rb
+++ b/lib/aethyr/core/actions/commands/pose.rb
@@ -10,16 +10,16 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
-            if event[:pose].downcase == "none"
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            if self[:pose].downcase == "none"
               player.pose = nil
               player.output "You are no longer posing."
             else
-              player.pose = event[:pose]
-              player.output "Your pose is now: #{event[:pose]}."
+              player.pose = self[:pose]
+              player.output "Your pose is now: #{self[:pose]}."
             end
           end
 
diff --git a/lib/aethyr/core/actions/commands/punch.rb b/lib/aethyr/core/actions/commands/punch.rb
index 0cf8805c6d268e908086bfd86420982927c2b632..f6f10aef9df68f4965bda3aed21c385bd29c421f 100644
--- a/lib/aethyr/core/actions/commands/punch.rb
+++ b/lib/aethyr/core/actions/commands/punch.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             return unless Combat.ready? player
 
             target = (event.target && room.find(event.target)) || room.find(player.last_target)
@@ -29,10 +29,10 @@ module Aethyr
 
             event.target = target
 
-            event[:to_other] = "#{player.name} swings #{player.pronoun(:possessive)} clenched fist at #{target.name}."
-            event[:to_target] = "#{player.name} swings #{player.pronoun(:possessive)} fist straight towards your face."
-            event[:to_player] = "You clench your hand into a fist and swing it at #{target.name}."
-            event[:blockable] = true
+            self[:to_other] = "#{player.name} swings #{player.pronoun(:possessive)} clenched fist at #{target.name}."
+            self[:to_target] = "#{player.name} swings #{player.pronoun(:possessive)} fist straight towards your face."
+            self[:to_player] = "You clench your hand into a fist and swing it at #{target.name}."
+            self[:blockable] = true
 
             player.balance = false
             player.info.in_combat = true
@@ -40,11 +40,11 @@ module Aethyr
 
             room.out_event event
 
-            event[:action] = :martial_hit
-            event[:combat_action] = :punch
-            event[:to_other] = "#{player.name} punches #{target.name} directly in the face."
-            event[:to_target] = "You stagger slightly as #{player.name} punches you in the face."
-            event[:to_player] = "Your fist lands squarely in #{target.name}'s face."
+            self[:action] = :martial_hit
+            self[:combat_action] = :punch
+            self[:to_other] = "#{player.name} punches #{target.name} directly in the face."
+            self[:to_target] = "You stagger slightly as #{player.name} punches you in the face."
+            self[:to_player] = "Your fist lands squarely in #{target.name}'s face."
 
             Combat.future_event event
           end
diff --git a/lib/aethyr/core/actions/commands/put.rb b/lib/aethyr/core/actions/commands/put.rb
index 593563c5225e9b5dae1f2999d42d50ac93f69d63..caab71874e9be684d746d4e128548090e7691615 100644
--- a/lib/aethyr/core/actions/commands/put.rb
+++ b/lib/aethyr/core/actions/commands/put.rb
@@ -10,38 +10,38 @@ module Aethyr
           end
 
           def action
-            event = @data
-            room = $manager.get_object(@player.container)
-            item = @player.inventory.find(event[:item])
+
+            room = $manager.get_object(self[:agent].container)
+            item = self[:agent].inventory.find(self[:item])
 
             if item.nil?
-              if response = @player.equipment.worn_or_wielded?(event[:item])
-                @player.output response
+              if response = self[:agent].equipment.worn_or_wielded?(self[:item])
+                self[:agent].output response
               else
-                @player.output "You do not seem to have a #{event[:item]}."
+                self[:agent].output "You do not seem to have a #{self[:item]}."
               end
 
               return
             end
 
-            container = @player.search_inv(event[:container]) || $manager.find(event[:container], room)
+            container = self[:agent].search_inv(self[:container]) || $manager.find(self[:container], room)
 
             if container.nil?
-              @player.output("There is no #{event[:container]} in which to put #{item.name}.")
+              self[:agent].output("There is no #{self[:container]} in which to put #{item.name}.")
               return
             elsif not container.is_a? Container
-              @player.output("You cannot put anything in #{container.name}.")
+              self[:agent].output("You cannot put anything in #{container.name}.")
               return
             elsif container.can? :open and container.closed?
-              @player.output("You need to open #{container.name} first.")
+              self[:agent].output("You need to open #{container.name} first.")
               return
             end
 
-            @player.inventory.remove(item)
+            self[:agent].inventory.remove(item)
             container.add(item)
 
-            event[:to_player] = "You put #{item.name} in #{container.name}."
-            event[:to_other] = "#{@player.name} puts #{item.name} in #{container.name}"
+            self[:to_player] = "You put #{item.name} in #{container.name}."
+            self[:to_other] = "#{self[:agent].name} puts #{item.name} in #{container.name}"
 
             room.out_event(event)
           end
diff --git a/lib/aethyr/core/actions/commands/quit.rb b/lib/aethyr/core/actions/commands/quit.rb
index 1551ec46fa4bf5f379dc2baa884f6a055d4bca33..d6a89b88efa91d058caacb2c1cc98d361db1d0cf 100644
--- a/lib/aethyr/core/actions/commands/quit.rb
+++ b/lib/aethyr/core/actions/commands/quit.rb
@@ -10,8 +10,8 @@ module Aethyr
           end
 
           def action
-            event = @data
-            $manager.drop_player @player
+
+            $manager.drop_player self[:agent]
           end
         end
       end
diff --git a/lib/aethyr/core/actions/commands/read_post.rb b/lib/aethyr/core/actions/commands/read_post.rb
index 6e5a73ee6c0ec68e3ac45dcc53d13d8488a1393c..2eccfa66335239b314d42e439cd7e0d52b063d7e 100644
--- a/lib/aethyr/core/actions/commands/read_post.rb
+++ b/lib/aethyr/core/actions/commands/read_post.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             board = find_board(event, room)
 
             if board.nil?
@@ -21,7 +21,7 @@ module Aethyr
               return
             end
 
-            post = board.get_post event[:post_id]
+            post = board.get_post self[:post_id]
             if post.nil?
               player.output "No such posting here."
               return
@@ -31,7 +31,7 @@ module Aethyr
               player.info.boards = {}
             end
 
-            player.info.boards[board.goid] = event[:post_id].to_i
+            player.info.boards[board.goid] = self[:post_id].to_i
 
             player.output board.show_post(post, player.word_wrap || 80)
           end
diff --git a/lib/aethyr/core/actions/commands/remove.rb b/lib/aethyr/core/actions/commands/remove.rb
index 598cbef7f6afa0990450929add2d5623574498cb..dacaf0ee036d32a889f60dffa5218678bc255aa2 100644
--- a/lib/aethyr/core/actions/commands/remove.rb
+++ b/lib/aethyr/core/actions/commands/remove.rb
@@ -10,15 +10,15 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
 
-            object = player.equipment.find(event[:object])
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+
+            object = player.equipment.find(self[:object])
 
             if object.nil?
-              player.output("What #{event[:object]} are you trying to remove?")
+              player.output("What #{self[:object]} are you trying to remove?")
               return
             end
 
@@ -32,11 +32,11 @@ module Aethyr
               return
             end
 
-            response = player.remove(object, event[:position])
+            response = player.remove(object, self[:position])
 
             if response
-              event[:to_player] = "You remove #{object.name}."
-              event[:to_other] = "#{player.name} removes #{object.name}."
+              self[:to_player] = "You remove #{object.name}."
+              self[:to_other] = "#{player.name} removes #{object.name}."
               room.out_event(event)
             else
               player.output "Could not remove #{object.name} for some reason."
diff --git a/lib/aethyr/core/actions/commands/reply.rb b/lib/aethyr/core/actions/commands/reply.rb
index d1dc5f55c517d210005602c3c4872041c2f77795..42f3a3635283630eed95f25f1b3314f5cac82431 100644
--- a/lib/aethyr/core/actions/commands/reply.rb
+++ b/lib/aethyr/core/actions/commands/reply.rb
@@ -10,13 +10,13 @@ module Aethyr
           end
 
           def action
-            event = @data
-            unless @player.reply_to
-              @player.output "There is no one to reply to."
+
+            unless self[:agent].reply_to
+              self[:agent].output "There is no one to reply to."
               return
             end
 
-            event[:target] = @player.reply_to
+            self[:target] = self[:agent].reply_to
 
             action_tell(event)
           end
diff --git a/lib/aethyr/core/actions/commands/restart.rb b/lib/aethyr/core/actions/commands/restart.rb
index a0bc9a89ef14a0326fc6143119d131500e2d524e..5aa1ce22fe5f816c32b6d22663e37a271f635580 100644
--- a/lib/aethyr/core/actions/commands/restart.rb
+++ b/lib/aethyr/core/actions/commands/restart.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             $manager.restart
           end
 
diff --git a/lib/aethyr/core/actions/commands/satiety.rb b/lib/aethyr/core/actions/commands/satiety.rb
index 62777a5660ed1470642e08337ffdf2a977c0e278..43181253d210659466f715dea3d545d5ac50fe04 100644
--- a/lib/aethyr/core/actions/commands/satiety.rb
+++ b/lib/aethyr/core/actions/commands/satiety.rb
@@ -10,8 +10,8 @@ module Aethyr
           end
 
           def action
-            event = @data
-            @player.output "You are #{@player.satiety}."
+
+            self[:agent].output "You are #{self[:agent].satiety}."
           end
           #Display status.
         end
diff --git a/lib/aethyr/core/actions/commands/say.rb b/lib/aethyr/core/actions/commands/say.rb
index a26d6118151ecb3147b3c489b6d43a0f11d9df3b..9b60ba6b6e304313432e4210eb89676060dd35a6 100644
--- a/lib/aethyr/core/actions/commands/say.rb
+++ b/lib/aethyr/core/actions/commands/say.rb
@@ -10,12 +10,11 @@ module Aethyr
           end
 
           def action
-            event = @data.dup
-            room = $manager.get_object(@player.container)
+            room = $manager.get_object(self[:agent].container)
 
-            phrase = event[:phrase]
-            target = event[:target] && room.find(event[:target])
-            prefix = event[:pre]
+            phrase = self[:phrase]
+            target = self[:target] && room.find(self[:target])
+            prefix = self[:pre]
 
             if prefix
               prefix << ", "
@@ -24,13 +23,13 @@ module Aethyr
             end
 
             if phrase.nil?
-              @player.output("Huh?")
+              self[:agent].output("Huh?")
               return
-            elsif event[:target] and target.nil?
-              @player.output("Say what to whom?")
+            elsif self[:target] and target.nil?
+              self[:agent].output("Say what to whom?")
               return
-            elsif target and target == @player
-              @player.output "Talking to yourself again?"
+            elsif target and target == self[:agent]
+              self[:agent].output "Talking to yourself again?"
               return
             elsif target
               to_clause = " to #{target.name}"
@@ -51,7 +50,7 @@ module Aethyr
               rvoice = "frowns and "
               pvoice = "frown and "
             when /:D$/
-              rvoice = "laughs as #{@player.pronoun} "
+              rvoice = "laughs as #{self[:agent].pronoun} "
               pvoice = "laugh as you "
             else
               rvoice = ""
@@ -78,30 +77,30 @@ module Aethyr
 
             phrase = "<say>\"#{phrase}#{ender}\"</say>"
 
-            event[:message_type] = :chat
-            event[:target] = target
+            self[:message_type] = :chat
+            self[:target] = target
             if target and pvoice == "ask"
-              event[:to_target] = prefix + "#{@player.name} #{rvoice} you, #{phrase}"
-              event[:to_player] = prefix + "you #{pvoice} #{target.name}, #{phrase}"
-              event[:to_other] = prefix + "#{@player.name} #{rvoice} #{target.name}, #{phrase}"
-              event[:to_blind_target] = "Someone asks, #{phrase}"
-              event[:to_blind_other] = "Someone asks, #{phrase}"
-              event[:to_deaf_target] = "#{@player.name} seems to be asking you something."
-              event[:to_deaf_other] = "#{@player.name} seems to be asking #{target.name} something."
+              self[:to_target] = prefix + "#{self[:agent].name} #{rvoice} you, #{phrase}"
+              self[:to_player] = prefix + "you #{pvoice} #{target.name}, #{phrase}"
+              self[:to_other] = prefix + "#{self[:agent].name} #{rvoice} #{target.name}, #{phrase}"
+              self[:to_blind_target] = "Someone asks, #{phrase}"
+              self[:to_blind_other] = "Someone asks, #{phrase}"
+              self[:to_deaf_target] = "#{self[:agent].name} seems to be asking you something."
+              self[:to_deaf_other] = "#{self[:agent].name} seems to be asking #{target.name} something."
             elsif target
-              event[:to_target] = prefix + "#{@player.name} #{rvoice} to you, #{phrase}"
-              event[:to_player] = prefix + "you #{pvoice} to #{target.name}, #{phrase}"
-              event[:to_other] = prefix + "#{@player.name} #{rvoice} to #{target.name}, #{phrase}"
-              event[:to_blind_target] = "Someone #{rvoice}, #{phrase}"
-              event[:to_blind_other] = "Someone #{rvoice}, #{phrase}"
-              event[:to_deaf_target] = "You see #{@player.name} say something to you."
-              event[:to_deaf_other] = "You see #{@player.name} say something to #{target.name}."
+              self[:to_target] = prefix + "#{self[:agent].name} #{rvoice} to you, #{phrase}"
+              self[:to_player] = prefix + "you #{pvoice} to #{target.name}, #{phrase}"
+              self[:to_other] = prefix + "#{self[:agent].name} #{rvoice} to #{target.name}, #{phrase}"
+              self[:to_blind_target] = "Someone #{rvoice}, #{phrase}"
+              self[:to_blind_other] = "Someone #{rvoice}, #{phrase}"
+              self[:to_deaf_target] = "You see #{self[:agent].name} say something to you."
+              self[:to_deaf_other] = "You see #{self[:agent].name} say something to #{target.name}."
             else
-              event[:to_player] = prefix + "you #{pvoice}, #{phrase}"
-              event[:to_other] = prefix + "#{@player.name} #{rvoice}, #{phrase}"
-              event[:to_blind_other] = "Someone #{rvoice}, #{phrase}"
-              event[:to_deaf_target] = "You see #{@player.name} say something."
-              event[:to_deaf_other] = "You see #{@player.name} say something."
+              self[:to_player] = prefix + "you #{pvoice}, #{phrase}"
+              self[:to_other] = prefix + "#{self[:agent].name} #{rvoice}, #{phrase}"
+              self[:to_blind_other] = "Someone #{rvoice}, #{phrase}"
+              self[:to_deaf_target] = "You see #{self[:agent].name} say something."
+              self[:to_deaf_other] = "You see #{self[:agent].name} say something."
             end
 
             room.out_event(event)
diff --git a/lib/aethyr/core/actions/commands/set.rb b/lib/aethyr/core/actions/commands/set.rb
index 0b3692806ee16d081924580752e3d59a77fe45c9..dfa89daa151cadcf6ef1ffd0b756afa6175014dd 100644
--- a/lib/aethyr/core/actions/commands/set.rb
+++ b/lib/aethyr/core/actions/commands/set.rb
@@ -10,14 +10,14 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
-            event[:setting].downcase!
-            case event[:setting]
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            self[:setting].downcase!
+            case self[:setting]
             when 'wordwrap'
-              value = event[:value]
+              value = self[:value]
               if player.word_wrap.nil?
                 player.output("Word wrap is currently off.", true)
               else
@@ -43,7 +43,7 @@ module Aethyr
                 end
               end
             when 'pagelength', "page_length"
-              value = event[:value]
+              value = self[:value]
               if player.page_height.nil?
                 player.output("Pagination is currently off.", true)
               else
@@ -77,7 +77,7 @@ module Aethyr
                 player.output("Set description to:\r\n#{player.long_desc}")
               end
             when "layout"
-              case event[:value].downcase
+              case self[:value].downcase
               when "basic"
                 player.layout = :basic
               when "partial"
@@ -90,7 +90,7 @@ module Aethyr
                 player.output "#{value} is not a valid layout please set one of the following: basic, partial, full, wide."
               end
             else
-              player.output "No such setting: #{event[:setting]}"
+              player.output "No such setting: #{self[:setting]}"
             end
           end
 
diff --git a/lib/aethyr/core/actions/commands/setcolor.rb b/lib/aethyr/core/actions/commands/setcolor.rb
index 798431939c1aad4578520ab8f987fe1383afb4ed..d790c3714459768e876bd60c98d9360f8e227981 100644
--- a/lib/aethyr/core/actions/commands/setcolor.rb
+++ b/lib/aethyr/core/actions/commands/setcolor.rb
@@ -10,21 +10,21 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
-            if event[:option] == "off"
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            if self[:option] == "off"
               player.io.use_color = false
               player.output "Colors disabled."
-            elsif event[:option] == "on"
+            elsif self[:option] == "on"
               player.io.use_color = true
               player.output "Colors enabled."
-            elsif event[:option] == "default"
+            elsif self[:option] == "default"
               player.io.to_default
               player.output "Colors set to defaults."
             else
-              player.output player.io.set_color(event[:option], event[:color])
+              player.output player.io.set_color(self[:option], self[:color])
             end
           end
 
diff --git a/lib/aethyr/core/actions/commands/setpassword.rb b/lib/aethyr/core/actions/commands/setpassword.rb
index dfb6fcd616f556435b222ddc3c2cb422b74f265e..433e8b09d1b1ebb3c916779201c354e9643c033d 100644
--- a/lib/aethyr/core/actions/commands/setpassword.rb
+++ b/lib/aethyr/core/actions/commands/setpassword.rb
@@ -10,16 +10,16 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
-            if event[:new_password]
-              if event[:new_password] !~ /^\w{6,20}$/
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            if self[:new_password]
+              if self[:new_password] !~ /^\w{6,20}$/
                 player.output "Please only use letters and numbers. Password should be between 6 and 20 characters long."
                 return
               else
-                $manager.set_password(player, event[:new_password])
+                $manager.set_password(player, self[:new_password])
                 player.output "Your password has been changed."
               end
             else
@@ -31,7 +31,7 @@ module Aethyr
                   player.io.echo_off
                   player.expect do |password|
                     player.io.echo_on
-                    event[:new_password] = password
+                    self[:new_password] = password
                     Settings.setpassword(event, player, room)
                   end
                 else
diff --git a/lib/aethyr/core/actions/commands/showcolors.rb b/lib/aethyr/core/actions/commands/showcolors.rb
index 3606bd403bba40c45ede292be244e9c032ac57ef..8bdd110b7536e22a188acd19cdbee854f11aef83 100644
--- a/lib/aethyr/core/actions/commands/showcolors.rb
+++ b/lib/aethyr/core/actions/commands/showcolors.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             player.output player.io.display.show_color_config
           end
 
diff --git a/lib/aethyr/core/actions/commands/simple_block.rb b/lib/aethyr/core/actions/commands/simple_block.rb
index da58f6f448226f8ab7a59657a492621b4a331338..b1451bc1a23c8a705b5aeb5928596093df73f30e 100644
--- a/lib/aethyr/core/actions/commands/simple_block.rb
+++ b/lib/aethyr/core/actions/commands/simple_block.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             return if not Combat.ready? player
 
@@ -47,17 +47,17 @@ module Aethyr
 
             b_event = events[0]
             if rand > 0.5
-              b_event[:action] = :weapon_block
-              b_event[:type] = :WeaponCombat
-              b_event[:to_other] = "#{player.name} deftly blocks #{target.name}'s attack with #{weapon.name}."
-              b_event[:to_player] = "#{player.name} deftly blocks your attack with #{weapon.name}."
-              b_event[:to_target] = "You deftly block #{target.name}'s attack with #{weapon.name}."
+              b_self[:action] = :weapon_block
+              b_self[:type] = :WeaponCombat
+              b_self[:to_other] = "#{player.name} deftly blocks #{target.name}'s attack with #{weapon.name}."
+              b_self[:to_player] = "#{player.name} deftly blocks your attack with #{weapon.name}."
+              b_self[:to_target] = "You deftly block #{target.name}'s attack with #{weapon.name}."
             end
 
-            event[:target] = target
-            event[:to_other] = "#{player.name} raises #{player.pronoun(:possessive)} #{weapon.generic} to block #{target.name}'s attack."
-            event[:to_target] = "#{player.name} raises #{player.pronoun(:possessive)} #{weapon.generic} to block your attack."
-            event[:to_player] = "You raise your #{weapon.generic} to block #{target.name}'s attack."
+            self[:target] = target
+            self[:to_other] = "#{player.name} raises #{player.pronoun(:possessive)} #{weapon.generic} to block #{target.name}'s attack."
+            self[:to_target] = "#{player.name} raises #{player.pronoun(:possessive)} #{weapon.generic} to block your attack."
+            self[:to_player] = "You raise your #{weapon.generic} to block #{target.name}'s attack."
 
             player.balance = false
             room.out_event event
diff --git a/lib/aethyr/core/actions/commands/simple_dodge.rb b/lib/aethyr/core/actions/commands/simple_dodge.rb
index a8c1ec907b06164519a3b2b32fd2ab4358f41482..1b993fc0cf1a98eb4538dfe86b2bdec6549aed2d 100644
--- a/lib/aethyr/core/actions/commands/simple_dodge.rb
+++ b/lib/aethyr/core/actions/commands/simple_dodge.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             return unless Combat.ready? player
 
             target = (event.target && room.find(event.target)) || room.find(player.last_target)
@@ -40,17 +40,17 @@ module Aethyr
 
             b_event = events[0]
             if rand > 0.5
-              b_event[:action] = :martial_miss
-              b_event[:type] = :MartialCombat
-              b_event[:to_other] = "#{player.name} twists away from #{target.name}'s attack."
-              b_event[:to_player] = "#{player.name} twists away from your attack."
-              b_event[:to_target] = "You manage to twist your body away from #{target.name}'s attack."
+              b_self[:action] = :martial_miss
+              b_self[:type] = :MartialCombat
+              b_self[:to_other] = "#{player.name} twists away from #{target.name}'s attack."
+              b_self[:to_player] = "#{player.name} twists away from your attack."
+              b_self[:to_target] = "You manage to twist your body away from #{target.name}'s attack."
             end
 
-            event[:target] = target
-            event[:to_other] = "#{player.name} attempts to dodge #{target.name}'s attack."
-            event[:to_target] = "#{player.name} attempts to dodge your attack."
-            event[:to_player] = "You attempt to dodge #{target.name}'s attack."
+            self[:target] = target
+            self[:to_other] = "#{player.name} attempts to dodge #{target.name}'s attack."
+            self[:to_target] = "#{player.name} attempts to dodge your attack."
+            self[:to_player] = "You attempt to dodge #{target.name}'s attack."
 
             player.balance = false
             room.out_event event
diff --git a/lib/aethyr/core/actions/commands/sit.rb b/lib/aethyr/core/actions/commands/sit.rb
index 74ee9a6e1c620ae2f2134b2068dc41b1f8ab2d8c..b64ea2841eea32b3b83e358b22bde6ee697d04d8 100644
--- a/lib/aethyr/core/actions/commands/sit.rb
+++ b/lib/aethyr/core/actions/commands/sit.rb
@@ -10,31 +10,31 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             if not player.balance
               player.output "You cannot sit properly while unbalanced."
               return
-            elsif event[:object].nil?
+            elsif self[:object].nil?
               if player.sitting?
                 player.output('You are already sitting down.')
               elsif player.prone? and player.sit
-                event[:to_player] = 'You stand up then sit on the ground.'
-                event[:to_other] = "#{player.name} stands up then sits down on the ground."
-                event[:to_deaf_other] = event[:to_other]
+                self[:to_player] = 'You stand up then sit on the ground.'
+                self[:to_other] = "#{player.name} stands up then sits down on the ground."
+                self[:to_deaf_other] = self[:to_other]
                 room.output(event)
               elsif player.sit
-                event[:to_player] = 'You sit down on the ground.'
-                event[:to_other] = "#{player.name} sits down on the ground."
-                event[:to_deaf_other] = event[:to_other]
+                self[:to_player] = 'You sit down on the ground.'
+                self[:to_other] = "#{player.name} sits down on the ground."
+                self[:to_deaf_other] = self[:to_other]
                 room.out_event(event)
               else
                 player.output('You are unable to sit down.')
               end
             else
-              object = $manager.find(event[:object], player.room)
+              object = $manager.find(self[:object], player.room)
 
               if object.nil?
                 player.output('What do you want to sit on?')
@@ -46,9 +46,9 @@ module Aethyr
                 player.output("The #{object.generic} #{object.plural? ? "are" : "is"} already occupied.")
               elsif player.sit(object)
                 object.sat_on_by(player)
-                event[:to_player] = "You sit down on #{object.name}."
-                event[:to_other] = "#{player.name} sits down on #{object.name}."
-                event[:to_deaf_other] = event[:to_other]
+                self[:to_player] = "You sit down on #{object.name}."
+                self[:to_other] = "#{player.name} sits down on #{object.name}."
+                self[:to_deaf_other] = self[:to_other]
                 room.out_event(event)
               else
                 player.output('You are unable to sit down.')
diff --git a/lib/aethyr/core/actions/commands/skills.rb b/lib/aethyr/core/actions/commands/skills.rb
index 1a60014b0f970a3f1f7ce24e259a0c783a617378..bb74575aaa41932061bba234231293eeede89f17 100644
--- a/lib/aethyr/core/actions/commands/skills.rb
+++ b/lib/aethyr/core/actions/commands/skills.rb
@@ -11,11 +11,11 @@ module Aethyr
           end
 
           def action
-            event = @data
+
             box_width = 25
             box_work_width = box_width - 2
-            width = @player.word_wrap
-            width = 200 if @player.word_wrap.nil?
+            width = self[:agent].word_wrap
+            width = 200 if self[:agent].word_wrap.nil?
             boxes_per_row = width / box_width
 
             box_top = "┌" + ("─" * box_work_width) + "┐\n"
@@ -24,7 +24,7 @@ module Aethyr
             output = ""
             text_format = "%-#{box_work_width}.#{box_work_width}s"
             text_format_right = "%#{box_work_width}.#{box_work_width}s"
-            @player.info.skills.each do |id, skill|
+            self[:agent].info.skills.each do |id, skill|
 
               output += box_top
 
@@ -54,7 +54,7 @@ module Aethyr
 
               output += box_bottom + "\n"
             end
-            @player.output(output)
+            self[:agent].output(output)
           end
 
           private
diff --git a/lib/aethyr/core/actions/commands/slash.rb b/lib/aethyr/core/actions/commands/slash.rb
index 07b63c6a56777df94783fbaf463ba4a1a4589cdb..68cc61ae7e8b1d85d3b3c2514c3f61d7d89cfc30 100644
--- a/lib/aethyr/core/actions/commands/slash.rb
+++ b/lib/aethyr/core/actions/commands/slash.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
 
             return if not Combat.ready? player
 
@@ -36,11 +36,11 @@ module Aethyr
 
             event.target = target
 
-            event[:to_other] = "#{weapon.name} flashes as #{player.name} swings it at #{target.name}."
-            event[:to_target] = "#{weapon.name} flashes as #{player.name} swings it towards you."
-            event[:to_player] = "#{weapon.name} flashes as you swing it towards #{target.name}."
-            event[:attack_weapon] = weapon
-            event[:blockable] = true
+            self[:to_other] = "#{weapon.name} flashes as #{player.name} swings it at #{target.name}."
+            self[:to_target] = "#{weapon.name} flashes as #{player.name} swings it towards you."
+            self[:to_player] = "#{weapon.name} flashes as you swing it towards #{target.name}."
+            self[:attack_weapon] = weapon
+            self[:blockable] = true
 
             player.balance = false
             player.info.in_combat = true
@@ -48,11 +48,11 @@ module Aethyr
 
             room.out_event event
 
-            event[:action] = :weapon_hit
-            event[:combat_action] = :slash
-            event[:to_other] = "#{player.name} slashes across #{target.name}'s torso with #{weapon.name}."
-            event[:to_target] = "#{player.name} slashes across your torso with #{weapon.name}."
-            event[:to_player] = "You slash across #{target.name}'s torso with #{weapon.name}."
+            self[:action] = :weapon_hit
+            self[:combat_action] = :slash
+            self[:to_other] = "#{player.name} slashes across #{target.name}'s torso with #{weapon.name}."
+            self[:to_target] = "#{player.name} slashes across your torso with #{weapon.name}."
+            self[:to_player] = "You slash across #{target.name}'s torso with #{weapon.name}."
 
             Combat.future_event event
 
diff --git a/lib/aethyr/core/actions/commands/smell.rb b/lib/aethyr/core/actions/commands/smell.rb
index accfd60eca1d42287794e00c0733d4604c84b426..c5537b3e203a6e9878a1614baa68204c508850ef 100644
--- a/lib/aethyr/core/actions/commands/smell.rb
+++ b/lib/aethyr/core/actions/commands/smell.rb
@@ -10,47 +10,47 @@ module Aethyr
           end
 
           def action
-            event = @data.dup
-            room = $manager.get_object(@player.container)
-            if event[:target].nil?
+
+            room = $manager.get_object(self[:agent].container)
+            if self[:target].nil?
               if room.info.smell
-                event[:to_player] = "You sniff the air. #{room.info.smell}."
+                self[:to_player] = "You sniff the air. #{room.info.smell}."
               else
-                event[:to_player] = "You sniff the air, but detect no unusual aromas."
+                self[:to_player] = "You sniff the air, but detect no unusual aromas."
               end
-              event[:to_other] = "#{@player.name} sniffs the air."
+              self[:to_other] = "#{self[:agent].name} sniffs the air."
               room.out_event event
               return
             end
 
-            object = @player.search_inv(event[:target]) || room.find(event[:target])
+            object = self[:agent].search_inv(self[:target]) || room.find(self[:target])
 
-            if object == @player or event[:target] == "me"
-              event[:target] = @player
-              event[:to_player] = "You cautiously sniff your armpits. "
+            if object == self[:agent] or self[:target] == "me"
+              self[:target] = self[:agent]
+              self[:to_player] = "You cautiously sniff your armpits. "
               if rand > 0.6
-                event[:to_player] << "Your head snaps back from the revolting stench coming from beneath your arms."
-                event[:to_other] = "#{@player.name} sniffs #{@player.pronoun(:possessive)} armpits, then recoils in horror."
+                self[:to_player] << "Your head snaps back from the revolting stench coming from beneath your arms."
+                self[:to_other] = "#{self[:agent].name} sniffs #{self[:agent].pronoun(:possessive)} armpits, then recoils in horror."
               else
-                event[:to_player] << "Meh, not too bad."
-                event[:to_other] = "#{@player.name} sniffs #{@player.pronoun(:possessive)} armpits, then shrugs, apparently unconcerned with #{@player.pronoun(:possessive)} current smell."
+                self[:to_player] << "Meh, not too bad."
+                self[:to_other] = "#{self[:agent].name} sniffs #{self[:agent].pronoun(:possessive)} armpits, then shrugs, apparently unconcerned with #{self[:agent].pronoun(:possessive)} current smell."
               end
               room.out_event event
               return
             elsif object.nil?
-              @player.output "What are you trying to smell?"
+              self[:agent].output "What are you trying to smell?"
               return
             end
 
-            event[:target] = object
-            event[:to_player] = "Leaning in slightly, you sniff #{object.name}. "
+            self[:target] = object
+            self[:to_player] = "Leaning in slightly, you sniff #{object.name}. "
             if object.info.smell.nil? or object.info.smell == ""
-              event[:to_player] << "#{object.pronoun.capitalize} has no particular aroma."
+              self[:to_player] << "#{object.pronoun.capitalize} has no particular aroma."
             else
-              event[:to_player] << object.info.smell
+              self[:to_player] << object.info.smell
             end
-            event[:to_target] = "#{@player.name} sniffs you curiously."
-            event[:to_other] = "#{@player.name} thrusts #{@player.pronoun(:possessive)} nose at #{object.name} and sniffs."
+            self[:to_target] = "#{self[:agent].name} sniffs you curiously."
+            self[:to_other] = "#{self[:agent].name} thrusts #{self[:agent].pronoun(:possessive)} nose at #{object.name} and sniffs."
             room.out_event event
           end
         end
diff --git a/lib/aethyr/core/actions/commands/stand.rb b/lib/aethyr/core/actions/commands/stand.rb
index bcdf67e341f16e7d4950278b19af6627b5efe16d..11478fef80b152c7d9158c9ab43c353f93a1e202 100644
--- a/lib/aethyr/core/actions/commands/stand.rb
+++ b/lib/aethyr/core/actions/commands/stand.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             if not player.prone?
               player.output('You are already on your feet.')
               return
@@ -29,9 +29,9 @@ module Aethyr
             end
 
             if player.stand
-              event[:to_player] = 'You rise to your feet.'
-              event[:to_other] = "#{player.name} stands up."
-              event[:to_deaf_other] = event[:to_other]
+              self[:to_player] = 'You rise to your feet.'
+              self[:to_other] = "#{player.name} stands up."
+              self[:to_deaf_other] = self[:to_other]
               room.out_event(event)
               object.evacuated_by(player) unless object.nil?
             else
diff --git a/lib/aethyr/core/actions/commands/status.rb b/lib/aethyr/core/actions/commands/status.rb
index 0c7d93bb6cb9c14454eb6ca9d490b495df56dffb..67666e6d9da470dd95e5aa51bdf089c48be41661 100644
--- a/lib/aethyr/core/actions/commands/status.rb
+++ b/lib/aethyr/core/actions/commands/status.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
-            @player.output("You are #{@player.health}.")
-            @player.output("You are feeling #{@player.satiety}.")
-            @player.output "You are currently #{@player.pose || 'standing up'}."
+
+            self[:agent].output("You are #{self[:agent].health}.")
+            self[:agent].output("You are feeling #{self[:agent].satiety}.")
+            self[:agent].output "You are currently #{self[:agent].pose || 'standing up'}."
           end
           #Fill something.
         end
diff --git a/lib/aethyr/core/actions/commands/taste.rb b/lib/aethyr/core/actions/commands/taste.rb
index bb7ba8ebe2dbf431f7fde0f29318d654653c392e..7e399ecbbc390d87baf59399ccebd9d613e1f8bd 100644
--- a/lib/aethyr/core/actions/commands/taste.rb
+++ b/lib/aethyr/core/actions/commands/taste.rb
@@ -10,27 +10,27 @@ module Aethyr
           end
 
           def action
-            event = @data
-            room = $manager.get_object(@player.container)
-            object = @player.search_inv(event[:target]) || room.find(event[:target])
 
-            if object == @player or event[:target] == "me"
-              @player.output "You covertly lick yourself.\nHmm, not bad."
+            room = $manager.get_object(self[:agent].container)
+            object = self[:agent].search_inv(self[:target]) || room.find(self[:target])
+
+            if object == self[:agent] or self[:target] == "me"
+              self[:agent].output "You covertly lick yourself.\nHmm, not bad."
               return
             elsif object.nil?
-              @player.output "What would you like to taste?"
+              self[:agent].output "What would you like to taste?"
               return
             end
 
-            event[:target] = object
-            event[:to_player] = "Sticking your tongue out hesitantly, you taste #{object.name}. "
+            self[:target] = object
+            self[:to_player] = "Sticking your tongue out hesitantly, you taste #{object.name}. "
             if object.info.taste.nil? or object.info.taste == ""
-              event[:to_player] << "#{object.pronoun.capitalize} does not taste that great, but has no particular flavor."
+              self[:to_player] << "#{object.pronoun.capitalize} does not taste that great, but has no particular flavor."
             else
-              event[:to_player] << object.info.taste
+              self[:to_player] << object.info.taste
             end
-            event[:to_target] = "#{@player.name} licks you, apparently in an attempt to find out your flavor."
-            event[:to_other] = "#{@player.name} hesitantly sticks out #{@player.pronoun(:possessive)} tongue and licks #{object.name}."
+            self[:to_target] = "#{self[:agent].name} licks you, apparently in an attempt to find out your flavor."
+            self[:to_other] = "#{self[:agent].name} hesitantly sticks out #{self[:agent].pronoun(:possessive)} tongue and licks #{object.name}."
             room.out_event event
           end
         end
diff --git a/lib/aethyr/core/actions/commands/tell.rb b/lib/aethyr/core/actions/commands/tell.rb
index e71175261824329a96c3f6c2c26816271077f5e2..c46818a6a0f3cb1d4b23bebbef1d7996b747523e 100644
--- a/lib/aethyr/core/actions/commands/tell.rb
+++ b/lib/aethyr/core/actions/commands/tell.rb
@@ -10,19 +10,19 @@ module Aethyr
           end
 
           def action
-            event = @data
-            target = $manager.find event[:target]
+
+            target = $manager.find self[:target]
             unless target and target.is_a? Player
-              @player.output "That person is not available."
+              self[:agent].output "That person is not available."
               return
             end
 
-            if target == @player
-              @player.output "Talking to yourself?"
+            if target == self[:agent]
+              self[:agent].output "Talking to yourself?"
               return
             end
 
-            phrase = event[:message]
+            phrase = self[:message]
 
             last_char = phrase[-1..-1]
 
@@ -33,9 +33,9 @@ module Aethyr
             phrase[0,1] = phrase[0,1].upcase
             phrase = phrase.strip.gsub(/\s{2,}/, ' ')
 
-            @player.output "You tell #{target.name}, <tell>\"#{phrase}\"</tell>"
-            target.output "#{@player.name} tells you, <tell>\"#{phrase}\"</tell>"
-            target.reply_to = @player.name
+            self[:agent].output "You tell #{target.name}, <tell>\"#{phrase}\"</tell>"
+            target.output "#{self[:agent].name} tells you, <tell>\"#{phrase}\"</tell>"
+            target.reply_to = self[:agent].name
           end
 
           #Reply to a tell.
diff --git a/lib/aethyr/core/actions/commands/terrain.rb b/lib/aethyr/core/actions/commands/terrain.rb
index f76044f5a969e76da41a6f7385fad969ec8bd9fb..4ca583df58a1ac704a03a44ad3cbef048497cbd9 100644
--- a/lib/aethyr/core/actions/commands/terrain.rb
+++ b/lib/aethyr/core/actions/commands/terrain.rb
@@ -10,52 +10,52 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
-            if event[:target] == "area"
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            if self[:target] == "area"
               if room.area.nil?
                 player.output "This room is not in an area."
                 return
               end
 
-              room.area.info.terrain.area_type = event[:value].downcase.to_sym
+              room.area.info.terrain.area_type = self[:value].downcase.to_sym
 
               player.output "Set #{room.area.name} terrain type to #{room.area.info.terrain.area_type}"
 
               return
             end
 
-            case event[:setting].downcase
+            case self[:setting].downcase
             when "type"
-              room.info.terrain.room_type = event[:value].downcase.to_sym
+              room.info.terrain.room_type = self[:value].downcase.to_sym
               player.output "Set #{room.name} terrain type to #{room.info.terrain.room_type}"
             when "indoors"
-              if event[:value] =~ /yes|true/i
+              if self[:value] =~ /yes|true/i
                 room.info.terrain.indoors = true
                 player.output "Room is now indoors."
-              elsif event[:value] =~ /no|false/i
+              elsif self[:value] =~ /no|false/i
                 room.info.terrain.indoors = false
                 player.output "Room is now outdoors."
               else
                 player.output "Indoors: yes or no?"
               end
             when "water"
-              if event[:value] =~ /yes|true/i
+              if self[:value] =~ /yes|true/i
                 room.info.terrain.water = true
                 player.output "Room is now water."
-              elsif event[:value] =~ /no|false/i
+              elsif self[:value] =~ /no|false/i
                 room.info.terrain.water = false
                 player.output "Room is now dry."
               else
                 player.output "Water: yes or no?"
               end
             when "underwater"
-              if event[:value] =~ /yes|true/i
+              if self[:value] =~ /yes|true/i
                 room.info.terrain.underwater = true
                 player.output "Room is now underwater."
-              elsif event[:value] =~ /no|false/i
+              elsif self[:value] =~ /no|false/i
                 room.info.terrain.underwater = false
                 player.output "Room is now above water."
               else
diff --git a/lib/aethyr/core/actions/commands/time.rb b/lib/aethyr/core/actions/commands/time.rb
index 17a56686fa2769defb3419bf10df73919a06ad95..69a6bff6cc4a8a82c110dc5dc98d13826e87af0e 100644
--- a/lib/aethyr/core/actions/commands/time.rb
+++ b/lib/aethyr/core/actions/commands/time.rb
@@ -10,8 +10,8 @@ module Aethyr
           end
 
           def action
-            event = @data
-            @player.output $manager.time
+
+            self[:agent].output $manager.time
           end
 
           #Display date.
diff --git a/lib/aethyr/core/actions/commands/unlock.rb b/lib/aethyr/core/actions/commands/unlock.rb
index 34eb204bc5aab9c0a2d438ab5091905ecda67038..c4b26c924c775bd4372d563a68ec99d5f262d2ed 100644
--- a/lib/aethyr/core/actions/commands/unlock.rb
+++ b/lib/aethyr/core/actions/commands/unlock.rb
@@ -10,35 +10,35 @@ module Aethyr
           end
 
           def action
-            event = @data
-            room = $manager.get_object(@player.container)
-            object = @player.search_inv(event[:object]) || room.find(event[:object])
+
+            room = $manager.get_object(self[:agent].container)
+            object = self[:agent].search_inv(self[:object]) || room.find(self[:object])
 
             if object.nil?
-              @player.output("Unlock what? #{event[:object]}?")
+              self[:agent].output("Unlock what? #{self[:object]}?")
               return
             elsif not object.can? :unlock or not object.lockable?
-              @player.output('That object cannot be unlocked.')
+              self[:agent].output('That object cannot be unlocked.')
               return
             elsif not object.locked?
-              @player.output("#{object.name} is already unlocked.")
+              self[:agent].output("#{object.name} is already unlocked.")
               return
             end
 
             has_key = false
             object.keys.each do |key|
-              if @player.inventory.include? key
+              if self[:agent].inventory.include? key
                 has_key = key
                 break
               end
             end
 
-            if has_key or @player.admin
-              status = object.unlock(has_key, @player.admin)
+            if has_key or self[:agent].admin
+              status = object.unlock(has_key, self[:agent].admin)
               if status
-                event[:to_player] = "You unlock #{object.name}."
-                event[:to_other] = "#{@player.name} unlocks #{object.name}."
-                event[:to_blind_other] = "You hear the clunk of a lock."
+                self[:to_player] = "You unlock #{object.name}."
+                self[:to_other] = "#{self[:agent].name} unlocks #{object.name}."
+                self[:to_blind_other] = "You hear the clunk of a lock."
 
                 room.out_event(event)
 
@@ -47,18 +47,18 @@ module Aethyr
                   other_side.unlock(has_key)
                   other_room = $manager.find other_side.container
                   o_event = event.dup
-                  event[:to_other] = "#{other_side.name} unlocks from the other side."
-                  event[:to_blind_other] = "You hear the click of a lock."
+                  self[:to_other] = "#{other_side.name} unlocks from the other side."
+                  self[:to_blind_other] = "You hear the click of a lock."
                   other_room.out_event(event)
                 end
 
                 return
               else
-                @player.output("You are unable to unlock #{object.name}.")
+                self[:agent].output("You are unable to unlock #{object.name}.")
                 return
               end
             else
-              @player.output("You do not have the key to #{object.name}.")
+              self[:agent].output("You do not have the key to #{object.name}.")
               return
             end
           end
diff --git a/lib/aethyr/core/actions/commands/unwield.rb b/lib/aethyr/core/actions/commands/unwield.rb
index 496ed9cb6e637feaaf7356a38858d1a34c1aa742..fff8b61350fb35f77664d90c0dc88f673ccb6b78 100644
--- a/lib/aethyr/core/actions/commands/unwield.rb
+++ b/lib/aethyr/core/actions/commands/unwield.rb
@@ -10,26 +10,26 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
 
-            if event[:weapon] == "right" || event[:weapon] == "left"
-              weapon = player.equipment.get_wielded(event[:weapon])
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+
+            if self[:weapon] == "right" || self[:weapon] == "left"
+              weapon = player.equipment.get_wielded(self[:weapon])
 
               if weapon.nil?
-                player.output "You are not wielding anything in your #{event[:weapon]} hand."
+                player.output "You are not wielding anything in your #{self[:weapon]} hand."
                 return
               end
-            elsif event[:weapon].nil?
+            elsif self[:weapon].nil?
               weapon = player.equipment.get_wielded
               if weapon.nil?
                 player.output "You are not wielding anything."
                 return
               end
             else
-              weapon = player.equipment.find(event[:weapon])
+              weapon = player.equipment.find(self[:weapon])
 
               if weapon.nil?
                 player.output "What are you trying to unwield?"
@@ -45,8 +45,8 @@ module Aethyr
 
             if player.equipment.remove(weapon)
               player.inventory << weapon
-              event[:to_player] = "You unwield #{weapon.name}."
-              event[:to_other] = "#{player.name} unwields #{weapon.name}."
+              self[:to_player] = "You unwield #{weapon.name}."
+              self[:to_other] = "#{player.name} unwields #{weapon.name}."
               room.out_event(event)
             else
               player.output "Could not unwield #{weapon.name}."
diff --git a/lib/aethyr/core/actions/commands/wear.rb b/lib/aethyr/core/actions/commands/wear.rb
index 452aeab114b21250ebdc81d82ae7717d2265fccc..d73f57b55e5f0599eca2b1eaf0fa134785aa257d 100644
--- a/lib/aethyr/core/actions/commands/wear.rb
+++ b/lib/aethyr/core/actions/commands/wear.rb
@@ -10,15 +10,15 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
 
-            object = player.inventory.find(event[:object])
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+
+            object = player.inventory.find(self[:object])
 
             if object.nil?
-              player.output("What #{event[:object]} are you trying to wear?")
+              player.output("What #{self[:object]} are you trying to wear?")
               return
             elsif object.is_a? Weapon
               player.output "You must wield #{object.name}."
@@ -26,8 +26,8 @@ module Aethyr
             end
 
             if player.wear object
-              event[:to_player] = "You put on #{object.name}."
-              event[:to_other] = "#{player.name} puts on #{object.name}."
+              self[:to_player] = "You put on #{object.name}."
+              self[:to_other] = "#{player.name} puts on #{object.name}."
               room.out_event(event)
             end
           end
diff --git a/lib/aethyr/core/actions/commands/whereis.rb b/lib/aethyr/core/actions/commands/whereis.rb
index 0263080bbac44d65d1a0697884506e03c4d29223..cfbf5a7a212e6d2183b872d54b1dcced8f0318fd 100644
--- a/lib/aethyr/core/actions/commands/whereis.rb
+++ b/lib/aethyr/core/actions/commands/whereis.rb
@@ -10,14 +10,14 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
-            object = find_object(event[:object], event)
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            object = find_object(self[:object], event)
 
             if object.nil?
-              player.output "Could not find #{event[:object]}."
+              player.output "Could not find #{self[:object]}."
               return
             end
 
@@ -34,7 +34,7 @@ module Aethyr
                 player.output "Container for #{object} not found."
               else
                 player.output "#{object} is in #{container}."
-                event[:object] = container.goid
+                self[:object] = container.goid
                 whereis(event, player, room)
               end
             end
diff --git a/lib/aethyr/core/actions/commands/whisper.rb b/lib/aethyr/core/actions/commands/whisper.rb
index 9336f8992b28da21bc6fb4b9fb030b744fe236ae..fc61a7e8729d65e46c681115e3070b1eac244cf9 100644
--- a/lib/aethyr/core/actions/commands/whisper.rb
+++ b/lib/aethyr/core/actions/commands/whisper.rb
@@ -10,28 +10,28 @@ module Aethyr
           end
 
           def action
-            event = @data
-            room = $manager.get_object(@player.container)
-            object = room.find(event[:to], Player)
+
+            room = $manager.get_object(self[:agent].container)
+            object = room.find(self[:to], Player)
 
             if object.nil?
-              @player.output("To whom are you trying to whisper?")
+              self[:agent].output("To whom are you trying to whisper?")
               return
-            elsif object == @player
-              @player.output("Whispering to yourself again?")
-              event[:to_other] = "#{@player.name} whispers to #{@player.pronoun(:reflexive)}."
-              room.out_event(event, @player)
+            elsif object == self[:agent]
+              self[:agent].output("Whispering to yourself again?")
+              self[:to_other] = "#{self[:agent].name} whispers to #{self[:agent].pronoun(:reflexive)}."
+              room.out_event(event, self[:agent])
               return
             end
 
-            phrase = event[:phrase]
+            phrase = self[:phrase]
 
             if phrase.nil?
-              @player.ouput "What are you trying to whisper?"
+              self[:agent].ouput "What are you trying to whisper?"
               return
             end
 
-            prefix = event[:pre]
+            prefix = self[:pre]
 
             if prefix
               prefix << ", "
@@ -49,12 +49,12 @@ module Aethyr
 
             phrase = ", <say>\"#{phrase}#{ender}\"</say>"
 
-            event[:target] = object
-            event[:to_player] = prefix + "you whisper to #{object.name}#{phrase}"
-            event[:to_target] = prefix + "#{@player.name} whispers to you#{phrase}"
-            event[:to_other] = prefix + "#{@player.name} whispers quietly into #{object.name}'s ear."
-            event[:to_other_blind] = "#{@player.name} whispers."
-            event[:to_target_blind] = "Someone whispers to you#{phrase}"
+            self[:target] = object
+            self[:to_player] = prefix + "you whisper to #{object.name}#{phrase}"
+            self[:to_target] = prefix + "#{self[:agent].name} whispers to you#{phrase}"
+            self[:to_other] = prefix + "#{self[:agent].name} whispers quietly into #{object.name}'s ear."
+            self[:to_other_blind] = "#{self[:agent].name} whispers."
+            self[:to_target_blind] = "Someone whispers to you#{phrase}"
 
             room.out_event(event)
           end
diff --git a/lib/aethyr/core/actions/commands/who.rb b/lib/aethyr/core/actions/commands/who.rb
index f10ef4de617a8ad7a723a0cdfc07b4a5485d6887..642c07170a8372618630df555f254738f192e60e 100644
--- a/lib/aethyr/core/actions/commands/who.rb
+++ b/lib/aethyr/core/actions/commands/who.rb
@@ -10,7 +10,7 @@ module Aethyr
           end
 
           def action
-            event = @data
+
             players = $manager.find_all("class", Player)
             output = ["The following people are visiting Aethyr:"]
             players.sort_by {|p| p.name}.each do |playa|
@@ -18,7 +18,7 @@ module Aethyr
               output << "#{playa.name} - #{room.name if room}"
             end
 
-            @player.output output
+            self[:agent].output output
           end
           #Delete your player.
         end
diff --git a/lib/aethyr/core/actions/commands/wield.rb b/lib/aethyr/core/actions/commands/wield.rb
index 90e8dc616b451579d98afed9002dea28ab5de9e9..fe6a9b7cea3d1b2ebf3594633a0ff1417e820998 100644
--- a/lib/aethyr/core/actions/commands/wield.rb
+++ b/lib/aethyr/core/actions/commands/wield.rb
@@ -10,13 +10,13 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
-            weapon = player.inventory.find(event[:weapon])
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
+            weapon = player.inventory.find(self[:weapon])
             if weapon.nil?
-              weapon = player.equipment.find(event[:weapon])
+              weapon = player.equipment.find(self[:weapon])
               if weapon and player.equipment.get_all_wielded.include? weapon
                 player.output "You are already wielding that."
               else
@@ -30,8 +30,8 @@ module Aethyr
               return
             end
 
-            if event[:side]
-              side = event[:side]
+            if self[:side]
+              side = self[:side]
               if side != "right" and side != "left"
                 player.output "Which hand?"
                 return
@@ -48,7 +48,7 @@ module Aethyr
                 player.output "You are unable to wield that."
                 return
               end
-              event[:to_player] = "You grip #{weapon.name} firmly in your #{side} hand."
+              self[:to_player] = "You grip #{weapon.name} firmly in your #{side} hand."
             else
               result = player.equipment.check_wield(weapon)
 
@@ -63,11 +63,11 @@ module Aethyr
                 return
               end
 
-              event[:to_player] = "You firmly grip #{weapon.name} and begin to wield it."
+              self[:to_player] = "You firmly grip #{weapon.name} and begin to wield it."
             end
 
             player.inventory.remove weapon
-            event[:to_other] = "#{player.name} wields #{weapon.name}."
+            self[:to_other] = "#{player.name} wields #{weapon.name}."
             room.out_event(event)
           end
 
diff --git a/lib/aethyr/core/actions/commands/write.rb b/lib/aethyr/core/actions/commands/write.rb
index b197e9201816473fb7c6d7e4d3c29b87b7539418..b84f9c086d229f47364459af0d9d15529a332f09 100644
--- a/lib/aethyr/core/actions/commands/write.rb
+++ b/lib/aethyr/core/actions/commands/write.rb
@@ -10,26 +10,26 @@ module Aethyr
           end
 
           def action
-            event = @data
-            object = @player.search_inv(event[:target])
+
+            object = self[:agent].search_inv(self[:target])
 
             if object.nil?
-              @player.output "What do you wish to write on?"
+              self[:agent].output "What do you wish to write on?"
               return
             end
 
             if not object.info.writable
-              @player.output "You cannot write on #{object.name}."
+              self[:agent].output "You cannot write on #{object.name}."
               return
             end
 
-            @player.output "You begin to write on #{object.name}."
+            self[:agent].output "You begin to write on #{object.name}."
 
-            @player.editor(object.readable_text || [], 100) do |data|
+            self[:agent].editor(object.readable_text || [], 100) do |data|
               unless data.nil?
                 object.readable_text = data
               end
-              @player.output "You finish your writing."
+              self[:agent].output "You finish your writing."
             end
           end
         end
diff --git a/lib/aethyr/core/actions/commands/write_post.rb b/lib/aethyr/core/actions/commands/write_post.rb
index cf7c399a2a0a8e25d27bb5c84d187053a9a3a1d7..6dcf0d6ef5c5ce3c70316b0eab7ef21bf0448763 100644
--- a/lib/aethyr/core/actions/commands/write_post.rb
+++ b/lib/aethyr/core/actions/commands/write_post.rb
@@ -10,10 +10,10 @@ module Aethyr
           end
 
           def action
-            event = @data
 
-            room = $manager.get_object(@player.container)
-            player = @player
+
+            room = $manager.get_object(self[:agent].container)
+            player = self[:agent]
             board = find_board(event, room)
 
             if board.nil?
@@ -26,7 +26,7 @@ module Aethyr
             player.expect do |subj|
               player.editor do |message|
                 unless message.nil?
-                  post_id = board.save_post(player, subj, event[:reply_to], message)
+                  post_id = board.save_post(player, subj, self[:reply_to], message)
                   player.output "You have written post ##{post_id}."
                   if board.announce_new
                     area = $manager.get_object(board.container).area