only generate one key