added keypair generation