improved username validation