isvalid defaults to true