this should be a subclass of the events class