basic classes related to events