implement "delete"