diff --git a/fireplace/actions.py b/fireplace/actions.py
index <HASH>..<HASH> 100644
--- a/fireplace/actions.py
+++ b/fireplace/actions.py
@@ -79,7 +79,7 @@ class Action:  # Lawsuit
 		return EventListener(self, actions, EventListener.ON, zone=zone, once=True)
 
 	def _broadcast(self, entity, source, at, *args):
-		for event in entity._events:
+		for event in entity.events:
 			if entity.zone == Zone.HAND and not event.in_hand:
 				continue
 			if isinstance(event.trigger, self.__class__) and event.at == at and event.trigger.matches(entity, args):
diff --git a/fireplace/entity.py b/fireplace/entity.py
index <HASH>..<HASH> 100644
--- a/fireplace/entity.py
+++ b/fireplace/entity.py
@@ -13,6 +13,10 @@ class Entity(object):
 		else:
 			self._events = events[:]
 
+	@property
+	def events(self):
+		return self._events
+
 	def _getattr(self, attr, i):
 		i += getattr(self, "_" + attr, 0)
 		for slot in self.slots:
Iterate over Entity.events property

This allows us to define custom events at the entity level