introduce list_event