private function generateSelector(): string
    {
        // Make sure the selector is not in use. Such case is very uncommon and rare but can happen.
        $in_use = true;

        while ($in_use == true) {

            // Generate random selector and token
            $this->setSize(6);
            $this->generateRandomToken();

            $selector = bin2hex($this->token);

            // And check if it is already in use
            $in_use = $this->db->count('core_activation_tokens', 'selector = :selector', [
                'selector' => $selector
            ]) > 0;
        }

        $this->selector = $selector;

        return $this->selector;
    }