Move Events into a generic Event struct