add input parameter validation