public function __construct($tldCheck = true)
{
$this->checks[] = new NoWhitespace();
$this->checks[] = new Contains('.');
$this->checks[] = new Length(3, null);
$this->tldCheck($tldCheck);
$this->otherParts = new AllOf(new Alnum('-'), new Not(new StartsWith('-')), new OneOf(new Not(new Contains('--')), new AllOf(new StartsWith('xn--'), new Callback(function ($str) {
return mb_substr_count($str, '--') == 1;
}))));
}