tests pass, will add average review
added average rating
added error messages and data validations, will merge