added revoke_all function