var crypto = require('crypto');

module.exports =
  class Contractor {
    constructor(firstName, lastName, isResident, privateEmail, override) {
      this.firstName = firstName;
      this.lastName = lastName;
      this.isResident = isResident;
      this.privateEmail = privateEmail;
      this.override = override;
    }

    getFullName() {
      return this.firstName + ' ' + this.lastName;
    }

    getEmail() {

      if (this.override) {
       return this.override.replace(" ", "") + '@7hci.com';
      } else {
        var pattern = /[^a-zA-Z]/g;
        var sanitizedFirst = this.firstName.replace(pattern, '').toLowerCase();
        var sanitizedLast = this.lastName.replace(pattern, '').toLowerCase();

        return sanitizedFirst + '.' + sanitizedLast + '@7hci.com';
      }
    }

    getPassword() {
      return crypto.createHash('md5').update(this.getFullName()).digest('hex');
    }
  };
@@ -1,11 +1,117 @@
-var
+/**%0A * @fileOverview Class representing all relevant information about the contractor being onboarded%0A */%0Alet
  crypto 
@@ -500,24 +500,202 @@
 ame;%0A    %7D%0A%0A
+    /**%0A     * If a local-part override was provided, uses that otherwise generates a sanitized local-part%0A     * @returns %7Bstring%7D The complete generated e-mail address%0A     */%0A
     getEmail
@@ -699,17 +699,16 @@
 ail() %7B%0A
-%0A
       if
@@ -809,19 +809,19 @@
         
-var
+let
  pattern
@@ -837,35 +837,35 @@
 A-Z%5D/g;%0A        
-var
+let
  sanitizedFirst 
@@ -929,11 +929,11 @@
     
-var
+let
  san
@@ -1074,24 +1074,116 @@
    %7D%0A    %7D%0A%0A
+    /**%0A     * @returns %7Bstring%7D A password for the contractor's new e-mail account%0A     */%0A
     getPassw

Clean up and document Contractor class