make generate keypair optional