all necessary methods implemented, need to test them, I expect there are errors
added additional cascades to ratings and some clarifying commentary in Ratings