diff --git a/User.php b/User.php
index ea144b7..5fb7307 100644
--- a/User.php
+++ b/User.php
@@ -3,50 +3,126 @@
 
 class User
 {
-        public $username;
-        public $name;
-        public $first_name;
-        public $last_name;
-        public $email;
-        public $organization;
-        public $user_hash;
-        public $password;
-        function __construct()
-        {
-                $this->username = "";
-                $this->name = "";
-                $this->first_name = "";
-                $this->last_name = "";
-                $this->email = "";
-                $this->organization = "";
-                $this->user_hash = "";
-                $this->password = "";
+    public $username;
+    public $first_name;
+    public $last_name;
+    public $organization;
+    public $user_hash;
+    public $password;
+    public $street;
+    public $zip;
+    public $city;
+    public $country;
+    public $email;
+    public $phone;
+    public bool $eula_signed;
+    public bool $privacy_policy_signed;
+
+    function __construct()
+    {
+        $this->username = "";
+        $this->first_name = "";
+        $this->last_name = "";
+        $this->email = "";
+        $this->organization = "";
+        $this->user_hash = "";
+        $this->password = "";
+        $this->city = "";
+        $this->country = "";
+        $this->zip = "";
+        $this->street = "";
+        $this->phone = "";
+        $this->eula_signed = false;
+        $this->privacy_policy_signed = false;
+    }
+
+    function __construct1(object $data)
+    {
+        foreach ($data as $key => $value) {
+            if (array_key_exists($key, (array) $this))
+                $this->{$key} = $value;
         }
+        if (isset($data->password)) $this->set_password($data->password);
+    }
 
-        function __construct6(string $username, string $first_name, string $last_name, string $email, string $password, string $organization)
-        {
-                include 'config.php';
-                $this->username = $username;
-                $this->name = $first_name;
-                $this->first_name = $first_name;
-                $this->last_name = $last_name;
-                $this->email = $email;
-                $this->organization = $organization;
-                $this->set_password($password);
-
+    function init_from_object(object $data)
+    {
+        foreach ($data as $key => $value) {
+            if (array_key_exists($key, (array) $this))
+                $this->{$key} = $value;
         }
+        if (isset($data->password)) $this->set_password($data->password);
+    }
 
-        function set_password(string $password)
-        {
-                include 'config.php';
-                if ($ENCRYPT_PASSWORDS) {
-                        $this->user_hash = "{crypt}" . crypt($password, '$6$' . generateSalt(10) . '$');
-                        # $this->user_hash = "{SHA}" .  base64_encode(sha1($password, true));
-                } else {
-                        $this->user_hash = "{CLEAR}" . $password;
+    function init_from_array(array $data)
+    {
+        foreach ($data as $key => $value) {
+            if (array_key_exists($key, (array) $this)) {
+                if (is_bool(gettype($this->{$key})) && is_string($value))
+                    $this->{$key} = !empty($value);
+                else
+                    $this->{$key} = $value;
+            }
+        }
+        if (!empty($data["password"])) $this->set_password($data["password"]);
+    }
+
+    function __construct6(string $username, string $first_name, string $last_name, string $email, string $password, string $organization)
+    {
+        include 'config.php';
+        $this->username = $username;
+        $this->first_name = $first_name;
+        $this->last_name = $last_name;
+        $this->email = $email;
+        $this->organization = $organization;
+        $this->set_password($password);
+    }
+
+    function set_password(string $password)
+    {
+        include 'config.php';
+        if ($ENCRYPT_PASSWORDS) {
+            $this->user_hash = "{crypt}" . crypt($password, '$6$' . generateSalt(10) . '$');
+            # $this->user_hash = "{SHA}" .  base64_encode(sha1($password, true));
+        } else {
+            $this->user_hash = "{CLEAR}" . $password;
+        }
+        $this->password = $this->user_hash;
+    }
+
+    function to_string()
+    {
+        $tmp_user = $this;
+        $tmp_user->password = "***";
+        $tmp_user->user_hash = "***";
+        return  json_encode($tmp_user);
+    }
+
+    function backup_in_session()
+    {
+        global $_SESSION;
+        foreach ($this as $key => $value) {
+            $_SESSION[$key] = $value;
+        }
+    }
+
+    function to_table() {
+        $table = "<table  style='border: 1px solid #e1e4e8; border-collapse: collapse; width: 100%;'>";
+        foreach ($this as $key => $value) {
+            if ($key != "password" && $key != "user_hash" && !empty($value)) {
+                if (is_bool($value)) {
+                    if ($value) $value = "yes";
+                    else $value = "no";
                 }
-                $this->password = $this->user_hash;
+                $value = str_replace("\r\n", "<br>", $value);
+                $key = str_replace("_", " ", ucfirst($key));
+                $table .= " <tr>
+  <td style='border: 1px solid #e1e4e8; padding: 6px 13px;'><strong>$key</strong></td>
+  <td style='border: 1px solid #e1e4e8; padding: 6px 13px;'>$value</td>
+ </tr>\n";
+            }
         }
-}
-
-?>
\ No newline at end of file
+        $table .= "</table>";
+        return $table;
+    }
+}
\ No newline at end of file
diff --git a/index.php b/index.php
index b019079..d2ae3a1 100755
--- a/index.php
+++ b/index.php
@@ -131,7 +131,7 @@
     $error = "";
 
     $error .= validate_username($user->username);
-    $error .= validate_name($user->name, $FIRST_NAME_VALIDATION_ERROR);
+    $error .= validate_name($user->first_name, $FIRST_NAME_VALIDATION_ERROR);
     $error .= validate_name($user->last_name, $LAST_NAME_VALIDATION_ERROR);
     $error .= validate_email($user->email);
     $error .= validate_password($password);
@@ -145,14 +145,6 @@
     return $error;
 }
 
-function backup_user_in_session($user)
-{
-    $_SESSION['username'] = $user->username;
-    $_SESSION['first_name'] = $user->first_name;
-    $_SESSION['last_name'] = $user->last_name;
-    $_SESSION['email'] = $user->email;
-    $_SESSION['organization'] = $user->organization;
-}
 
 function approve_request(User $user)
 {
@@ -177,10 +169,10 @@
     send_confirmation_email($user->email, $smtp, $url, $user);
     $_SESSION['resend'] = generateRandomString(12);
     $_SESSION['token'] = $token;
-    backup_user_in_session($user);
+    $user->backup_in_session();
     $TEMPLATE = template_path();
     include $TEMPLATE . "confirm_your_email.htm";
-    $log->info("Registration process started for " . user_to_string($user));
+    $log->info("Registration process started for " . $user->to_string());
 }
 
 function recover_form($error = null)
@@ -210,7 +202,10 @@
     if (isset($_POST['type'])) {
         switch ($_POST['type']) {
             case "register":
-                $user = new User($_POST["username"], $_POST["name"], $_POST["last_name"], $_POST["email"], $_POST["password"], $_POST["organization"]);
+                $log->info("Registration request from " . array_to_string($_POST));
+                $user = new User();
+                $user->init_from_array($_POST);
+                $log->info("Registration request from " . $user->to_string());
                 if (redis_inc_ipdata(getClientIP(), "register", true) > $HOURLY_REGISTRATIONS) {
                     include $TEMPLATE . "registration_limit.htm";
                 } else {
@@ -313,12 +308,12 @@
                             }
                         }
                         redis_inc_ipdata(getClientIP(), "register");
-                        $log->info("User registered: " . user_to_string($user));
+                        $log->info("User registered: " . $user->to_string());
                         echo $STRINGS->email_confirmation;
                         if (isset($POST_REGISTER_HOOK)) $POST_REGISTER_HOOK($user);
                         include $TEMPLATE . "mail_confirmed.htm";
                     } else {
-                        $log->error("User registration failed for: " . user_to_string($user));
+                        $log->error("User registration failed for: " . $user->to_string());
                         echo $STRINGS->email_confirmation;
                         include $TEMPLATE . "registration_error.htm";
                     }
diff --git a/ldap.php b/ldap.php
index 8f43c23..3c63d12 100755
--- a/ldap.php
+++ b/ldap.php
@@ -72,6 +72,7 @@
         $info["postalcode"] = $user->zip;
         $info["l"] = $user->city;
         $info["co"] = $user->country;
+        $info["telephoneNumber"] = $user->phone;
 
         $info["objectclass"][0] = "top";
         $info["objectclass"][1] = "person";
diff --git a/redis.php b/redis.php
index 323a74b..45c00b0 100755
--- a/redis.php
+++ b/redis.php
@@ -17,11 +17,13 @@
 
    function redis_get_user($key) {
       $redis = connect();
-      $data = json_decode($redis->get($key));
-      if ($data && gettype($data) == "object") {
+      $data = json_decode($redis->get($key), true);
+      if ($data && gettype($data) == "array") {
          $user = new User();
-         foreach ($data as $key => $value) $user->{$key} = $value;
-         if (isset($data->password)) $user->set_password($data->password);
+         $user->init_from_array($data);
+
+         #foreach ($data as $key => $value) $user->{$key} = $value;
+         #if (isset($data->password)) $user->set_password($data->password);
          #$user = new User($data->username, $data->first_name, $data->last_name, $data->email, $data->password, $data->organization);
          return $user;
       } else {
diff --git a/templates/email.php b/templates/email.php
index ccb20d0..58eb17f 100644
--- a/templates/email.php
+++ b/templates/email.php
@@ -2,40 +2,7 @@
 $REGISTRATION_INFORMATION = "
 <h3>Registration information</h3>
 <p>
-<table style='border: 1px solid #e1e4e8; border-collapse: collapse; width: 100%;'>
-<tr>
-<td style='border: 1px solid #e1e4e8; padding: 6px 13px;'>
-<strong>Username</strong>
-</td>
-<td style='border: 1px solid #e1e4e8; padding: 6px 13px;'>
-{{username}}
-</td>
-</tr>
-<tr>
-<td style='border: 1px solid #e1e4e8; padding: 6px 13px;'>
-<strong>Name</strong>
-</td>
-<td style='border: 1px solid #e1e4e8; padding: 6px 13px;'>
-{{full_name}}
-</td>
-</tr>
-<tr>
-<td style='border: 1px solid #e1e4e8; padding: 6px 13px;'>
-<strong>Organization</strong>
-</td>
-<td style='border: 1px solid #e1e4e8; padding: 6px 13px;'>
-{{organization}}
-</td>
-</tr>
-<tr>
-<td style='border: 1px solid #e1e4e8; padding: 6px 13px;'>
-<strong>Email</strong>
-</td>
-<td style='border: 1px solid #e1e4e8; padding: 6px 13px;'>
-{{email}}
-</td>
-</tr>
-</table>
+{{usertable}}
 </p>
 ";
 
diff --git a/templates/register.htm b/templates/register.htm
index 7f89440..a295016 100644
--- a/templates/register.htm
+++ b/templates/register.htm
@@ -20,7 +20,7 @@
     <?php echo $SERVICE_ACRONYM;?>
 </h1>
 
-<form class="row g-3 needs-validation" novalidate action="" method="POST">
+<form class="row g-3 needs-validation" novalidate data-toggle="validator" action="" method="POST">
     <!-- Username input -->
     <div class="col-md-4">
         <label class="form-label font-weight-bold" for="form3Example3">Username</label>
@@ -38,10 +38,10 @@
             <div class="form-outline">
                 <label class="form-label font-weight-bold" for="form3Example1">First name</label>
                 <input pattern="[^\s]{<?php echo $VAL_USER->min_first_name.','.$VAL_USER->max_first_name;?>}" required
-                    title="At least 2 not whitespace characters" name="name" type="text" id="form3Example1"
-                    class="form-control <?php if(isset($error) && $error && !isset($_POST['name'])){echo 'border-danger';}?>"
+                    title="At least 2 not whitespace characters" name="first_name" type="text" id="form3Example1"
+                    class="form-control <?php if(isset($error) && $error && !isset($_POST['first_name'])){echo 'border-danger';}?>"
                     placeholder="John"
-                    value="<?php echo isset($_POST['name']) ? htmlspecialchars($_POST['name']) : '' ?>" />
+                    value="<?php echo isset($_POST['first_name']) ? htmlspecialchars($_POST['first_name']) : '' ?>" />
                 <div class="invalid-feedback">
                         Please provide a first name with at least 2 characters.
                 </div>
@@ -61,30 +61,351 @@
             </div>
         </div>
 
-    <!-- Email input -->
-    <div class="form-outline md-6">
-        <label class="form-label font-weight-bold" for="form3Example3">Email address</label>
-        <input required name="email" type="email" id="form3Example3"
-            class="form-control <?php if(isset($error) && $error && !isset($_POST['email'])){echo 'border-danger';}?>"
-            placeholder="myemail@example.com"
-            value="<?php echo isset($_POST['email']) ? htmlspecialchars($_POST['email']) : '' ?>" />
-            <div class="invalid-feedback">
-                Please provide a valid email address.
-            </div>
-    </div>
-
     <div class="form-outline md-6">
         <label class="form-label font-weight-bold" for="organization">Institution / Organization</label>
         <input required name="organization" type="text" id="organization"
             class="form-control <?php if(isset($error) && $error && !isset($_POST['organization'])){echo 'border-danger';}?>"
             placeholder="Example University"
             pattern=".{3,64}"
+            type="text"
             value="<?php echo isset($_POST['organization']) ? htmlspecialchars($_POST['organization']) : '' ?>" />
             <div class="invalid-feedback">
                 Please indicate the institution or organization you are affiliated with.
             </div>
     </div>
 
+    <!--
+    <div class="form-outline col-md-6">
+        <label for="address-line-1" class="form-label form-label font-weight-bold">Address line 1</label>
+        <input name="address-line-1" type="text" class="form-control" id="address-line-1"/>
+    </div>
+    Address line 1-->
+
+    <!-- Street -->
+    <div class="form-outline col-md-12">
+        <label for="street" class="form-label form-label font-weight-bold">Street</label>
+        <input name="street" type="text" class="form-control" id="street"
+        placeholder="1234 Main St"
+        value="<?php echo isset($_POST['street']) ? htmlspecialchars($_POST['street']) : '' ?>"
+        required/>
+        <div class="invalid-feedback">
+            Please provide a valid street.
+        </div>
+    </div>
+
+    <!-- Zip code -->
+    <div class="form-outline col-md-3">
+        <label for="zip-code" class="form-label form-label font-weight-bold">Zip</label>
+        <input name="zip" type="text" class="form-control" id="zip-code"
+        value="<?php echo isset($_POST['zip']) ? htmlspecialchars($_POST['zip']) : '' ?>"
+        required/>
+        <div class="invalid-feedback">
+            Please provide a valid zip or postal code.
+        </div>
+    </div>
+
+    <!-- City -->
+    <div class="form-outline col-md-5">
+        <label for="city" class="form-label form-label font-weight-bold">City</label>
+        <input name="city" type="text" class="form-control" id="city"
+        value="<?php echo isset($_POST['city']) ? htmlspecialchars($_POST['city']) : '' ?>"
+        required/>
+        <div class="invalid-feedback">
+            Please provide a valid city.
+        </div>
+    </div>
+
+    <!-- Country -->
+    <div class="form-outline col-md-6">
+        <label for="country" class="form-label form-label font-weight-bold">Country</label>
+        <input class="form-control" list="countries" name="country" id="country" 
+        value="<?php echo isset($_POST['country']) ? htmlspecialchars($_POST['country']) : '' ?>"
+        required placeholder="Type to search your country...">
+        <datalist id="countries">
+            <option value="Afghanistan">
+            <option value="Åland Islands">
+            <option value="Albania">
+            <option value="Algeria">
+            <option value="American Samoa">
+            <option value="Andorra">
+            <option value="Angola">
+            <option value="Anguilla">
+            <option value="Antarctica">
+            <option value="Antigua and Barbuda">
+            <option value="Argentina">
+            <option value="Armenia">
+            <option value="Aruba">
+            <option value="Australia">
+            <option value="Austria">
+            <option value="Azerbaijan">
+            <option value="Bahamas">
+            <option value="Bahrain">
+            <option value="Bangladesh">
+            <option value="Barbados">
+            <option value="Belarus">
+            <option value="Belgium">
+            <option value="Belize">
+            <option value="Benin">
+            <option value="Bermuda">
+            <option value="Bhutan">
+            <option value="Bolivia, Plurinational State of">
+            <option value="Bonaire, Sint Eustatius and Saba">
+            <option value="Bosnia and Herzegovina">
+            <option value="Botswana">
+            <option value="Bouvet Island">
+            <option value="Brazil">
+            <option value="British Indian Ocean Territory">
+            <option value="Brunei Darussalam">
+            <option value="Bulgaria">
+            <option value="Burkina Faso">
+            <option value="Burundi">
+            <option value="Cambodia">
+            <option value="Cameroon">
+            <option value="Canada">
+            <option value="Cape Verde">
+            <option value="Cayman Islands">
+            <option value="Central African Republic">
+            <option value="Chad">
+            <option value="Chile">
+            <option value="China">
+            <option value="Christmas Island">
+            <option value="Cocos (Keeling) Islands">
+            <option value="Colombia">
+            <option value="Comoros">
+            <option value="Congo">
+            <option value="Congo, the Democratic Republic of the">
+            <option value="Cook Islands">
+            <option value="Costa Rica">
+            <option value="Côte d'Ivoire">
+            <option value="Croatia">
+            <option value="Cuba">
+            <option value="Curaçao">
+            <option value="Cyprus">
+            <option value="Czech Republic">
+            <option value="Denmark">
+            <option value="Djibouti">
+            <option value="Dominica">
+            <option value="Dominican Republic">
+            <option value="Ecuador">
+            <option value="Egypt">
+            <option value="El Salvador">
+            <option value="Equatorial Guinea">
+            <option value="Eritrea">
+            <option value="Estonia">
+            <option value="Ethiopia">
+            <option value="Falkland Islands (Malvinas)">
+            <option value="Faroe Islands">
+            <option value="Fiji">
+            <option value="Finland">
+            <option value="France">
+            <option value="French Guiana">
+            <option value="French Polynesia">
+            <option value="French Southern Territories">
+            <option value="Gabon">
+            <option value="Gambia">
+            <option value="Georgia">
+            <option value="Germany">
+            <option value="Ghana">
+            <option value="Gibraltar">
+            <option value="Greece">
+            <option value="Greenland">
+            <option value="Grenada">
+            <option value="Guadeloupe">
+            <option value="Guam">
+            <option value="Guatemala">
+            <option value="Guernsey">
+            <option value="Guinea">
+            <option value="Guinea-Bissau">
+            <option value="Guyana">
+            <option value="Haiti">
+            <option value="Heard Island and McDonald Islands">
+            <option value="Holy See (Vatican City State)">
+            <option value="Honduras">
+            <option value="Hong Kong">
+            <option value="Hungary">
+            <option value="Iceland">
+            <option value="India">
+            <option value="Indonesia">
+            <option value="Iran, Islamic Republic of">
+            <option value="Iraq">
+            <option value="Ireland">
+            <option value="Isle of Man">
+            <option value="Israel">
+            <option value="Italy">
+            <option value="Jamaica">
+            <option value="Japan">
+            <option value="Jersey">
+            <option value="Jordan">
+            <option value="Kazakhstan">
+            <option value="Kenya">
+            <option value="Kiribati">
+            <option value="Korea, Democratic People's Republic of">
+            <option value="Korea, Republic of">
+            <option value="Kuwait">
+            <option value="Kyrgyzstan">
+            <option value="Lao People's Democratic Republic">
+            <option value="Latvia">
+            <option value="Lebanon">
+            <option value="Lesotho">
+            <option value="Liberia">
+            <option value="Libya">
+            <option value="Liechtenstein">
+            <option value="Lithuania">
+            <option value="Luxembourg">
+            <option value="Macao">
+            <option value="Macedonia, the former Yugoslav Republic of">
+            <option value="Madagascar">
+            <option value="Malawi">
+            <option value="Malaysia">
+            <option value="Maldives">
+            <option value="Mali">
+            <option value="Malta">
+            <option value="Marshall Islands">
+            <option value="Martinique">
+            <option value="Mauritania">
+            <option value="Mauritius">
+            <option value="Mayotte">
+            <option value="Mexico">
+            <option value="Micronesia, Federated States of">
+            <option value="Moldova, Republic of">
+            <option value="Monaco">
+            <option value="Mongolia">
+            <option value="Montenegro">
+            <option value="Montserrat">
+            <option value="Morocco">
+            <option value="Mozambique">
+            <option value="Myanmar">
+            <option value="Namibia">
+            <option value="Nauru">
+            <option value="Nepal">
+            <option value="Netherlands">
+            <option value="New Caledonia">
+            <option value="New Zealand">
+            <option value="Nicaragua">
+            <option value="Niger">
+            <option value="Nigeria">
+            <option value="Niue">
+            <option value="Norfolk Island">
+            <option value="Northern Mariana Islands">
+            <option value="Norway">
+            <option value="Oman">
+            <option value="Pakistan">
+            <option value="Palau">
+            <option value="Palestinian Territory, Occupied">
+            <option value="Panama">
+            <option value="Papua New Guinea">
+            <option value="Paraguay">
+            <option value="Peru">
+            <option value="Philippines">
+            <option value="Pitcairn">
+            <option value="Poland">
+            <option value="Portugal">
+            <option value="Puerto Rico">
+            <option value="Qatar">
+            <option value="Réunion">
+            <option value="Romania">
+            <option value="Russian Federation">
+            <option value="Rwanda">
+            <option value="Saint Barthélemy">
+            <option value="Saint Helena, Ascension and Tristan da Cunha">
+            <option value="Saint Kitts and Nevis">
+            <option value="Saint Lucia">
+            <option value="Saint Martin (French part)">
+            <option value="Saint Pierre and Miquelon">
+            <option value="Saint Vincent and the Grenadines">
+            <option value="Samoa">
+            <option value="San Marino">
+            <option value="Sao Tome and Principe">
+            <option value="Saudi Arabia">
+            <option value="Senegal">
+            <option value="Serbia">
+            <option value="Seychelles">
+            <option value="Sierra Leone">
+            <option value="Singapore">
+            <option value="Sint Maarten (Dutch part)">
+            <option value="Slovakia">
+            <option value="Slovenia">
+            <option value="Solomon Islands">
+            <option value="Somalia">
+            <option value="South Africa">
+            <option value="South Georgia and the South Sandwich Islands">
+            <option value="South Sudan">
+            <option value="Spain">
+            <option value="Sri Lanka">
+            <option value="Sudan">
+            <option value="Suriname">
+            <option value="Svalbard and Jan Mayen">
+            <option value="Swaziland">
+            <option value="Sweden">
+            <option value="Switzerland">
+            <option value="Syrian Arab Republic">
+            <option value="Taiwan, Province of China">
+            <option value="Tajikistan">
+            <option value="Tanzania, United Republic of">
+            <option value="Thailand">
+            <option value="Timor-Leste">
+            <option value="Togo">
+            <option value="Tokelau">
+            <option value="Tonga">
+            <option value="Trinidad and Tobago">
+            <option value="Tunisia">
+            <option value="Turkey">
+            <option value="Turkmenistan">
+            <option value="Turks and Caicos Islands">
+            <option value="Tuvalu">
+            <option value="Uganda">
+            <option value="Ukraine">
+            <option value="United Arab Emirates">
+            <option value="United Kingdom">
+            <option value="United States">
+            <option value="United States Minor Outlying Islands">
+            <option value="Uruguay">
+            <option value="Uzbekistan">
+            <option value="Vanuatu">
+            <option value="Venezuela, Bolivarian Republic of">
+            <option value="Viet Nam">
+            <option value="Virgin Islands, British">
+            <option value="Virgin Islands, U.S.">
+            <option value="Wallis and Futuna">
+            <option value="Western Sahara">
+            <option value="Yemen">
+            <option value="Zambia">
+            <option value="Zimbabwe">
+        </datalist>
+        <div class="invalid-feedback">
+            Please provide a valid country.
+        </div>
+    </div>
+
+    <!-- Email input -->
+    <div class="form-outline md-6">
+        <label class="form-label font-weight-bold" for="email">Email address</label>
+        <input required name="email" type="email" id="email"
+            class="form-control <?php if(isset($error) && $error && !isset($_POST['email'])){echo 'border-danger';}?>"
+            type="email"
+            pattern="^[^\s@]+@[^\s@]+\.[^\s@]+$"
+            placeholder="myemail@example.org"
+            value="<?php echo isset($_POST['email']) ? htmlspecialchars($_POST['email']) : '' ?>" />
+            <div class="invalid-feedback">
+                Please provide a valid email address.
+            </div>
+    </div>
+
+    <!-- Phone number -->
+    <div class="form-outline md-6">
+        <label class="form-label font-weight-bold" for="phone">Phone number</label>
+        <input required name="phone" type="tel" id="phone"
+            class="form-control <?php if(isset($error) && $error && !isset($_POST['phone'])){echo 'border-danger';}?>"
+            pattern="\+\d[\s\d-]+$"
+            placeholder="+1 234 567 890"
+            value="<?php echo isset($_POST['phone']) ? htmlspecialchars($_POST['phone']) : '' ?>" 
+            required/>
+            <i class='bx bxs-phone'></i>
+            <div class="invalid-feedback">
+                Please provide a valid phone number.
+            </div>
+    </div>
+
     <!-- Password input -->
     <div id="password-div" class="col-md-8">
         <label class="form-label font-weight-bold" for="pw1">Password</label>
@@ -131,9 +452,9 @@
     <div class="form-outline mb-3">
         <label class="form-label font-weight-bold" for="eula">End User License Agreement</label>
         <div class="form-group form-check">
-            <input type="checkbox" class="form-check-input" name="eula" id="eula" required
+            <input type="checkbox" class="form-check-input" name="eula_signed" id="eula" required
                 title="You need to agree to the EULA in order to proceed"
-                <?php echo isset($_POST['eula']) ? 'checked' : '' ?>
+                <?php echo isset($_POST['eula_signed']) ? 'checked' : '' ?>
                 value="eula">
             <label class="form-check-label" for="eula">I have read and agree to to the
                 <?php echo $SERVICE_ACRONYM; ?> <a
@@ -149,9 +470,9 @@
     <div class="form-outline mb-3">
         <label class="form-label font-weight-bold" for="privacy_policy">Privacy Policy</label>
         <div class="form-group form-check">
-            <input type="checkbox" class="form-check-input" name="privacy_policy" id="privacy_policy" required
+            <input type="checkbox" class="form-check-input" name="privacy_policy_signed" id="privacy_policy" required
                 title="You need to agree to the privacy policy in order to proceed"
-                <?php echo isset($_POST['privacy_policy']) ? 'checked' : '' ?>
+                <?php echo isset($_POST['privacy_policy_signed']) ? 'checked' : '' ?>
                 value="privacy_policy">
             <label class="form-check-label" for="privacy_policy">I have read and agree
                 to to the
diff --git a/utils.php b/utils.php
index 41996fb..2c2d29b 100644
--- a/utils.php
+++ b/utils.php
@@ -60,18 +60,23 @@
 
 function replace_all_user_variables(string $string, User $user, string $url)
 {
+    foreach ($user as $key => $value) {
+        $to_replace = "{{" . $key . "}}";
+        $string = str_replace($to_replace, $value, $string);
+    }
+
     $string = str_replace("{{url}}", $url, $string);
     $string = str_replace("{{full_name}}", $user->first_name . " " . $user->last_name, $string);
     $string = str_replace("{{fullname}}", $user->first_name . " " . $user->last_name, $string);
-    $string = str_replace("{{first_name}}", $user->first_name, $string);
-    $string = str_replace("{{last_name}}", $user->last_name, $string);
-    $string = str_replace("{{email}}", $user->email, $string);
-    $string = str_replace("{{organization}}", $user->organization, $string);
-    $string = str_replace("{{username}}", $user->username, $string);
+    $string = str_replace("{{usertable}}", $user->to_table(), $string);
     return $string;
 }
 
-function user_to_string(User $user)
+function array_to_string(array $array)
 {
-    return $user->first_name . " " . $user->last_name . " <" . $user->email . "> " . $user->organization . " " . $user->username;
-}
\ No newline at end of file
+    $string = "";
+    foreach ($array as $key => $value) {
+        $string .= $key . ": " . $value . "\n";
+    }
+    return $string;
+}
