Listing 5-3.  Model with Validations