updated isValid