better keychain semantics