implement delete event