                   firstName: try json.get("firstName"),
                   lastName: try json.get("lastName"),
                   username: try json.get("username"),
-                  email: try json.get("email"))
+                  email: try json.get("email"),
+                  password: try json.get("password"))
     }
     
     func makeJSON() throws -> JSON {

        try row.set("lastName", lastName)
        try row.set("username", username)
        try row.set("email", email)
        return row
    }
    
    init(id: Identifier? = nil, firstName: String? = nil, lastName: String? = nil, username: String, email: String) {
        self.firstName = firstName
        self.lastName = lastName
        self.username = username
        self.email = email
        self.id = id
    }
}

    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)
    }
}
