rating, mostly working
rating, with validations, tested