How about just making this a method of agent now? (and similarly for event)