add keychain support