             user.string("lastName")
             user.string("username")
             user.string("email")
+            user.string("password")
         }
     }
     

    var lastName: String? = nil
    let username: String
    var email: String
    
    init(row: Row) throws {
        firstName = try row.get("firstName")
        lastName = try row.get("lastName")
        username = try row.get("username")
        email = try row.get("email")
    }

    func makeRow() throws -> Row {

    public static var passwordKey: String {
        return "password"
    }
    
    public var hashedPassword: String? {
        let digest = try! _hash.make(password)
        return digest.makeString()
    }
    
    static var passwordVerifier: PasswordVerifier? {
        return _passwordVerifier
    }

}

fileprivate class Verifier: PasswordVerifier {
    func verify(password: Bytes, matches hash: Bytes) throws -> Bool {
        // FIX: password string appends ':'. e.g.: "password" -> ":password"
        // Drop ':'. This is a temporary fix. Should fix in public source and submit PR.
        let hackedPassword = password.makeString().dropFirst().data(using: .utf8)!.makeBytes()
        return try _hash.check(_hash.make(hackedPassword), matchesHash: hash)
    }
}
