You're probably right. The responsability of this class is to check if the sudoku is valid or not. Build the message is another responsability. Check if the sudoku is complete can be another responsability (so another class) too.

In ActiveRecord, the is the same problem. If you do something like `user.valid?` it fill `user.errors` with messages. 

For this project, I will not change the code because it will not grow. So, yes, it's better but no, I would not do it.