add arguments, change authorize_key_gen function