added key generator