refactor the parameter validatin