add parameter validation