improved name validation