fix revoke semantics