parameter validation, done right